Welcome to CS 61A!
Instructor Team for CS 61A and Data C88C
John DeNero (he/him) — denero@[Link]
CS 61A instructor at least once per year since 2011
Research on language models and how people use them
Office hours 1pm-3pm Tuesdays in Warren 101B
Shm Almeda (they/them) — [Link]@[Link]
PhD student in Computer Science studying Human-Computer Interaction
Art/Tech
Office hours 3pm-4pm Monday (location TBD)
Jedi Tsang (he/him) — jedidiahtsang@[Link]
Co-instructor for Data C88C (with John) & will give some guest lectures in 61A
Poli Sci + Computer Science ‘23 & recently graduated M.S. in EECS
Office hours 1pm-3pm Thursday (location TBD)
2
Jedi’s Research: Computing Ethics Education
What is computing ethics?
• My personal definition: understanding how
the technology we create impacts society
(and crucially, how societal values
prioritizes the development of certain
technology).
My recent research:
• CS195 (Social Implications of Computer
Technology)
• Do students care? How do we get them to
care?
3
About the Course
Lecture, Videos, and the Textbook
Videos posted to [Link] are essential viewing before coming to lecture. All of the
course content will be covered in the videos.
The textbook, [Link], is written to be concise and useful. Its content is
very similar to the videos.
Lecture Mon, Wed, & Fri will review the most important content from the videos (but not all
of it), work through examples, and discuss problem-solving strategies.
5
Problem-Solving Practice
Solving problems is an effective way to learn how to solve problems.
Lab Monday/Tuesday: attendance is required (unless you're in mega section)
Discussion on Wed/Thurs/Fri: attendance is required (unless you're in mega section)
These prepare you for weekly homework assignments & 4 larger programming projects
Drop-in one-on-one assignment help (called "office hours" at Cal) starts next week.
This Week Only: Because next Monday 9/2 is a holiday, all CS 61A labs regularly scheduled
on Monday will be held this Friday 8/30 instead. You'll get an email with details.
6
What does a "discussion section" look like?
Expectation Reality
[Link] [Link]
Goal: Provide a great environment to learn how to solve problems through practice & discussion
I've seen small groups of Cal students do amazing things!
Discussion (Starts This Week)
Unless you've elected the mega discussion...
• You should have a group number shared with the 6-7 students in your group, a room, and a
discussion time. There will be 2-5 groups per room, so make sure you find the right group.
• Most (but not all) discussions have a TA in the room; the rest have a Zoom room with a TA.
What happens during discussion section?
• You're given a worksheet full of example problems to solve together & some instructions.
• The point is not just to solve those problems, but to learn how to solve similar problems.
• Discussion problems aren't graded; you don't have to solve them all.
• Bring a laptop or tablet.
8
Asking Questions
?
Ed: You can reach all staff (private posts) and all students (public posts)
denero@[Link]: Don't be surprised if I ask you to post on Ed
cs61a@[Link]: Goes to several staff members
9
What is This Course About?
A course about managing complexity
Mastering abstraction
Techniques for organizing complex programs
An introduction to programming
Full understanding of Python fundamentals
Large projects to demonstrate how to manage complexity
How computers interpret programming languages
Different types of languages: Python, Scheme, & SQL
10
Should you take CS 61A?
According to the Syllabus: [Link]/articles/about/
There is no formal programming-related prerequisite for CS 61A, but...
• Taking the course without any prior programming experience is typically quite challenging.
• Most CS 61A students have had significant prior programming experience.
• Students who take the course without prior programming experience typically must spend
more time to complete assignments and tend to receive lower final grades in the course.
[Link]
12
CS 10: The Beauty and Joy of Computing
Designed for students without prior experience
A programming environment created by Berkeley,
now used in courses around the world and online
An introduction to fundamentals (& Python)
that sets students up for success in CS 61A and
Data C88C
More info: [Link]
13
Data C88C (Formerly CS 88): Computational Structures in Data Science
Based on CS 61A, but covers only 3 out of 4 units worth of the content:
• Two programming projects (instead of four)
• Everything you need to know to continue on to CS 61B
• Omits the unit on how programs run other programs & a few advanced Python topics
Designed for students taking Data 8 (Foundations of Data Science), but is now independent
The course is full, but we'll try to expand if there is demand
14
Course Policies
Course Policies
Learning
Community
Details...
[Link]
16
Collaboration
Working together is highly encouraged
• Discuss everything with each other; learn from your fellow students!
• Some projects can be completed with a partner
What constitutes academic 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 or show them a related example.
• Please don't ask ChatGPT or other similar tools to write code for you.
• Copying project solutions causes people to fail the course.
Build good habits now
17
Let's Stop Harassment & Discrimination
Disparaging remarks targeting a particular gender, race, or ethnicity are not acceptable.
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 department 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."
[Link]/[Link]: If you want to stay anonymous but make me aware of something
happening in the course.
EECS Student Climate & Incident Reporting Form: Informs the EECS department of any issues.
You can also contact Susanne Kauer (skauer@[Link]) directly.
18
Expressions
Types of expressions
An expression describes a computation and evaluates to a value
6 log2 1024
23 sin ⇡
2100 p
f (x) 3493161
100
X 1
7 mod 2 lim
i ✓ ◆ x!1 x
i=1
69
| 1869| 18
20
Call Expressions in Python
All expressions can use function call notation
(Demo)
21
Demo