Welcome to CS61A!

Tips for navigating the slides:
  • Press O or Escape for overview mode.
  • Visit this link for a nice printable version
  • Press the copy icon on the upper right of code blocks to copy the code

What we'll discuss today...

  • Introductions
  • What is CS?
  • About the course
  • Demo!



For this semester...

photo of Pamela Fox Pamela Fox: Started teaching last spring! Previously created the Khan Academy computing courses, and worked for Coursera, Google, and Woebot.

But you may also see a bit of...

photo of John DeNero John DeNero: Started teaching at UCB in 2014. Created the Python version of CS 61A and co-created Data 8. Associate Dean of the CDSS. Previously worked as a research scientist at Google.


Learn more on TAs page.


Learn more on tutors page.

A Very Brief Introduction to Computer Science

What is Computer Science?

The study of...What problems can be solved using computationHow to solve these problemsWhat techniques lead to effective solutions
SystemsArtificial IntelligenceGraphicsSecurityNetworkingProgramming LanguagesTheoryScientific ComputingHuman Computer Interaction...Decision MakingRoboticsEthics & SafetyNatural Language Processing...Answering QuestionsTranslation...

About this course

Course topics

  • Managing complexity in programs (procedural abstractions, data abstractions, programming paradigms)
  • Python logo Deep understanding of programming concepts (using Python)
  • Problem solving techniques (both iterative and recursive approaches)
  • How computers interpret computer programs
  • Different types of languages (Scheme, Regular expressions, BNF)

This course is challenging and often mind-blowing! 🀯

Course prerequisites

This is not an introductory programming class.

Prerequisites from the official description:

"MATH 1A (may be taken concurrently); programming experience equivalent to that gained from a score of 3 or above on the Advanced Placement Computer Science A exam."

If you are a data science major, also consider CS 88, which goes at a slightly slower pace (and covers SQL!).

If you don't think you have enough programming experience, consider taking CS 10 and joining us in summer/fall.

CS 10: The Beauty and Joy of Computing

  • Designed for students without prior coding experience
  • Screenshot of BJC Snap interface Starts off in Snap!, a programming environment created by Berkeley and now used in classrooms globally.
  • Introduces higher-order functions and recursion, two of the traditionally challenging CS61A topics.
  • Python logo Also teaches Python fundamentals.

More info: cs10.org

The sooner you sign up for the waitlist, the better your chance of getting in!

Course format

Course components

  • Lectures
  • Labs
  • Discussions
  • Homeworks
  • Projects
  • Exams 😱
  • Textbook (composingprograms.org)
  • Office hours

Everything is linked from https://cs61a.org

Weekly schedule

Monday Tuesday Wednesday Thursday Friday
Morning Complete Lab Complete Lab Attend Discussion Attend Discussion
2pm Lecture Lecture Lecture
After Complete Lab Attend Discussion Submit homework or project

"Free time": Work on current homework or project.


Three ways for you to watch lectures:

  • Pamela's live lectures
    (MWF 2:10-3pm)
  • Recordings of the live lectures
    (Available at night)
  • John's pre-recorded lectures
    (Posted at 2:10 or earlier)
    ⚠️ The content may differ slightly. Please at least skim through Pamela's slides if you rely on these lectures. And make sure to read the weekly announcements.

Labs & Discussions

Sign up for sections at sections.cs61a.org

You'll have the same TA for both lab and discussion. Community! ❀️

Section types:

  • Regular
  • Remote
  • Transfer/Grad
  • No-MiniLecture
  • CS 10 Bridge
  • CS Scholars

All sections are over Zoom for first two weeks, and then regular sections resume to in-person.

Homeworks & Projects

Homeworks and projects are typically due Thursdays (but not the same Thursday!). Start early, code often!

