Building 22, Room 118
5:10-6:25 pm MW
Prerequisites
A math proficiency level equivalent to intermediate Algebra (Math 120) and a familiarity with Java or C++ syntax, simple control structures and principles of object-oriented programming are assumed.
Materials
- Starting Out with C++ - Early Objects (6th Edition) by Gaddis, et al (ISBN 0-321-51238-3)
Grading
Your grade will be based on:
- Homework and Exercises (50%)
- Exams and Quizzes (50%)
Course Description
CIS 250 is an introduction to computer science and software engineering for computer science majors and computer professionals. The course takes a systematic approach to the design, construction and management of computer programs, emphasizing object-oriented design and programming documentation, testing and debugging techniques. The course focuses on designing and implementing robust, well styled, and maintainable computer programs and introduces algorithms, control structures, functions and basic data structures.
Homework
Programming exercises will be done in class and will also be assigned as homework. Student programs will often be reviewed in class. Programs are evaluated according to the following considerations:
- Does the program work (i.e., does it react in a correct or reasonable way to all input, whether that input is reasonable or not)?
- How well does the program handle boundary conditions?
- Was the program written with the tools and within the constraints outlined in the assignment?
- Does it make use of the methods and design guidelines discussed in class?
- Was reasonable judgement used in tackling any "gray areas?"
- Is the source code clear, readable and well-commented?
- Could someone understand the program without having read the assignment?
- Is the code efficient and to the point?
- Is it portable?
- Is it original?
Exams
Frequent quizzes, two midterm exams and a final project will be given.
Expectations
I can help you succeed in this class, but I can't succeed for you. In this class you're expected to be responsible for your own academic success.
- That means you are expected to attend class and to arrive on time (2 lates equals 1 absence, 5 absences leads to a drop).
- If you're going to miss class, you should notify me ahead of time, either by phone or email.
- You are expected to contribute to class discussions and to ask questions when something is not clear.
- You are expected to do your homework assignments before the class when they are due and to seek help from me or your classmates if you are having difficulty completing them.
- You should check WebAccess (http://smccd.mrooms.net/) for assignments, class demonstration programs and exam solutions if you miss class.
- You are expected to see me during office hours for additional help or to take make-up exams.
The text comes with Visual C++ 2005. However you may use other C++ compilers if you wish. Last year many students used the free Dev-C++ compiler offered by Bloodshed Software: http://www.bloodshed.net/devcpp.html
Instructor's Spring 2008 Class Schedule
My class schedule, below, shows when and where I'm on campus. The best way to contact me if I'm not on campus is via email. I check my email several times a day. I have my email automatically sorted by the first 4 characters in the subject field. For this class, the subject line of the email should begin with C250.

Tentative Topic Schedule
| Monday | Wednesday |
|---|---|
| 1/21 - Martin Luther King, Jr. Day Holiday | 1/23 - Chapters 1-2 - Introduction to C++ |
| 1/28 - Chapters 3-4 - Expressions and Making Decisions |
1/30 - Chapter 5 - Looping |
| 2/4 - Chapter 6 - Functions | 2/6 - Exam on Chapters 1-6 |
| 2/11 - Chapter 7 - Introduction to Classes and Objects | 2/13 - Chapter 7 - Introduction to Classes and Objects |
| 2/18 - President's Day Holiday | 2/20 - Chapter 8 - Arrays |
| 2/25 - Chapter 8 - Arrays | 2/27 - Chapter 9 - Searching and Sorting Arrays |
| 3/3 - Chapter 9 - Searching and Sorting Arrays | 3/5 - Chapter 10 - Pointers |
| 3/10 - Chapter 10 - Pointers | 3/12 - Chapter 11 - More About Characters and Strings |
| 3/17 - Spring Break | 3/19 - Spring Break |
| 3/24 - Chapter 12 - More About Characters and Strings | 3/26 - Exam on Chapters 7-12 |
| 3/31 - Chapter 13 - Advanced File and I/O Operations | 4/2 - Chapter 13 - Advanced File and I/O Operations |
| 4/7 - Chapter 14 - Recursion | 4/9 - Chapter 14 - Recursion |
| 4/14 - Chapter 15 - Polymorphism, Virtual Functions and Multiple Inheritance | 4/16 - Chapter 15 - Polymorphism, Virtual Functions and Multiple Inheritance |
| 4/21 - Chapter 16 - Exceptions, Templates and the STL | 4/23 - Chapter 16 - Exceptions, Templates and the STL |
| 4/28 - Chapter 17 - Linked Lists | 4/30 - Chapter 17 - Linked Lists |
| 5/5 - Chapter 18 - Stacks and Queues | 5/7 - Chapter 18 - Stacks and Queues |
| 5/12 - Chapter 19 - Binary Trees | 5/14 - Chapter 19 - Binary Trees |
| 5/19 - Review |
5/21 - Review |
| 5/26 - Memorial Day Holiday | 5/28 - Finals Week |
| 6/2 - 11:10-1:40 Exam on Chapters 13-19 |