CS 150 - Intro to Programming - Spring 2002

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


Course Reference

Instructor:

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

Office Hours:

Monday and Wednesday 12:00-1:00pm
Monday and Wednesday 6:00-7:00pm
Other times by appointment.

Class Meetings:
LectureMon/Wed 7:00-8:15pm Darwin 2
Lab Section 1 Mon. 1:00-3:50pm Darwin 16
Lab Section 2 Tue. 9:00-11:50am Darwin 16
Lab Section 3 Tue. 1:00-3:50pm Darwin 16
Lab Section 4 Wed. 1:00-3:50pm Darwin 16

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. The lab sections are used to reinforce the concepts introduced in lecture and to gain programming experience. The programming projects test your ability to apply the theory. 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:

Prerequisites:

Math 45 and computer literacy or consent of instructor.

Important Dates
Wednesday, Feb. 6Last day to DROP courses
Friday, Feb. 8 Last day to ADD courses
Friday, March 29 Last day to WITHDRAW from courses
Week of May 21 Final Exam

Course work:

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

Each student must separately earn a passing grade on the assignments and the examinations in order to pass the course. Your course grade will not be greater than the scores acheived on the test. This means that the assignments portion of your grade can not raise your course grade. For example test scores = 75% and Assignment scores = 100% your grade would be a C. On the other hand, your Assignments score can lower your course grade. For example test scores = 90% and Assignment Scores = 50% your grade would be a F. 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
Elements of a simple program, C++ Program Development, 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, Precedence 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
Feb. 18 - Presidents day - no class
if/then/else statement, Multiway Branches,
7.2 - 7.4
5
While loops, for loops, break statement 7.2 - 7.4
6
switch statement
Using built in libraries, Preprocessor Directives
3.1, 3.2, 3.3
7
Quiz 1
Programmer-Defined Functions
3.4, 3.5, 4.1
8
More on functions and parameters, tracing program execution, Value Parameters
Reference Parameters, Mixed parameters
Program Testing (Stubs and Drivers), Function debugging, Function Overloading
4.2, 4.3, 4.4
3.6
9
Files I/O and Streams (Introduction to Objects and Classes)
Processing numeric data, Streams as function parameters
Processing character data, predefined char functions
5.1, 5.2, 5.3
10
Spring Recess - No Class  
11
Arrays - Declaration, Initialization, Processing and Access
Partially filled arrays, searching and sorting
9.1, 9.2, 9.3
12
Character Arrays - cstrings, C++ String Class
Quiz 2
10.1, 10.3
13
User-defined Types: Classes, Member Variables, Member Functions, Constructors, Abstract Data Types
Classes - friend functions, non member functions
6.1, 6.2, 6.3
8.1
14
Operator overloading, Separate compilation, using preprocessor directives
Arrays and Classes, Copy Constructor
8.2, 9.4
11.1
15
Pointers, pointers and arrays, Dynamic memory, dynamic arrays
Classes and dynamic arrays
11.1, 11.2, 11.3
16
Copy constructor, Destructor, overload the assignment ("=") operator
Review
 
  ** Final Exam ** week of May 21  

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