CS109 Final Exam Topics
		
			          
			                
			              
			    The CS 109 final is open book and open notes and will be similar 
			to the midterm.  You will be able to use a computer in the computer lab 
			or your own notebook if you wish.  Come to the lab or my office 
			between 10 AM and 3 PM on Monday, 6/26.  You will then have 
			two hours to finish the exam.  Warning:  Don't spend too 
			much time on the computer, or you may not finish the 
			exam.  Since this class builds upon the material covered in the 
			first half of the course, the exam is comprehensive, but will focus on the 
			following topics:
		Subroutines and Functions 
		
		
			- 
			How to define methods (i.e. subroutines and functions)
 
  
    - Situation when it is appropriate to define a subroutine or function
    
 - When should you make something a Sub and when a Function?
 
			       
			- 
				How to pass and return data from a function
				
					- 
						Difference between ByRef and ByVal
 
			 - 
				Variable scoping with subroutines and functions
				
					- 
					Difference between a variable defined at the class level vs. variable defined 
					in the subroutine
					
 - 
						Good coding practice, at what level should variables be defined, and 
						why?
 
			 
		
		Loops
		
			- 
			How to use while loops, for loops, do loop-until loops
			
 - 
			Be able to convert code back and forth between loops
			
 - 
				Concept of nested loops, using the value in the outer loop to control the inner 
				loop
 
		Arrays
		
			- 
			How to DIM a one-dimensional array or two-dimensional array, what range of 
			array values we can access
			
 - 
			Using a loop to process items in an array
			
 - 
				How to pass an array to a subroutine or function
				
					- 
						Array is always passed ByRef even if ByVal is used!
 
			 
		
		Databases
  - Concept of a relational database:  tables linked through common 
  fields
 
  - Benefits of using a database in your project
 
  - What a SQL Select query is and adding a WHERE parameter
 
  
    - A WHERE clause with = and LIKE with the wildcard %
 
    - Sending a value from your application's form in as a parameter to a SQL 
    query
 
  - What a dataset is and how it is generated from information in the 
  database
 
Objects  (more conceptual coverage here than have you write 
code)
			- 
			How to define a class
			
 - 
			Concept of making instances of a class using "New"
			
 - 
			What a constructor does
			
 - 
			Difference between variables or methods defined as "Public" vs. "Private" vs. 
			"Protected"
			
 - 
				What a property is, with Get and Set
				
					- 
						Why is it considered better to make variables private, with a public property 
						to access the private variable?
 
			 - 
			Concept of inheritance
			
 - 
			Concept of overriding a subroutine or function
 
		Misc
  - Defining and using a List 
 
  
					- 
						Difference between a List and a regular Array
					
 
  - Drawing simple graphics 
 
				  
				
					- 
					DrawLine, FillRectangle, FillEllipse
					
 - 
						RGB, getting and setting pixel colors