  | 
    
    
      
    CS-1030 Software 
	Design 2 
    Spring 
    2006 
    Dr. Mark Hornick
     | 
  
Description    
Syllabus     
Policies     Quizzes/Homework    
Grading
Revision History
This page was last updated on 
03/17/2010.
3/1/2006 - Initial posting.
3/8/2006 - Lab 1 assignment posted.
3/8/2006 - Lab 1 updated; link to sample code inserted in "Assignment" 
instructions.
3/15/2006 - Lab 2 assignment posted.
3/16/2006 - Lab 2 modified as discussed in class.
3/17/2006 - Remaining quizzes rescheduled from Wednesdays to following Fridays
3/22/2006 - Stringstream demo posted
3/24/2006 - Common Final Exam time/date posted
3/29/2006 - Quiz 3 moved to Monday, 4/3
3/29/2006 - Updated UML for lab3 - Sequence Diagram.
3/29/2006 - Rescheduled Midterm exam to Monday, 4/10
4/1/2006 - sample code for C++ classes 
posted
4/3/2006 - sample code for Pointers and References posted
4/5/2006 - Lab 4 assignment posted.
4/6/2006 - Midterm exam review notes posted
4/6/2006 - Sample code for dynamic memory allocation posted.
5/10/2006 - Quiz 5 moved to Monday 
5/15/2006
5/15/2006 - Final Exam objectives posted.
Class Schedule
Lecture sessions meet Monday and Thursday in CC-48 
from 9:00am to 9:50am.
Lab sessions are on Wednesdays in CC-48 from 8:00am to 
9:50am.
Course 
Description
This course introduces students to the C++ programming langauge and concepts, 
building upon the knowledge gained in the Java programming languages in the 
CS1010 and CS1020 courses. It continues the study of software development using 
an object-oriented approach using the C++ programming language. C++ coverage 
includes topics such as pointers, dynamic memory management, the Standard 
Template Library, and a comparison between the Java and C++ programming 
languages..
Please consult the
official course description for detailed objectives.
Textbook
Officially: None. Instead, download the free electronic copies of
Thinking in C++, 
2nd edition, Volume 1 and Volume 2 by Bruce Eckel and Chuck 
Allison. (Note: You can also purchase paper copies of these books from Eckel's 
website). I'll be assigning reading from this material.
	Online References
