Syllabus & Course Policies
-Overview
- - -The CS 61 series is an introduction to computer science, with particular -emphasis on software and on machines from a programmer's point of view.
- --
-
- CS 61A concentrates on the idea of abstraction, allowing the programmer to - think in terms appropriate to the problem rather than in low-level - operations dictated by the computer hardware. -
- CS 61B deals with the more advanced engineering aspects of software, such as - constructing and analyzing large programs. -
- CS 61C focuses on machines and how they execute programs. -
In CS 61A, we are interested in teaching you about programming, not about how -to use one particular programming language. We consider a series of techniques -for managing program complexity, such as functional programming and -object-oriented programming.
- -CS 61A primarily uses the Python 3 programming language. Python is a popular -language in both industry and academia. It is also particularly well-suited to -the task of exploring the topics taught in this course. It is an open-source -language developed by a large volunteer community that prides itself on the -diversity of its contributors.
- -Mastery of a particular programming language is a very useful side effect of CS -61A. However, our goal is not to dictate what language you use in your future -endeavors. Instead, our hope is that once you have learned the concepts -involved in programming, you will find that picking up a new programming -language is but a few days' work. In fact, you will be asked to learn at least -two other languages, Scheme and SQL, during the course.
- -A complete list of lecture topics, readings, and assignments appears in the -lecture schedule.
- - -Prerequisites
- - -Math 1A is listed as a corequisite for CS 61A. That is, it may be taken -concurrently. Math 10A or Math 16A are also fine. It is possible to take CS 61A -without knowing or learning calculus. Knowledge of calculus concepts will never -be required to complete any assignments. However, taking calculus is a great -way to practice the arithmetic and algebra that appear regularly in CS 61A.
- -There is no formal programming-related prerequisite for CS 61A because students -without prior experience can succeed in the course, but taking the -course without any prior programming experience is typically quite challenging. -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. Most CS 61A students have had significant prior -programming experience. A typical background includes at least one course -equivalent to CS 10 or a score of 3 or above on an AP Computer Science exam.
- -If you find it challenging to complete all of the required coursework in the -first three weeks, we strongly recommend that you take another course -first. You'll likely have a better experience taking 61A later. Taking CS 61A -one semester later is unlikely to affect your degree progress or otherwise put -you behind, but continuing to struggle in CS 61A despite this recommendation -can lead to difficult academic circumstances that can affect your future -opportunities. It's better to finish CS 61A with strong mastery of the course -material, even if that means delaying by a semester, than to rush through it.
- - -Alternative Courses
- - -Here are some alternative UC Berkeley courses that are better suited for -students who do not have prior programming experience.
- - -CS 10
- - -CS 10: The Beauty and Joy of Computing is an introductory -computer science course which is similar to CS 61A but moves at a more moderate -pace. CS 10 covers variables, functions, recursion, algorithmic complexity, -object-oriented programming, and many other relevant CS 61A topics, with the -overall content overlap being about 50%. CS 10 starts the semester in Snap!, a -block-based programming language which allows students to focus on conceptual -understanding without worrying about unfamiliar syntax. After the midterm, the -course transitions into Python (the primary language 61A uses). CS 10 also -covers big ideas and social implications that go beyond programming, showing -you the beauty and joy of computing.
- - -Data 8
- - -Data 8: The Foundations of Data Science is an introduction -to data science designed to be accessible and useful for all Berkeley students. -This course was built for students without prior programming experience. It -teaches students to program in Python, but covers a much smaller subset of -the language than CS 61A. Most of the course focuses on data processing and -statistical techniques that are central to using computers to answer questions -about the world. Taking Data 8 before 61A is a good way to gain prior -programming experience, but taking CS 10 is a better way.
- - -Data C88C (formerly CS 88)
- - -CS 88: Computational Structures in Data -Science is an introduction to programming and -computing that has more than 50% concept overlap with CS 61A. It is designed -for students interested in data science who want to expand their knowledge of -programming and program structures beyond what is covered in Data 8. Students -who complete CS 88 can either proceed directly to CS 61B or subsequently take -CS 61A, a path that offers a substantial amount of review because of the high -topic overlap between the courses.
- - -Info 206A
- - -Info 206A: Introduction to Programming and -Computation is a 2-unit -introduction to programming that overlaps with many topics in the first eight -weeks of CS 61A. Professor Hany Farid has placed all of the videos and -exercises for this course -online, and these -are an excellent resource to supplement CS 61A.
- - -Course Format
- - -The course includes many events and opportunities for learning: lecture, lab, -discussion, office hours, and more. Try everything out to figure out what -combination of these course components help you the most.
- - -Lectures & Videos
- - -There are four 80-minute live lectures per week. In addition, there is a video -playlist for each lecture. Please watch the video playlist before attending -live lecture or section. The videos cover all required content for the course. -Live lecture will not cover all course material and will focus on examples -(so watch the videos).
- - -Section
- - -Weekly sections include a programming-based lab assignment and a discussion.
- -There are 20 lab points. Each lab has an attendance and submission component. Submission of lab 0 is worth 2 points. See the Grading section for more details.
- -There are 10 discussion points. Receiving credit for any 10 (or more) discussions -will earn a perfect discussion score for the course.
- -This semester, we are offering two section formats: regular sections -and the mega section. Both are designed to help students learn the course -material equally well. You can choose which format you want. It is possible to -change formats at certain points during the course that will be announced.
- - -Regular Section
- - -Regular Sections meet four times a week with their section TA. Labs are Monday & Wednesday and Discussions are Tuesday & Thursday. Each Lab and Discussion section is 80 minutes. Attendance is required for students enrolled in a Regular Section.
- -To receive credit for lab section, you must attend and get checked off (1 -point), and you must submit the lab assignment (1 point). You will be checked -off at the end of the lab period as long as you have made substantial progress -on the lab assignment. You can also be checked off and leave early if you -finish the lab assignment.
- -To receive credit for the discussion section, you must attend.
- -You can earn a maximum of 20 lab points across 12 scored labs (2 points each), -which means that you can miss two required labs and still have a perfect score. -The last lab, Lab 12, during the final week of classes is optional.
- -You can earn a maximum of 10 discussion points across 12 required discussions, -which means you can miss two and still have a perfect score.
- -Regular sections will not be webcast and are not recorded.
- - - - -Mega Section
- - -Mega section does not meet on a weekly basis. There will be videos released -each week that cover the discussion topics. Mega section may meet -at certain points throughout the semester (on Zoom) but attendance will be -optional.
- -Students in the mega section must complete and submit the weekly lab -assignment but are not expected to come to lab. You are welcome to ask questions -about lab assignments during course office hours. If you need more support than -that, you should switch to the regular section.
- -All students in mega will automatically receive full discussion credit. It is -up to the mega section students to keep up with weekly videos and discussion -worksheets as they see fit.
- -Any Zoom-based mega section meetings will be webcast and recorded.
- - -Choosing a Section Format
- - -Mega section is only recommended for students with considerable prior -programming experience who are confident that they can succeed in the course -without the support of in-person section.
- -Both options are meant to be great. Mega section is designed to appeal to -students who learn well from watching videos, working independently, and -coming to drop-in office hours when they need help. But the smaller format of -regular sections has clear advantages for students who wish to work with others -and get to know the course staff. Most students choose regular section.
- - -Office Hours
- - -Office hours are drop-in tutoring sessions in which you can ask questions about -the material, receive guidance on assignments, and work with peers and course -staff in a small group setting. See the office hour schedule -and come by.
- - -Assignments
- - -In addition to programming-based lab assignments, there are programming-based -homework assignments and projects.
- - -Homework
- - -Weekly homework assignments let you apply the concepts learned in lecture and -section to more challenging problems. Homeworks will typically be released on -Fridays and be due the following Thursday.
- - -Partial Credit
- - -Homework is scored out of 2 points, and every incorrect question reduces your -score by 1 point.
- - -Projects
- - -Projects are larger assignments intended to combine ideas from the course in -interesting ways.
- -You are allowed and encouraged to pair program -with a partner. Make sure to alternate roles so that both of you understand the -complete results. You may also work alone on all projects, although partners -are recommended.
- -Projects are graded on correctness, with points earned for each problem -successfully completed.
- - -Exams
- - -There will be two exams:
- --
-
- The Midterm will be held 6-8pm on Thursday 7/11 -
- The Final will be held 7-10pm on Thursday 8/8 -
Exams will be taken on paper on campus in designated exam rooms. There will be no remote exams this summer.
- - - -We will post an announcement on Ed ahead of each exam with information for -students who cannot take the exam at the designated times.
- - -Accommodations
- - - -Assignment Extensions
- - -If you need to request an extension, regardless of your DSP status, fill out -this form. Submissions to this form will be -visible only to the course instructors, and certain Student Support staff members.
- -Any extension request up to 24 hours will be approved. Any extension request -up to 3 days made by a student with a DSP accommodation for assignment -extensions will be approved. Any longer extensions will be considered on a case-by-case basis.
- - -Joining CS 61A Late
- - -Work submitted late will not receive credit. However, it is possible to submit assignments if you -are not enrolled. If you would like to take the course but are -having enrollment issues, please submit all assignments by their due date.
- -To request to be added to course platforms, email -cs61a@berkeley.edu.
- - -DSP
- - -We will provide appropriate accommodations to all students enrolled in -Berkeley's Disabled Students Program (DSP). -To ensure that you receive the appropriate accommodations, have your DSP -specialist submit a letter confirming your status and accommodations.
- -If you're not enrolled in DSP, or are in the process of being onboarded by DSP, -you may still be eligible for accommodations (such as extended time on exams or -extended deadlines). You may also be eligible for accommodations if serious -extenuating circumstances should come up during the semester. If you believe you -may require accommodations, please email cs61a@berkeley.edu.
- - -Privacy
- - -All DSP and accommodations-related materials for this course are kept in a -repository separate from the rest of the course materials that is visible only -to the instructors, selected staff, and staff course managers.
- -For any DSP and accommodations-related communications, please reach out to -cs61a@berkeley.edu, which will put you in touch -with our student support team. This inbox is only visible to staff members marked with -"cs61a@" on the staff page. This inbox will be visible to future -members of course staff, so if you ever have a communication that you wish to -remain private, let us know and we can delete the email exchange once the -conversation is resolved.
- - -Grading
- - -Your course grade is computed using a point system with a total of 300 points, -broken down as follows:
- --
-
- The Midterm, worth 64 points -
- The Final, worth 92 points -
- Four projects, worth 100 points -
- Homework, worth 14 points -
- Lab 0 Completion, worth 2 points -
- Lab (1-11) Attendance, worth 9 points -
- Lab (1-11) Completion, worth 9 points -
- Discussion Attendance, worth 10 points -
There are an upwards of 10+ extra credit points available to everyone. These come in the form of early submission of projects, extra credit problems on projects, etc.
- -Each letter grade for the course corresponds to a range of scores:
- -A+ ≥ 300 A ≥ 285 A- ≥ 270
-B+ ≥ 255 B ≥ 230 B- ≥ 210
-C+ ≥ 190 C ≥ 180 C- ≥ 175
-D+ ≥ 170 D ≥ 165 D- ≥ 160
-
-Your final score will be rounded to the nearest integer before being converted -to a letter grade. 0.5 rounds up to 1, but 0.49 rounds down to 0.
- - - -There is no curve; your grade will depend only on how well you do, and not on -how well everyone else does. Score thresholds are based on how students -performed in previous semesters. Thresholds are not usually adjusted based -on student performance and never increased.
- -In a typical semester, 50-60% of students taking the course for a letter grade -will receive a B+ or higher.
- -Incomplete grades will be granted only for medical or personal emergencies that -cause you to miss the final or last part of the course, only for students who -have completed the majority of the coursework, and only if work up to the point -of the emergency has been satisfactory. If you wish to discuss an incomplete -in the course, please contact cs61a@berkeley.edu.
- - - -Many students end the course with perfect homework, project, lab, and discussion -scores. These parts of the course are not meant to be evaluations, but instead -learning tools.
- - -Exam Recovery
- - -Edit 7/18: Due to the difficult of the midterm exam, we have updated the exam recovery policy to be a full recovery using your final exam score.
- -It is possible to recover lost points on the Midterm by showing improvement on the final. Your Midterm percentage will be calculated as follows:
- -mt_percentage = max(mt_percentage, final_percentage)
-
-
-
-For example, if you score 50% on the Midterm and 80% on the Final, your Midterm score will be recovered to 80%.
- - -Late Policy
- - -If you cannot turn in an assignment on time, -you can request an extension. For late work beyond the extended deadline:
- --
-
- Labs receive no credit. -
- Homework receives no credit. -
- Projects: Submissions within 48 hours after the deadline will receive - 75% of the earned score. Submissions that are 48 hours or more after the - deadline will receive no credit. -
Citizenship
- - -It is our expectation that all interactions with course staff and other -students will demonstrate appropriate respect, consideration, and compassion -for others. Please remember to be friendly and thoughtful; our community draws -from a wide spectrum of valuable experiences. For further reading, please -reference the Berkeley Principles of Community and Berkeley Campus Code of -Student Conduct.
- -For exceptionally rude or disrespectful behavior toward the course staff or -other students, your final grade will be lowered by up to a full letter grade -(e.g., from an A- to a B-) at the discretion of the course instructors. You -don't need to be concerned about this policy if you treat other human beings -with even a bare minimum of respect and consideration and do not engage in -behavior that is actively harmful to others.
- - -Learning Cooperatively
- - -With the obvious exception of exams, we encourage you to discuss course -activities with your friends and classmates as you are working on them. You will -learn more in this class if you work with others than if you do not. Ask -questions, answer questions, and share ideas liberally.
- -Learning cooperatively is different from sharing answers. You shouldn't be -showing your code to other students or looking at others' code, except:
- --
-
- During lab, you can share all you want as long as you're all learning. -
- For a project that allows partners, you can share anything with your partner. -
- If you've finished a problem already, you can look at others' code to help - them finish. -
If you are helping another student, don't just tell them the answer; they will -learn very little and run into trouble on exams. Instead, try to guide them -toward discovering the solution on their own by thinking through examples. -Problem solving practice is critical to progress in computer science.
- -Since you're working collaboratively, keep your project partner informed. If -some medical or personal emergency takes you away from the course for an -extended period, or if you decide to drop the course for any reason, please -don't just disappear silently! You should inform your project partner so that -nobody is depending on you to do something you can't finish.
- - -Academic Misconduct
- - -Any students caught collaborating on exams will receive an F in the course. -Please don't be one of these students.
- -Reading others' homework or project solution to a problem before you solve that -problem on your own will incur point penalties. You are free to discuss -the problems with others beforehand, but you must write your own solutions. The -exception to this rule is that you may share code with your project partner.
- -The following is a list of things you should NOT do. This list is not -exhaustive, but covers most of the big offenses:
- --
-
- Do not copy code from any student who is not your partner. -
- Do not allow any student other than your partner to copy code from you. -
- Do not copy solutions from online sources such as Stack Overflow, Pastebin, - and public repositories on GitHub. -
- Do not read others' solutions to an assignment before you have completed the - assignment -
- Do not post your solutions publicly during or after the semester. -
If you find a solution online, please submit a link to that solution -anonymously. When we find an online -solution, we ask the author to remove it. We also record the solution and use it -to check for copying. By reporting online solutions, you help keep the course -fair for everyone.
- -In summary, we expect you to hand in your own work, take your own tests, and -complete projects with code written only by you and your partner.
- -Rather than copying someone else's work, ask for help. You are not alone in -this course! The entire staff is here to help you succeed. If you invest the -time to learn the material and complete the projects, you won't need to copy -any answers.
- - -A Parting Thought
- - -Grades and penalties aren't the purpose of this course. We really just want you -to learn. The entire staff is very excited to be teaching CS 61A this semester -and we're looking forward to meeting such a large and enthusiastic group of -students. We want all of you to be successful here. Welcome to CS 61A!
-