Syllabus

schedule

Course
CSE 201 Introduction to Computer Science I
School
CSUSB
Quarter
Spring 2016
Prerequisites
Some exposure to programming
Lecture
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
Textbook
Big C++, Second edition by Kay Horstmann and Timothy Budd
(or other equivalent book)
Instructor
Dr. David Turner
Email
dturner@csusb.edu
Office hours
JB 340, Mon. 3:30 - 5:30, Wed 3:30 - 5:30
Website
http://cse.csusb.edu/turner/201/

Course Format

You should carefully study the first 6 chapters of the textbook or the same material from an 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 2 exams and a final exam.

All required work is detailed in the course schedule, which is published on the Web. I will announced in class or by email changes to required work, points, deadlines and exam 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 exams and a final exam to assess your understanding of submitted work for labs and assignments.

Course Goals

Learning Objectives

Assignments/Labs

DEADLINE: Lab assignments are due the Friday following the day of the lab.

In this course, you will complete a sequence of assignments, which I also refer to as labs. These assignments involve research, programming and problem solving. You will produce source code for each assignment. Source code is text that are in files. For each assingment, you will create a folder inside a Cloud9 workspace and place the source code files for the assingment in the assignment folder. The assignments can be completed using a Web browser with an Internet connection. If you don't own a computer or have an Internet connection, then you can work in lab computers in JB 359, JB 358 and JB 360.

IMPORTANT: 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.

Assignments that are submitted before the deadline are eligible to receive a full score. Assignments submitted within one week (7 days) after the deadline are eligible to receive a maximum of 75% of the point value of the assignment. Assignments submitted more that one week after the deadline will not be accepted.

Assignments can only be submitted once. After you are assigned a score for an assignment, it is final. Resubmission of assignments are not accepted.

You should do the programming assignments on your own without copying code from other students or outside sources. Presenting the work of others as your own work is called plagiarism. If you commit plagiarism, you will receive no credit for the work.

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 If tabs are used for indentation, are they used everywhere instead of spaces?*
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?

* Keep in mind that tabs display differently in different viewing and editing tools. This is a problem if you mix spaces with tabs to achieve indentation. If you use tabs, then make sure that you do not use spaces anywhere in your code to achieve indentation.

Grading

Labs and exams 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

Learning Outcomes

This course is designed to contribute to the following learning outcomes.

a) An ability to apply knowledge of computing and mathematics appropriate to the discipline.
b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
i) An ability to use current techniques, skills, and tools necessary for computing practice.
k) An ability to apply design and development principles in the construction of software systems of varying complexity.

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.