CSCI 201: CS I

Winter 2008, Zemoudeh

Computer Science Department

California State University, San Bernardino


Date:                          1/7/08


Lecture:                    MW 12:00-1:15 in JB-113

Laboratory:              M 1:30-3:20  OR  W 1:30-3:20 in JB-359

                                    You should sign up and attend only one of the laboratories

Web Site:        


Instructor:                Kay Zemoudeh,

Office:                        JB-347

Office Hours:           MW 3:30-5:30


Student Assistant: Sean Lo

Office:                        CSCI Help Desk

Office Hours:           MW 10:00-12:00


Text:                          C++ From the Beginning, 2nd Ed, Addison Wesley

Author:                      Jan Skansholm


Grading:                    Homeworks and Programming Assignments     30%

                                    Laboratory                                                                 20%

                                    Mid Term Exam                                                        20%

                                    Final Exam                                                                30%


Letter Grade Break Up:                             93-100% A                90-92% A-

86-89% B+                83-85% B                   80-82% B-

76-79% C+                73-75% C                  70-72% C-

66-69% D+                63-65% D                  60-62% D-

0-59% F


Final Exam:              Wednesday, March 19, 12:00-1:50



CSCI 201 is the first half of a two course series on fundamentals of computer science. In this course we study the elements of problem solving and algorithm design, and start the study of Object Oriented Programming (OOP) using the programming language C++. The routine in the lecture consist of: a problem is presented, it is analyzed, a high level solution is discussed, an algorithm is presented for the solution, and finally the algorithm is implemented (coded) in C++. The lab potion of the course follows the same structure as the lecture, except that you are required to perform these steps yourself with the help of the lab manual and the instructor.


Course Objectives

After successfully passing this course, you would be able to analyze and solve a simple problem, produce an algorithmic solution for it, and correctly implement the algorithm in C++. You would learn some of the fundamental concepts and tools of computing. You would develop an understanding of the internal workings of systems. You would be able to understand, learn and use any new software development environment.



No makeup exams. Each week's laboratory work is due at the end of that week's laboratory session. All assignments (home works and programs) are due at the beginning of the class period of the due date. There is a 10% per day penalty for late assignments. Assignments, lab works, and exams are expected to be individual efforts. If two or more students collaborate on an assignment or lab work the grade is divided among them. Cheating in an exam results in a grade of F in the course.


Tentative Syllabus

Week 1, Ch 1: Computers and programming

Computer structure, Machine language, The compilation process, Compiling a simple program, Edit-compile-debug loop, Algorithms

Week 2 & 3, Ch 2: The basics

Variables, Number types, Assignment, Arithmetic expressions, Constants, if-statement, while-statement, for-statement, Arrays

Week 4, Ch 3: Characters and texts

Character codes, string class, Character arrays

Week 5, Ch 4: Functions

Scope and visibility, Reference parameters

Week 6, Ch 5: Types

Integer types, Floating Point types, Pointers, Type void, Type conversion

Week 7, Ch 6: Object-oriented program development

Object-oriented analysis, design and Programming

Week 8, Ch 7: Classes

            class definition, placement and use, Constructor

Week 9 & 10, Ch 8: More about classes

Constant objects, Pointer this, Friends, Operators, Static members, Pointers to members