CS 104 Computer Science II
This course continues an introduction to computer science using the C++ programming language. Students learn how to create and manipulate their own objects, how to perform generic programming using templates, and how to manipulate fundamental data structures including linked lists, stacks, queues, trees.

 

 

Textbooks:

Online References

Syllabus (tentative):

String Class and Structs (Savitch 6.1, 10.3)
   Class Notes
   Book Notes (6, 10)
   String Example: Palindromes
   String Example: Replace
   Struct Example: Employee Program
   
Templates(Savitch 14)
   Class Notes
   Book Notes
   String Performance: One
   String Performance: Two
   String Performance: Ready for Instrumentation
   Class Template: Stack Class Ready for Template
   Class Template: Stack Class Converted to Template
   Strategies for Instrumentation
Creating and Using Classes (Savitch 6.2-6.3, 9, 8.1-8.2)
    Class Notes
    Book Notes (6, 9, 8)
    THE BASICS:
      Rectangle Class
      Rectangle Class w/ Constructor
      Checking Account Main Program
      Checking Account Class
      Tic-Tac-Toe Class INCOMPLETE
      Tic-Tac-Toe Class COMPLETE
      Rules for Good Style
    CODE MANAGEMENT:
      Rectangle Class w/ Seperate Compilation
      Namespace Example Incomplete
      Namespace Example Complete
    OPERATOR OVERLOADING:
      Fraction Class: Main and Interface
      Fraction Class: Partially Complete
      Fraction Class: Original Version
      Fraction Class: Friends Version
      Fraction Class: Operators/Friends Version
      Fraction Class: Operators/No Friends Version
Queues (Savitch 15)
   Class Notes
   Book Notes
   Queue using Pointers
   Queue using Dynamic Arrays
   Queue ATM Simulation
   Queue ATM Simulation (Debug Version)
   

Pointers (Savitch 12)
   Class Notes
   Book Notes
   BASICS
      Exercise
      Exercise Answer Part I
      Exercise Answer Part II
    DYNAMIC ARRAYS
      Basic Example
      Dynamic Array Class Incomplete
      Dynamic Array Class Complete
    ASSIGNMENT OPERATOR
      Default Assignment Operator and No Pointers
      Default Assignment Operator and Pointers
      Overloaded Assignment Operator and Pointers
    COPY CONSTRUCTOR
      Default Copy Constructor and No Pointers
      Default Copy Constructor and Pointers
      Overloaded Copy Constructor and Pointers

Recursion (Savitch 13)
   Class Notes
   Book Notes
   TOWER OF HANOI
      The Picture
      The Music
      The Game
      The Code
      Time Estimate Worksheet
   BINARY SEARCH AND QUICKSORT
      The Code
      The Animation
The Linked List (Savitch 15)
   Class Notes
   Book Notes
   Linked List using Pointers
   
Inheritance, Virtual Functions (Savitch 16)
   Class Notes
   Book Notes
   Basic Rectangle Class
   Shape, Circle, Rectangle, Square Classes

Stacks (Savitch 15)
   Class Notes
   Book Notes
   Stack using Pointers
   Stack using Dynamic Arrays
   

Exception Handling (Savitch 17)
   Class Notes
   Book Notes
 

 

Course Logistics:
Lectures and Labs are held M,W 2:30-3:45 and Tu 11:30-12:45 in Stanger 308.

The Lab - Stanger 308:

Technically, you don't need to use the lab because you can install Visual Studio on your own computer at home. However, working up in the lab on these programming assignments is a great way to meet other people in the course, ask me questions if I'm around, and get to know the TA.. The lab is open from 8AM to 12AM during the week. During some of that time the lab is used as a classroom. You can find the schedule here.

Grading Policy:
Your grade will be based on the following evaluations:

EvaluationWeight (RAW) DueMeanStdDev

Homeworks, Programs & Quizzes

50   
   Program Assignment #0
24
01/25/08    
   Program Assignment #1
16
02/01/08    
   Program Assignment #2
8
02/05/08    
   Program Assignment #3
32
02/12/08    
   Program Assignment #4
16
02/20/08    
   Program Assignment #5
16
02/27/08    
   Program Assignment #6
32
03/14/08    
   Program Assignment #7
32
03/19/08    
   Program Assignment #8
32
03/31/08    
   Program Assignment #9
24
04/09/08    
   Program Assignment #10
24
04/16/08    
   Homework Assignment #11
16
04/25/08    
   Program Assignment #12
16
04/30/08    

Mid Term Exam

25      

Final Exam

25      
TOTAL100     

If you want to find out how I compute your grade, click here.

Grading programming assigments:

All Programming assignments will be graded on an 8 point scale:
a. Two points will be given for program clarity, efficiency, and documentation.
b. Each program will be tested on three data sets. Two points will be given for each correct run of the program.
c. Two points will be deducted for each day a program is late.
d. Programs which do not compile and run will receive no points

Homework will be turned in at the beginning of class on the day they are due. Late homeworks will not be accepted. This policy is firm because homework solutions will be handed out on the due day.

Two points will be deducted for each day a program is late.

Exams are to be taken at the specified date and time. If you miss the exam, you will receive a 0.

Sometimes things happen. If there are circumstances that prevent you from meeting your obligations for this course, you need to talk to me to make arrangements IN ADVANCE.

Dropping the Course

I want you to stay in the course! Please talk to me before you decide to drop.

Getting Help:

Instructor: Bob DuganTA: Rick Ochoa
officeStanger 206
office hours

W,F 2:15-4:00
Stanger 206 or
Stanger 308

office phone508-565-1682
e-mailbdugan@stonehill.edu
aol imdrbobdugan
office hoursW 7:00PM - 8:00PM
Stanger 308
e-mail

hochoa@stonehill.edu

aol imRedChaosMage17