CS 31: Introduction to Computer Science I

Computer Science Department
University of California, Los Angeles
Summer 2014


Course Objectives

In this course, you will learn the foundation concepts and principles of computer science; fundamental computer programming principles, methodologies, and techniques; and basic concepts of programming in general and the C++ language specifically.

Course Website

The URL for the course website is http://lasr.cs.ucla.edu/vahab/cs31summer14. You must check the site for announcements at least once every weekday. You must also check your email as regularly.

Instructor and Class Meetings

MTW 2-3:50
Vahab Pournaghshband
Discussion 1A
F 10-11:50
Boelter 5249
Sharath Gopal
Discussion 1B/1C
F 12-1:50
Boelter 5420
Nazanin Farahpour
Discussion 1D
F 2-3:50
Boelter 5420
Sepideh Mazrouee
Discussion 1E
F 2-3:50
Boelter 5422
Behnam Shahbazi

Office hours for the instructor and the TAs are on the class web page.

Schedule of Lecture Topics and Exams

Week Date Topics Book
1 June 24 Introduction/Basics Chapter 1
  June 25 Basics Chapter 1
  June 26 Basics Chapter 1
2 July 1 Basics/String Class Chapter 1 and 9.3
  July 2 Control Flow Chapter 2
  July 3 Loops/Intro to Functions Chapter 2 and 3
3 July 8 Functions Chapter 3
  July 9 Functions Chapter 3
  July 10 Parameters Chapter 4
4 July 15 Arrays Chapter 5
  July 16 Arrays/C Strings Chapter 5 and 9.1-9.2
  July 17 Pointers Chapter 10.1-10.2
5 July 22 Midterm Exam Review  
  July 23 (W) Midterm Exam, 2:00 PM to 3:50 PM  
  July 24 Pointers Chapter 10.1–10.2
6 July 29 File I/O Chapter 12.1
  July 30 Structs and Classes Chapter 6
  July 31 Classes Chapter 6
7 August 5 Constructors Chapter 7.1
  August 6 Pointers Chapter 10.3
  August 7 Sorting Chapter 5.3
8 August 12 Recursion Chapter 13.1-13.2
  August 13 Final Exam Review  
end of 8 August 14 (Th) Final Exam, 2:00 PM to 3:50 PM  


The official course textbook is Absolute C++, Fifth Edition, by Walter Savitch, Addison Wesley, 2013.

There are other books on C++ available online for free which are suitable for this course and could well be used as a replacement for the official course textbook. If you do not use the textbook, however, you will need to figure out which chapter in your references covers the subject. For example, when we discuss "pointers" this will not likely be in Chapter 10 of another book or even another edition of Savitch.

The library has the textbook on reserve which can be found here.

Lecture and Discussion Sections

Lectures will present material from the course textbook, supplemented by additional subject matter. You are responsible for all material presented in all lectures.

In discussion sections, your TA will review material covered in the lectures, present subject matter not covered in the lectures, discuss programming projects, and answer questions.


Assignments are due at 9:00 PM on the dates listed below. Late submissions will NOT be accepted and will receive no credit. Your assignment MUST follow the guidelines specified in the general project requirements.

Assignment1 (7%) Wednesday, July 9 Saturday, July 12
Assignment2 (3.5%) Monday, July 14
Assignment3 (10%) Friday, August 1 Monday, August 4
Assignment4 (4.5%) Friday, August 1 Monday, August 4
Assignment5 (0%) (Practice Assignment)
Assignment6 (10%) Tuesday, August 12 Friday, August 15


The midterm will cover material from the lectures and the textbook. The final examination will cover material from the entire course. Missing the final for any reason will result in a final exam score of zero.


Your grade in the course will be determined from your total score, although a final exam score below 40 may subject you to a failing grade regardless of your total score. The total score is determined from the graded materials as follows:

Midterm exam25%
Final exam35%
Scribe Notes5%

A request for reconsideration of the grading for an item must be made within one week of our sending you your score for that item.

You will not earn points on any of your coursework unless you have signed and turned in the Academic Integrity Agreement.