Here are some other web resources that may be useful to you. Please let me know if 
you have found other resources that you think should be added to this list.
C++ Development Tools
Follow this link for 
more information on the tools we use for this course. 
Syllabus
  
    | Week | 
    Monday | 
    Wednesday 
	(Lab) | 
    Thursday | 
  
  
    
    1 
	3/6 | 
    
    Course Introduction 
	Java vs. C++ overview 
	Compiling and Linking 
  
	
	Read vol 1: Ch 2, pp. 76-97 (The 
	Process of Language Translation through Reading Input)  | 
    
	Lab 
	1: C++ development environment 
	C++ debugger, Intro to I/O using cin/cout  
	The FAST timelogging system  | 
    
	C++ 
	fundamentals 1: Primitive data types, expressions, selection and iteration 
	(if, for, while, do, switch 
	Read vol 1: Ch 3, pp. 117-133 (Controlling 
	Execution through Specifiers),  
	pp. 156-172 (Operators and their use through Sizeof operator)  | 
  
  
    
    2 
	3/13 | 
    
	
	C++ fundamentals 2: 
	 
	Global 
	functions, 
	Declarations vs. Definitions, 
	Preprocessor directives, 
	
	Multi-module applicationsRead vol 
	1: Ch 4, pp. 241-246 (Header File etiquette through Using Headers 
	in projects) 
	 
	Sample code: Multi-module application  | 
    Quiz 1 
	 
	Lab 2: C++ global functions & pre-processor 
	 
	 
	 
	 
	 
	 
	 Sample code: string parsing 
	 
	Sample code: parsing strings with  
	stringstream   | 
    
	C++ I/O: cin/cout revisited - 
	manipulators (iostream and iomanip), File IO, Reading/Writing strings 
	 
 
	Read 
	vol 2: 
	Ch 4, pp. 151- 201 (IOStreams through Manipulators) 
	  
	
	Sample Code: File IO  | 
  
  
    
    3 
	3/20 | 
    
	C++ classes: declarations, definitions, constructors, destructors, Java object class comparison 
	 
	 
	 
	Read vol 1: Ch 5 (all),  
	pp. 259-279  | 
    
	 Lab 
	3: File Text Searcher 
	 
	 
	
	 
	 
	
    
     
	 
	 
	 
	 
    Process Assessment and Improvement: Survey #1 
	 
	 
	 
	Sample code: C++ classes 
	 | 
    
	Quiz 
	2 
	 
	Standard C Library 
	C++ Standard Library 
	 
	 
	
	Wikipedia article on the Standard C Library | 
  
  
    
    4 
	3/27 | 
    
	Copy constructors 
	 
	 
	 
	 
	Read vol 1: Ch 6 (thru Storage Allocation)  
	pp. 283-293 | 
    
	
	References & Pointers 
	Null pointers, indirection 
	Function/method parameters: by value, by reference, by address 
	Read vol 1: Ch 11 (thru Pointers to 
	Members) 
	pp. 449-475  | 
  
  
    
    5 
	4/3 | 
    
	Quiz 3  
	 
	Memory allocation 
	and deallocation;  
	new and delete
	Sample code: 
	Pointers and References 
	Read vol 1: Ch 13 (thru Running out of 
	Storage)
	pp. 547-565  | 
    
	 Lab 
	4: Dynamic Memory Management  | 
    
	Exam Review 
	 
	Memory allocation and deallocation continued; 
	Destructors and 
	deleteSample code: Dynamic memory 
	allocation and deallocation  | 
  
  
    
    6 
	4/10 | 
    
	Midterm Exam | 
    
	Inheritance, 
	abstract base classes, polymorphism, virtual functions 
	Sample Code 
	Inheritance, Polymorphism, & Abstract Base Classes 
	Read vol 1: Ch 14 (thru 
	Protected Inheritance) 
	pp. 584-612  | 
  
  
    
    Easter Break 
	4/14 - 4/23 | 
  
  
    
    7 
	4/24 | 
    
	Initializers,  
	the const decl specifier, 
	default parameters, friends
	Sample Code 
	const, initializers, default parameters  | 
    
	Lab 5: Drawing Graphical Shapes 
	 
	 
	 
	 
    Process Assessment and Improvement: Survey #2 | 
    
     
	Quiz 4 
	 
	Operator overloading  
	 
	
	Sample Code 
	 
	Read vol 1: Ch 12 (all), 
	pp. 485-542 (vol 1)  | 
  
  
    
    8 
	5/1 | 
    
	Operator overloading cont'd. | 
    
	Lab 
	6: Multi-function Organizer 
	 
	 
	 
	 
	 
	 
	 
	 
	Lab 6 Continued 
	 
	 
	 
	 
	 
	 
	 
	Lab 6 Final Demos 
	 
	 
	 
	  | 
    
	STL vector class, sort algorithm. 
	STL list class, STL iterators Sample 
	Code: 
	STL List 
	STL Vector Read vol 2: pp 429-477  | 
  
  
    
    9 
	5/8 | 
    
	Arrays and C-style strings, passing arrays as 
	arguments,  command line arguments 
	 
	Sample Code | 
    
	 
	Templates 
	 
	Sample Code  
	 
	Read vol 1: Ch 16 (thru Constants in Templates) 
	pp 
	689-705 (vol 1) | 
    
    
  
  
    
    10 
	5/15 | 
    
	Quiz 5 
	 
	NamespacesRead vol 2: pp 66-97  | 
    
	Exceptions 
	 
	Miscellaneous 
	 
	Final Review | 
  
  
    11 
	5/22 | 
    
	 Final Exam:  
	Tuesday 5/23/2006 
	11am - 1pm 
	CC-48  | 
  
Course policies
My general course policies 
apply to this course. 
Quizzes & Homework
Quizzes or Homework will be given or assigned each week. 
You are encouraged to work with your classmates on 
homework, so that you can more fully understand the problem and discuss 
approaches to solution. However, you should work out the solutions to problems 
individually. Homework problems will be kept short, and will be due the next 
class period after which they are assigned unless stated otherwise in the 
homework description.
Quizzes, when given instead of homework, will be given at the beginning of 
the Lab session. No quiz will be given the week of the Exams. No make-up quizzes will be given.
Grading algorithm
Note that this algorithm indicates how a grade will be determined for 
students who have successfully demonstrated mastery of the course objectives. An acceptable level of 
success in meeting all course objectives is a prerequisite for a passing grade 
in the course.
| Criterion |    
  Weight | 
| Labs |                
  50% | 
| Quizzes |        
  10% | 
| Hour Exam |          
  20% | 
| Final Exam |          
  20% |