CS 31: Introduction to Computer Science I
Computer Science Department
University of California, Los Angeles
Spring 2024
SYLLABUS
Course Objectives | Lecture and Discussion Sections |
Course Website | Assignments |
Instructors and Class Meetings | Examinations |
Schedule of Lecture Topics and Exams | Grading |
Textbook |
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 course website ishttps://cs.ucla.edu/classes/spring24/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, office hours,and learning assistant workshops; recorded lectures and workshops; andmaterial posted by TAs.Instructor and Class Meetings
Lecture 1 MW 4-5:50 WGYoung CS50 David Smallberg das@cs.ucla.edu | |||
Discussion 1A F 12-1:50 Boelter 2444 Adrian Chen adrianchen@cs.ucla.edu | Discussion 1B F 12-1:50 Haines 39 Jatin Chauhan chauhanjatin100@cs.ucla.edu | Discussion 1C F 12-1:50 Pub Aff 1246 Qian Long longqian@ucla.edu | Discussion 1D F 2-3:50 Pub Aff 2270 Jeehyun Hwang jeehyunhwang@cs.ucla.edu |
Office hours for the instructor, TAs, and LAsare on the class web page.
Schedule of Lecture Topics and Exams
Week | Date | Topics |
---|---|---|
1 | Apr. 1 | Introduction/Computer History |
Apr. 3 | Basics | |
2 | Apr. 8 | Basics |
Apr. 10 | Control Flow | |
3 | Apr. 15 | Control Flow |
Apr. 17 | Strings, Functions | |
4 | Apr. 22 | Functions and Program Development |
Apr. 24 | Parameters | |
5 | Apr. 29 | Arrays |
Apr. 30 (Tue.) | Midterm 1 (about one hour between 6:00 pm and 7:30 pm) | |
May 1 | Arrays | |
6 | May 6 | Strings |
May 8 | Pointers | |
7 | May 13 | Pointers |
May 15 | Structs and Classes | |
8 | May 20 | Classes and Dynamic Allocation |
May 21 (Tue.) | Midterm 2 (about one hour between 6:00 pm and 7:30 pm) | |
May 22 | Constructors and Destructors | |
9 | May 27 | Memorial Day Holiday |
May 29 | Pointers | |
10 | Jun. 3 | Review |
Jun. 5 | Wrapup | |
end of 10 | Jun. 8 (Sat.) | Final exam (11:30 am - 2:30 pm) |
Textbook
The required course textbook is an interactive online zyBook that offers anumber of advantages over static text-dense textbooks. To purchase asubscription ($89):
- Sign in or create an account (upper right corner) athttps://learn.zybooks.com
- Enter zyBook code: UCLACOMSCI31SmallbergSpring2024
- Subscribe
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.
Assignments
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. Late submissionswill be penalized by 0.0034722% per second (which comes to 12.5% perhour), making a submission worthless if submitted after 7 AM the nextmorning. It is your responsibility to start early and to makebackups to removable devices or to online storage.
Project 1 | Tuesday, April 9 |
Project 2 warmup | Saturday, April 13 |
Project 2 | Thursday, April 18 |
Project 3 warmup | Tuesday, April 23 |
Project 3 | Wednesday, May 1 |
Project 4 part 1 | Saturday, May 4 |
Project 4 part 2 | Wednesday, May 8 |
Project 5 | |
Project 6 | Tuesday, May 28 |
Project 7 | Thursday, June 6 |
Examinations
The midterm will cover material from the lectures. The final examinationwill cover material from the entire course.
Grading
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 assignments | 7% |
Responsibility assignments | 1% |
Midterm 1 | 7% |
Midterm 2 | 13% |
Final exam | 30% |
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 you have read and understood our expectations aboutacademic integrity.