CS 150 - Intro to Programming - Fall 2001

| CS150 | Labs | Projects | Assignments | CodeSamples | Help Resources | Style Guide |


Course Reference

Instructor
Robert Hillyard
Office: Darwin Hall 25
Phone: 664-2961
email: hillyard@cs.sonoma.edu
Department Office: Darwin Hall 121 - Phone: 664-2667

Office Hours
Tuesday 1:30pm-2:00pm Wednesday 2:00pm-4:00pm, Thursday 1:30pm-2:00pm, and by appointment.
Please feel free to drop by my office at other times.

Class Meetings
Lecture Tue/Thur 2:30-3:45 Darwin 2
Lab Section 1 Tuesday 4:00-6:50 Darwin 16
Lab Section 2 Wed 10:00-12:50 Darwin 16
Lab Section 3 Wed 4:00-6:50 Darwin 16
Lab Section 4 Thur 8:00-10:50 Darwin 19C
Course Overview
The goal of CS 150 is to develop a strong foundation in the fundamentals of problem solving, computer programming and software engineering. The C++ programming language and the object-oriented paradigm will be used to illustrate these concepts. The lecture will focus on understanding the theory. Bringing the theory to practice through programming exercises and projects is the focus of the lab sessions. This is a four (4) unit course. It satisfies the SSU General Education category B3 requirement. It does NOT satisfy the category B lab activity requirement.

Course Materials
Text: Walter Savitch, Problem Solving with C++: The Object of Programming, Third Edition, Addison-Wesley, 2000.

Class Web Site: The class web site will contain all information you will need for the course. All programming projects, labs assignments and quiz dates can be found here. I will use several code samples in the lectures - you are encouraged to print them out ahead of time.

Diskettes: The computers in our labs are equipped with floppy and/or ZIP drives. You will need at least two disks to store your lab work and programming projects, (one for backup). All machines have a ZIP drive - so this may be the best choice. Keeping a backup copy for your work is very important!!! It is your responsibility to be able to produce an electronic copy of all your programming projects and lab exercises.

Code Warrior 6: This integrated development environment software will be used to develop our computer programs. If you wish to work at home, it can be purchased for the PC/Mac at the SSU bookstore or directly from Metrowerks.

Prerequisites
Math 45 and computer literacy or consent of instructor.

Important Dates
Wednesday, September 5 Last day to DROP courses
Friday, September 7 Last day to ADD courses
Friday, October 26 Last day to WITHDRAW from courses
Tuesday, December 11 Final Exam 2:00 - 3:50pm
Course work
Lecture
The proposed outline of what is to be covered in each lecture appears below in the course outline. Please note that this is a proposed outline and may change during the course. Lectures will contain material not covered in the text. Students are expected to attend all lectures and to read the relevant sections of the text prior to lecture. Students are responsible for making arrangements to get notes from other students if they are absent.

Lab Assignments and Programming Projects
There will be one lab exercise to be completed in the lab each week (15 total). Preparation and participation in the labs is counted as part of your grade. There will be 9 programming assignments. Programming assignments will be discussed in lecture and available on the class web site. Programs are due by the specified date and time. Refer to the Laboratory Guidelines and Programming Projects pages for more information.

Homework
Occasional homework will be assigned. Information about homework will be posted on the Assignments page of the course web site.

Exams
There will be two quizzes and a final. The examinations are based on the material covered in lecture, the lab, programming projects and the material covered in the relevant sections of the course text. There will be no make-up tests. If you must miss a test, contact the instructor or the CS Office before the start of the test. Taking exams at times other than scheduled is only done under extreme circumstances and must be arranged in advance with the instructor. If you require special accommodations during a test notify the instructor by the end of the second week of the semester. The final exam will be comprehensive.

Grading
Assignments (Labs, Projects, Homework) 45%
2 quizzes - 15% each 30%
Final exams 25%

Each student must separately earn a passing grade on the assignments and the examinations in order to pass the course. Final grades will be determined by totaling weighted scores; total points will be curved. Students may take this course CR/NC by making a specific request prior to the census date. Note that CS majors must take this course for a grade. University guidelines regarding the grade of Incomplete will be strictly adhered to.

Cheating and Plagiarism
Cheating and Plagiarism will not be tolerated - be sure to read and understand my policy on cheating and plagiarism.


Course Outline

This is an approximate weekly schedule and may be modified if necessary as the semester progresses. Please review the associated readings in the text (Savitch, Problem Solving with C++: The Object of Programming) prior to lecture.

Week

TOPIC

READING

1

Course Overview, Computer Systems, Computer Programming Overview
C++ Program Development, simple programs, Programming style, Program Errors
1.1 - 1.4
2.5

2

Identifiers, Variables, Assignment statements, Basic Input and Output, formatting output
Simple Data Types and operations
2.1, 2.2
2.3

3

Arithmetic Expressions, Procedence Rules, Compound Assignment, Increment and Decrement Operators
Type Compatibility and conversion
Controlling Program Flow - Branching and Looping, Boolean Expressions and operations,
2.4, 7.1

4

if/then/else statement, Multiway Branches,
While loops, Break Statement
7.2 - 7.4

5

for loops
switch statement
7.2 - 7.4

6

Quiz 1 (9-25-01)
Using built in libraries, Preprocessor Directives (#include)
Programmer-Defined Functions
3.1 - 3.5

7

More on functions and parameters, tracing program execution, Value Parameters
Reference Parameters, Mixed parameters
Program Testing (Stubs and Drivers), Function debugging, Function Overloading
4.1, 4.2
4.3, 4.4
3.6

8

Files I/O and Streams (Introduction to Objects and Classes)
reading numeric data
Streams as function parameters
Processing character data, predefined char functions
5.1 - 5.3

9

Arrays - Declaration, Initialization, Processing and Access
Partially filled arrays, searching and sorting
9.1 - 9.3

10

Character Arrays - cstrings
C++ String Class
10.1
10.3

11

Quiz 2 (10-30-01)
User-defined Types - Structures and Classes, Examples
6.1, 6.2

12

Classes, Member Variables, Member Functions, Constructors, Abstract Data Types
Thanksgiving Day 11-22-01 -- No Class or Lab
6.2, 6.3

13

Classes - friend functions, non member functions, const member functions
Operator overloading, Separate compilation, using preprocessor directives
8.1, 8.2

14

Arrays and Classes, Copy Constructor
Pointers, pointers and arrays
9.4
11.1

15

Dynamic memory, dynamic arrays
Classes and dynamic arrays
11.2

16

Copy constructor, Destructor, overload the assignment ("=") operator
Review
11.3
  ** Final Exam ** Tuesday, December 11 ** 2:00-3:50pm  

| Robert Hillyard | SSU | CS Dept | CS 150 |