Come to OH parties so you can be around other students working on the homeworks and projects. πŸŽ‰
You can discuss the assignments at a high-level, but don't copy anyone else's code (unless it's your project partner).

Exams 😱

  • Midterm 1: Monday, Feb 7, 8-10pm
  • Midterm 2: Thursday, March 17th, 7-9pm
  • Final Exam: Tuesday, May 10th, 11:30am-2:30pm

All past exams are available on the resources page.
Study early, study often!

Exam Prep sections will be Fridays 10-11am, starting next week.

Office hours

We offer OH parties, scheduled appointments, and advising OH.

Check out the calendar: cs61a.org/office-hours/

I will also hold office hours, probably 3-4 Mon/Wed, starting next week.

Asking questions

Post questions on Piazza. If you're debugging assignment code, follow the debugging template.

Check out our contact page for more ways to get in touch.

Course policies

Course policies

Read the syllabus.

For real! There will be a quiz on Homework 1!

Accomodations & Extensions

  • Cooper manages DSP accomodations for assignments (and the class generally)
  • Vanshaj manages DSP accomodations for exams
  • Accomodations appointments are available for those without DSP
  • All students may request extensions via this form

Learn more in the syllabus section on Accomodations

Collaboration vs. Misconduct

Asking questions is highly encouraged:

  • Discuss everything with each other; learn from your fellow students!
  • Some projects can be completed with a partner
  • Choose a partner from your section

When collaboration becomes misconduct:

  • Please don’t look at someone else's code!
    Exceptions: lab, your project partner, or after you already solved the problem
  • Please don't tell other people the answers! You can point them to what is wrong and describe how to fix it, but don't tell them what to type, and don't type for them
  • Copying project solutions causes people to fail the course
  • We really do catch people who violate the rules, and we're getting better at it.

Class climate

Sexual harassment

What is it? Often, people don't realize they are sexually harassing someone. The behavior still has the same impact, however, and impact is what matters.

  • Touching someone without their consent
  • Trying to kiss someone who you are not dating
  • Commenting on someone's physical appearance
  • Staring at someone's body parts
  • Repeatedly asking someone out

See a full list in the UCOP policy on SVSH.

While a semester is happening, you should maintain professional boundaries with course staff (AIs/Tutors/TAs). Don't message them on social networks or dating apps, don't give them physical compliments, don't flirt in any way. Just let them do their job.

What to do if you're sexually harassed?

⚠️ All faculty and staff members are Mandated Reporters. If we ever receive an incident report, we will need to make a report to the OPHD. Two goals to reporting:

  • Getting you the support you need
  • Increasing our awareness of incidents so that we can try to make improvements

Where to report:


Last semester, students reported that other students made racist comments suggesting that they did not belong in CS.

We live in a country/society with a long history of racism and need to actively combat that in both our actions and language.

Community values

From the Berkeley Principles of Community:

"We affirm the dignity of all individuals and strive to uphold a just community in which discrimination and hate are not tolerated."

From the EECS mission:

"Diversity, equity, and inclusion are core values in the Department of Electrical Engineering and Computer Sciences. Our excellence can only be fully realized by faculty, students, and staff who share our commitment to these values. EECS's mission is to serve the communities to which we belong, at local, national, and international levels, with a deep awareness of our ethical responsibilities to our profession and to society."

We need to bring more people into CS, so that tech can create a better future for all, not just those that have traditionally had the most access to computers.

What to do if you experience racism

More resources

Our staff has put together a great set of campus resources that includes those links and many other helpful links.

Behaviors we want to see

  • Helping each other understand concepts in the class, whether in section, Piazza, or study groups, without expectation of anything in return.
  • Saying "congratulations" to classmates when they finish an assignment, receive a job offer, get into a club, etc.
  • Being a great partner while pair programming. If you're driving (typing), listen to what your partner suggests and consider their suggestions. If you're navigating, brainstorm ideas for how to tackle the problem, re-read the project description, check Piazza, etc.
  • Recognizing that we're all a valuable member of the CS community! Our CS major might be limited due to lack of faculty/funding, but even for those who don't become CS/EECS majors, I hope you all continue in CS/software if you enjoy it.


What's next?

  • Discussions will meet this week, starting today (sections.cs61a.org)
  • Optional Lab 0 to get your computer setup
  • Next lecture is on Friday, Zoom you there!