|
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% |