CS 31 Spring 2024 Syllabus (2024)

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

WeekDateTopics
1Apr. 1Introduction/Computer History
Apr. 3Basics
2Apr. 8Basics
Apr. 10Control Flow
3Apr. 15Control Flow
Apr. 17Strings, Functions
4Apr. 22Functions and Program Development
Apr. 24Parameters
5Apr. 29Arrays
Apr. 30 (Tue.)Midterm 1 (about one hour between 6:00 pm and 7:30 pm)
May 1Arrays
6May 6Strings
May 8Pointers
7May 13Pointers
May 15Structs and Classes
8May 20Classes and Dynamic Allocation
May 21 (Tue.)Midterm 2 (about one hour between 6:00 pm and 7:30 pm)
May 22Constructors and Destructors
9May 27Memorial Day Holiday
May 29Pointers
10Jun. 3Review
Jun. 5Wrapup
end of 10Jun. 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):

  1. Sign in or create an account (upper right corner) athttps://learn.zybooks.com
  2. Enter zyBook code: UCLACOMSCI31SmallbergSpring2024
  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.

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 1Tuesday, April 9
Project 2 warmupSaturday, April 13
Project 2Thursday, April 18
Project 3 warmupTuesday, April 23
Project 3Wednesday, May 1
Project 4 part 1Saturday, May 4
Project 4 part 2Wednesday, May 8
Project 5Monday, May 20 Wednesday, May 22
Project 6Tuesday, May 28
Project 7Thursday, 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 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 you have read and understood our expectations aboutacademic integrity.

CS 31 Spring 2024 Syllabus (2024)

FAQs

Is CS-31 hard? ›

You will learn a lot in CS 31, especially if you have no previous experience. It is rewarding, but if you have no prior experience, it will be very hard.

What is the website for cs31 UCLA? ›

The URL for the main course website is https://cs.ucla.edu/classes/fall23/cs31.

What is the hardest course in CS? ›

Top 7 Toughest Courses In Computer Science Engineering
  • Theory of Computation. Students will learn how to use computers while being aware of their limitations. ...
  • Artificial Intelligence. ...
  • Advanced Database Systems. ...
  • Compiler Design. ...
  • Algorithms. ...
  • Discrete Math. ...
  • Computer Architecture.

Is a CS degree harder than engineering? ›

Both programs are challenging and require a strong foundation in mathematics and science. Computer science may seem harder if you prefer hands-on work, while computer engineering may be tougher if you're more inclined towards software.

How hard is math 33a UCLA? ›

This is a classic class where if you stay on top of your work, actually go to class, pay attention, and try, you will easily pass and get an A • Linear Algebra is very different from calculus or algebra, and it can be hard to think differently than previous math classes --> The structure of this class is one homework a ...

Is UCLA online or in person? ›

Fall 2021 classes are offered three ways: on-site, remote, and hybrid. Note: the majority of fall classes are offered on-site.

Is UCLA a branch school? ›

The appointment of Franklin David Murphy to the position of chancellor in 1960 helped spark an era of tremendous growth of facilities and faculty honors. This era secured UCLA's position as a proper university in its own right and not simply a branch of the UC system.

Is CS a difficult major? ›

That's more than education majors (89,398), physical science majors (29,238), and mathematics majors (27,092) [1]. But computer science has gotten a reputation for being a difficult bachelor's degree to earn because it involves learning how to program and combines a wide variety of theoretical and practical subjects.

Is CS math hard? ›

If math isn't your favorite subject, you'll be relieved to hear that many roles in computer science rarely employ advanced math on a daily basis. However, you will need to deal with a fair amount of advanced math during your computer science studies, including calculus, algebra, discrete mathematics, and statistics.

Is AP CS A hard? ›

In summary. AP Computer Science A (CSA) is generally regarded as a relatively easy AP course, according to a Reddit survey, with an overall difficulty rating of 4.3 out of 10 by former students, placing it among the least challenging AP courses.

Is CS hard or easy? ›

Learning the discipline of Computer Science is a hard and difficult endeavor for most students. However, if you are willing to invest the time and learn serious time management skills, most students can successfully learn the discipline and pursue successful careers in Computer Science fields.

References

Top Articles
Latest Posts
Article information

Author: Roderick King

Last Updated:

Views: 6291

Rating: 4 / 5 (51 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Roderick King

Birthday: 1997-10-09

Address: 3782 Madge Knoll, East Dudley, MA 63913

Phone: +2521695290067

Job: Customer Sales Coordinator

Hobby: Gunsmithing, Embroidery, Parkour, Kitesurfing, Rock climbing, Sand art, Beekeeping

Introduction: My name is Roderick King, I am a cute, splendid, excited, perfect, gentle, funny, vivacious person who loves writing and wants to share my knowledge and understanding with you.