The Instructor Team
- John Denero (he/him) - denero@berkeley.edu
- CS 61A Instructor
- Researches language models and how people use them
- Office hours 1-3pm Tuesdays in Warren 101B
- Shm Almeda (they/them) - shm.almeda@berkeley.edu
- Office hours 3pm -4pm Monday (location TBD)
- Jedi Tsang (he/him) - Jedidiahtsang@berkeley.edu
- Researches computing ethics
- Office hours 1pm-3pm Thursday (location TBD, Either Evans or Soda)
About the Course
Lecture, Videos, and the Textbook
- Videos are posted to cs61a.org and are essential viewing for before coming to lecture. All course content is covered in videos.
- Around 1/2 hour.
The textbook is located at composingprograms.com. Similar content to videos
- Lectures will review the most important concepts from Mon, Wedn, and Fri.
Problem-Solving Practice
- Problem solving is effective to learn how to solve problems
- Lab Monday and Tuesday labs have required attendance unless Mega Section.
- Discussion: On Wed/Thurs/Fri: attendance is required (unless mega)
- There are weekly homework assignments and 4 larger programming projects
- One-on-one assignments during office hours.
- Grading is on an absolute scale. Based on how the people did in the previous semester.
Discussion Sections
- Mostly lectures that discuss the content taught during lectures.
- For regular, assigned a group number shared with 6-7 students, a room, and a time. 2-5 groups per room.
- Most discussions have a TA in the room, rest have a Zoom room with a TA
- Given a worksheet filled with example problems that are supposed to be solved together with additional instructions.
- These problems are not graded.
Asking Questions
- Post any questions on Ed.
- Email the professor at denero@berkeley.edu
- Email staff members at cs61a@berkeley.edu
What is the Course About
- Manage computational complexity
- To master abstraction: Assign something a name and rely it to always perform the desired functions, without knowing how it is being completed.
- Techniques for organizing complex programs: Change programs without breaking them.
- Introduction to programming: Fast-paced learning
- Full understanding for Python fundamentals
- Large projects to manage complexity
- Learn how computers interpret programming languages
- Languages used: Python, Scheme, & SQL
Should you take CS 61A?
Syallabus
- Syllabus: cs61a.org/articles/about/
- No formal programming-related prerequisite.
- cs61a.org/articles/advice
Course Policies
- Syllabus: cs61a.org/articles/about/
Collaboration
- Some projects can be completed with a partner
- Discuss everything with each other, learn from fellow students
- Academic misconduct
- Do not look at someone else’s code! (Exceptions: lab, your project partner, or after you already solved the problem.)
- Do not tell other people the answers
- Do not ask ChatGPT and other tools to write code for you
Content
Type of expressions
- An expression describes a computations and evaluates to a value.
- CS uses the
call expression
f(x) - All expressions can use function call notation
- CS uses the
1
2
3
4
5
1 + 1 # Addition
253*8 # Multiplication
2 ** 5 # Exponentiation
1 * 2 ** 3 + 4 * ((5//6) + 7 * 8 * 9) # Pemdas
1
2
3
- Call expressions are just a simple function.
- The `operator` module contains additional operators for arithmetic expressions.
- Call expresisons can be nested as well ```python 1 + 2 * 3 + 4 mul(add(1,2), add(3,4)) ```