CSE 201 Introduction to Computer Science I
Winter 2014
Some exposure to programming
Mon 12:00 - 1:15, JB 113
Wed 12:00 - 1:15, JB 113
Lab A
Mon 1:30 - 3:20, JB 359
Lab B
Wed 1:30 - 3:20, JB 359
Big C++, Second edition by Kay Horstmann and Timothy Budd
(or other equivalent book)
Dr. David Turner
Office hours
Mon 3:30 - 6:30, JB 340
Wed 6:00 - 7:00, JB 340

Course Format

You should carefully study the first 6 chapters of the textbook or equivalent introductory book on C++. During our weekly lab sessions, you will perform activities to improve your understanding of the material presented in lecture and in the textbook. I will assign programming problems that you will complete inside and outside of lab. There will be quizzes and a final exam.

All required work is detailed in the course schedule, published on the Web. I will announced in class or by email changes to required work, points, deadlines and quiz dates.

I encourage you to collaborate with other students to complete the labs and assignments. However, you must submit assigned work individually and you are required to understand what you submit. I will use quizzes and a final exam to assess your understanding of submitted work for labs and assignments.

You will maintain all of your work in a remote Git repository that I will set up for you. Only you, a teaching assistant and I will have access to your repository. I will evaluate your work by looking at your source code and testing a running instance of your code. Git is a revision control system that is widely used by software developers; practice with it in this course will help you become familiar with revision control systems in general.

Course Goals

Learning Objectives


In this course, you will complete a sequence of assignments and labs. The assignments involve research, programming and problem solving. The labs also involve research, programming and problem solving, but I will generally show you their solutions in advance of their deadlines. The work in this course can be completed using the lab computers in JB 359 and JB 358. The work can also be completed outside the labs on your personal computer in any of the 3 common operating system environments: Linux, Windows, and OS X. You have 2 choices when working from home: work on a lab machine through a remote connection, or work completely on your own computer. If you work on your own computer, you will need to set up a C++ development environment.

Programs submitted with compilation errors receive no credit.

Programs that are incorrect or do not solve the stated problem will lose some or all points.

Work that is submitted late will lose some or all points.

If you submit copies of other people’s work, you will lose all points for that work. However, if you work with a partner, you can submit identical programs, but you need to refer to your partner by name in a comment at the top of your source code file.

Writing a program to produce required behavior is not good enough for a full score in this class; you must also write code that is readable by humans. Program readability is important because real­world programs are read over and over again in the process of fixing bugs and adding new functionality. Program readability will be evaluated according to the following set of criteria.

Readability Criteria for Source Code
Criterion Description
Organization Is source code well organized?
Cleanliness Have unnecessary variables and logic been removed from the code?
Logical indentation Does indentation show logical structure?
Consistent indentation Does indentation follow a consistent policy?
Portable indentation Are tabs omitted?
Logical spacing Does spacing show logical structure?
Consistent spacing Does spacing follow a consistent policy?
Expressive and clear naming Do variables, functions and classes have names that clearly express their purpose in the program?
Clear responsibilities Are responsibilities of functions and classes clear and consistent with their names? Is the code structured to avoid reliance on side effects produced by functions?
Necessary comments Are comments included when needed?
Unnecessary comments Are superfluous comments omitted?
Nonredundant When 2 or more places inside a program need to perform the same activity, is that activity defined as a function and called as such from where it is needed?
Spelling Are user-defined identifiers free of spelling errors? Are comments and other documentation free of spelling and grammatical errors?

Don't use tabs for indentation in your source code in this course. Tabs display differently in different viewing and editing tools. In general, tabs will degrade readability for some people who read your code, especially if you mix tabs with spaces. If you want full score on your assignments in this course, you should not use tabs. If you are in the habit of pressing tab in your editor and want to continue working this way, look for an option in your editor to replace tabs with spaces.


Labs, assignments, quizzes and final exam have point values, which are shown on the course schedule. Your percentage score will be computed by dividing the total of all points earned by the total possible points. The normal scale will be used to assign a letter grade.

Percent Grade
95 - 100A
90 - 94A-
87 - 89B+
84 - 86B
80 - 83B-
77 - 79C+
74 - 76C
70 - 73C-
67 - 69D+
64 - 66D
60 - 63D-
0 - 59F

Students with disabilities

If you are in need of an accommodation for a disability in order to participate in this class, please let me know as soon as possible, and also contact Services to Students with Disabilities at UH-183, (909)537-5238. You are advised to establish a buddy system and alternate in the class if you require assistance in the event of an emergency. Individuals with disabilities should prepare for an emergency ahead of time by instructing a classmate and the instructor.

Academic Regulations and Procedures

See the CSUSB Bulletin of Courses for the University's policies on course withdrawal, cheating, and plagiarism.

Computer Science and Engineering Club

The Computer Science and Engineering Club is a student-run organization that uses a combination of email and campus meetings to plan events, ask and answer technical questions, post job and internship openings, and discuss other topics of interest to computing majors at CSUSB. Club-sponsored events include seminars, workshops, tutoring and fun activities.