| COMP 310 
		 Fall 2016
 | Lecture 01: Welcome to 
		Comp310! | 
	
		|            | 
Administrivia:
E-mail address to all Comp310 staff only:  
comp310 at rice.edu   
Please use this e-mail when communicating with the 
staff.   Do NOT e-mail individual staff members directly as this will only 
delay a response.    
Getting started:
Students should bring laptop to class every day!
If you do not have a laptop, please let the staff know 
right away so that special arrangements can be made for you.  You are 
NOT required to own a laptop.
Need to install  BY 
NEXT LAB PERIOD:
	- Java JDK 
- Eclipse and all required 
	plug-ins
		-  Ecliple now comes with the WYSIWYG "WindowBuilder" 
		GUI builder -- "drag-and-drop" creation of user interfaces.  
- UML Lab -- UML diagramming tool  -- create 
		industry-standard class diagrams from code and vice versa. 
		
			- License info is found in the Canvas site,  under 
			Modules/Tools and Resources/Software Configuration and Licensing.
 
- Subclipse - Subversion source control  -- 
		Safely manage large codebases for individuals and teams, plus used for 
		turning in assignments.
 
- Be sure to be consistent about installing x86 (32-bit) vs x64 (64-bit) 
	versions!
If you are not sure how to do the installs or encounter 
problems, contact the staff immediately!
Why so many tools? 
Eclipse, UML Lab, WindowBuilder and Subclipse!  
Good tools enable you to concentrate on the issues of the problem for which your 
human mind is best suited and lets the computer do those parts that don't need 
any real thought. 
	-  Eclipse puts the focus on writing code and less on managing the 
	compiling cycle, organizing files and remembering method names, etc.
- WindowBuilder allows us to think about the visual and behavior design of our 
	user interfaces and not on the tedious code to get it done.   
- UML Lab enables us to focus on the structure of and relationships in 
	our design and less on the syntax needed to define classes, methods and 
	fields.
- Subclipse makes the Subversion source control (SVN) capabilities an 
	integral part of the development process, allowing us to easily keep a 
	history of what was done and to share and synchronize our work with others.   
	When you use the SVN system in Comp310, you will never have to worry about 
	turning in your work because it will always be already turned in!  
Tools are a double-edges sword though.   They 
can as easily obscure what is going on as illuminate it.   In the end, 
you should always know what your tool is doing and what it is not capable of 
doing.  A tool is your helper, not your crutch. 
 
Why Comp310?
		- OO training -- arguably the leading programming 
		paradigm used in desktop, web and enterprise applications.
- Experience with professional-grade tools
- Experience with larger projects
- Progression from the introductory year to the 
			more specialized upper division courses
- Comp310 vs. Comp215
			- Change of focus from processing of data to the 
			operation of a system.
				- Comp215:  "Data"  is contained in a 
				data structure and "algorithms" are used to process the data to 
				extract an "answer".  The focus is on obtaining a 
				resultant data object.
- Comp310:  A "world" is represented as a
				system of interacting objects.  "Results" are 
				simply visualizations/expressions of what the system 
				fundamentall already is.   The focus is on the
				behavior of the system in response to input data or 
				actions. 
 
- Comp215 concentrates on representing data in 
			convenient data structures that allow mathematically-based 
			algorithmic processes to be easily performed.
- Comp310 concentrates on modeling of systems and 
			the abstraction of structures and behaviors plus the ways in which 
			objects communicate with each other.   
- A major goal of Comp310 is to change the way in 
			which students view the world around them -- so pay close attention 
			to the philosophical aspects of the course, even you don't 
			immediately see the connection to the concrete programming aspects!
 
 
© 2016 by Stephen Wong