CS 31 Fall 2023 Syllabus (2024)

CS 31: Introduction to Computer Science I

Computer Science Department
University of California, Los Angeles
Fall 2023


Course Objectives Lecture and Discussion Sections
Course Website Assignments
Instructors and Class Meetings Examinations
Schedule of Lecture Topics and Exams Grading

Course Objectives

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

Course Website

The URL for the main course website ishttps://cs.ucla.edu/classes/fall23/cs31. You must check the site forannouncements at least every other weekday. You must also check your emailas regularly. The courseBruinLearn site is used mostly to house Zoom links to lectures and learningassistant workshops; recorded lectures and workshops; and material posted byTAs.

Instructor and Class Meetings

Lecture 1
MW 2-3:50
La Kretz 110
David Smallberg
Lecture 2
MW 4-5:50
Boelter 3400
David Smallberg
Discussion 1A
F 10-11:50
La Kretz 110
Gordon Chen
Discussion 1C
F 12-1:50
Bunche 2209A
Fabrice Harel-Canada
Discussion 1F
F 2-3:50
Dodd 121
Yuanzhou (Adrian) Chen
Discussion 2A
F 12-1:50
Dodd 147
Xuheng Li
Discussion 2B
F 12-1:50
Haines 118
Cheng-Fu Yang
Discussion 2E
F 2-3:50
Haines A2
Jatin Chauhan
Discussion 1B
F 10-11:50
Royce 190
Weizhen Wang
Discussion 1D
F 12-1:50
Royce 190
Ian Galvez

Office hours for the instructor, TAs, and LAsare on the main class web page.

Schedule of Lecture Topics and Exams

1Oct.  2Introduction/Computer History
Oct.  4Basics
2Oct.  9Basics
Oct. 11Basics
3Oct. 16Control Flow
Oct. 18Control Flow
4Oct. 23Functions
Oct. 25Functions and Program Development
5Oct. 30Arrays
Oct. 31 (Tue.)Midterm 1 (approx. 6pm to 7:30pm; exact time TBD)
Nov.  1Arrays
6Nov.  6Strings
Nov.  8Pointers
7Nov. 13Pointers
Nov. 15Structs and Classes
8Nov. 20Classes
Nov. 21 (Tue.)Midterm 2 (approx. 6pm to 7:30pm; exact time TBD)
Nov. 22Constructors
9Nov. 27Pointers
Nov. 29Function Overloading
10Dec.  4Review
Dec.  6Review
end of 10Dec.  9 (Sat.)Final exam (11:30 am - 2:30 pm)


The required course textbook is an interactive online zyBook that offers anumber of advantages over static text-dense textbooks. To purchase asubscription ($89):

  1. Sign in or create an account (upper right corner) athttps://learn.zybooks.com
  2. Enter zyBook code: UCLACS31SmallbergFall2023
  3. Subscribe
Some of the interactive activities will be required assignments. If youhave any questions/issues about administrative aspects of zyBooks (accessissues, etc.) contactsupport@zybooks.com or look atthe Students section at the zyBooks help center.

Lecture and Discussion Sections

Lectures will present the material you'll need to know for this class,expanding on material from the course textbook. In discussion sections,your TA along with a learning assistant (LA) will pose problems to solvecollaboratively in class to help build your problem solving skills andensure you understand key concepts. They may answer questions that ariseabout these concepts, lecture topics, and programming projects.


You cannot learn how to write programs without writing programs.There will be several programming projects. Each project specification willdetail any requirements that differ from thegeneral project requirements. Yourprogram correctness score is based on your program's correctness asdetermined by our testing. The amount of time you spent working on theprogram is irrelevant; indeed, if you follow our software development advice,you'll probably spend less time and get a higher score than if you don't.

Some assignments will be activities in the course text designed to help ensurethat you understand important concepts.

Occasionally you'll be asked to fill out a brief online form (e.g., becausewe need to gather some information for planning purposes) in a timely manner.These "responsibility assignments" will be so labelled and completing themwill be worth a small part of your grade.

Every C++ program you turn in for this class outside of the course text mustrun successfully using two compilers, as specified in theProject Requirements document.

Programming projects are due at 11 PM on the dates below. Unless statedotherwise, late submissions will be penalized by 0.0034722% per second (whichcomes to 12.5% per hour), making a submission worthless if submitted after 7AM the next morning. It is your responsibility to start early andto make backups to removable devices or to online storage.

Project 1Tuesday, October 10
Project 2 warmupSaturday, October 14
Project 2Thursday, October 19
Project 3 warmupWednesday, October 25
Project 3Wednesday, November 1
Project 4 part 1Sunday, November 5
Project 4 part 2Wednesday, November 8
Project 5 part 1Monday, November 13
Project 5 part 2Monday, November 20
Project 6Monday, November 27 Tuesday, November 28
Project 7Thursday, December 7


The midterms will cover material from the lectures. The final examinationwill cover material from the entire course. Missing the final for anyreason 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 graderegardless of your total score. The total score is determined from thegraded materials as follows:

Projects (excluding zyBook assignments)42%
zyBook assignments7%
Responsibility assignments1%
Midterm 17%
Midterm 213%
Final exam30%

The weights of these components may be altered if unforeseen circ*mstancesaffect an exam offering.

The total points you earn from assignments (scaled to 0 through 100) willbe capped at 30 points above the mean of your exam scores (scaled to 0through 100). For example, if you average 90 on the assignments, yourmidterm scores are 50 and 60, and your final is 40, then your assignmentaverage is treated as only 80 (because that's 30 more than the mean of 50,60, and 40). In other words, your assignment scores won't count fully if youcan't show from your exam scores that you learned what you should have fromthe assignments.

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

Be sure that you have read and understood our expectations aboutacademic integrity.

CS 31 Fall 2023 Syllabus (2024)
Top Articles
Latest Posts
Article information

Author: Barbera Armstrong

Last Updated:

Views: 6394

Rating: 4.9 / 5 (79 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Barbera Armstrong

Birthday: 1992-09-12

Address: Suite 993 99852 Daugherty Causeway, Ritchiehaven, VT 49630

Phone: +5026838435397

Job: National Engineer

Hobby: Listening to music, Board games, Photography, Ice skating, LARPing, Kite flying, Rugby

Introduction: My name is Barbera Armstrong, I am a lovely, delightful, cooperative, funny, enchanting, vivacious, tender person who loves writing and wants to share my knowledge and understanding with you.