About the Course

Course description

Welcome to CSE 8B! We are happy to have you in this course! This course is the second course in a two course sequence of Introduction to Computer Science (CSE 8A is the first course). In this course, you will learn Object Oriented Programming (OOP) using the Java programming language. Specifically, you will learn how to design, implement, and use your own data types using classes and objects. You will also be learning many fun topics like memory model (stack and heap), recursion, interfaces, inheritance, polymorphism, collections, generics, exceptions, etc. We hope that you will have a great time learning these topics this quarter!


It is expected that you have taken CSE 8A or another equivalent introductory programming course. We understand that CSE 8A was taught in Python in Fall 2021, and we do not assume you have any experience with Java.  However, you should have basic knowledge and understanding of how to write simple programs in some language using the following: variables, conditionals (if/else), loops (while, for), arrays or lists (1D and 2D), and methods.  You should also have experience testing and debugging simple programs.

Learning outcomes

Students who successfully complete CSE 8B will be able to:

Course Logistics

Instructors and Course Staff


TAs and Tutors:

We have a large team of eager tutors and TAs this quarter.  You will find a page with their names, photos, email addresses and roles on the staff page

Please use the course discussion board for all course-related questions.  Use email only when you need to reach a specific staff member to speak to them personally.

All of the course staff will have weekly office or lab hours.  The days, times and locations of the offices hours will be listed on the course calendar.  If you cannot make it to these times and are unable to get your questions answered on the course discussion board, or you have a personal matter to discuss with your instructor, please email your instructor to set up an appointment to meet. 

Course Meeting Times and Locations

This course has two scheduled lecture sections, on Monday, Wednesday and Friday at 8am Pacific Time (with Greg Miranda, section A00) and Tuesday and Thursday at 5pm Pacific Time (with Mai ElSherief, section B00).  Each section also has a scheduled discussion time,  Wednesdays: 7pm (A01) and Thursdays: 8pm (B01).   All class and discussion sessions will be in-person*.  Class sessions will be recorded using podcasting and posted in the Canvas Media Gallery automatically, though there may be a delay.  

*Note: per campus policy, the lectures and discussions will be remote for the first four weeks.

Course Resources

There are six main resources for this course: Course website, Canvas, Gradescope, zyBooks, Piazza and Autograder.  You also may choose to use your lab account for this course to complete your work.

Course Website

The course website will be the main tool used in this course.  The course webpage contains basic information, syllabus (that you are reading right now!),  calendar (including office/lab hours), materials (notes, slides, etc) and staff contact information. You should check our course website often!


We will be using Canvas ( for publishing your grades for this course. The grades you see on canvas is YOUR OFFICIAL GRADE, and it is your responsibility to CHECK THEM REGULARLY to make sure they are recorded correctly.

Both the in-person and remote lectures will be recorded and posted in the Canvas Media Gallery. The in-person lecture recordings will also be available on

Textbook (required)

You will read and complete interactive exercises in an interactive textbook in zyBooks.  You must have your own copy of the book. 

We have negotiated the reduced price of $40 for this book.  Unlike other zyBooks you might have used, there is no code to purchase the book directly from  You MUST acquire the book through Canvas.  You may choose to buy an access code from the UCSD bookstore (which allows you to use your financial aid) or purchase the book directly from zyBooks once you go through the process below:

Step 1 (optional, but allows you to use financial aid): Buy an access code from the bookstore.

Step 2: Access the book through Canvas.  Go to the canvas page for CSE 8B and click on the first assignment (Week 1 zyBooks).  Follow the instructions here:  When you get to the part that sends you to zyBooks, you will be prompted to purchase the textbook.  At this point you will be able to enter your access code (if you bought one) or pay for the book directly.

If you cannot afford the textbook even with your financial aid, please contact the instructors ASAP.

Always access the zyBook for this class through Canvas.  Do NOT use directly and ignore the deadlines listed there.

If you follow this rule, you will be fine.  But here are some specifics:

Please expect zyBooks assignments to take you 1-2 hours per week to complete.  If they are taking significantly longer, please talk to your instructor.


We will use to manage tutoring hours.  We will add you to the class early in Week 1 (before the first tutoring hour).  We will post instructions on Piazza about how to use Autograder and what to do if you do not have an account. 

If you are a late add and are not on Autograder, either request access from the Autograder site or submit a private Piazza post with your name, email, and PID and ask us to add you.

Piazza (Course Discussion Board )

We will use Piazza as our course discussion board.  Please ask all course content related questions via piazza.  Make your post public unless it contains personal information.  This will help you get the fastest response possible to your post. DO NOT POST YOUR CODE as a public post on piazza as it will be considered as an Academic Integrity (AI) violation.

You can access Piazza from Canvas.

Policies for posting on Piazza:


You will use Gradescope (  (along with Canvas) to submit your assignments and for exams.  You will be added to our course on Gradescope automatically sometime during week 1 (before PA1 is due).  You should not need to take any action to see the course when you log on.

Coursework and Grades


Class Sessions (a.k.a. Lectures)

Class sessions will be more than lecture and will include many interactive exercises.  The focus of class is to help you understand and make progress on your weekly homework assignments and to reinforce the concepts from the zyBooks pre-class reading.  

Discussion Sections

Discussion sections will be led by TAs.  They will cover the weekly programming assignment, review prior content, and answer student questions. 

Pre-class Reading/Exercises (zyBooks)

In order to facilitate an interactive class session, you will have weekly assignments from zyBooks, which you must access through Canvas.  These assignments are graded on correctness, but you get as many chances as you like to get the answers correct.  These assignments are due at 8am PST, usually on Mondays at 8am, except when Monday falls on a holiday. Note: the first three zyBook assignments are due Thursday of Week 3 at 11:59pm before the first exam to accommodate late adds (no other extension will be granted to late adds for the readings).

Weekly Programming/Reflective Assignments

Each week you will have an assignment that will involve programming, testing and reflecting on or explaining your code and your experience.   More information will be given in each assignment.  

Assignments are due Tuesdays at 11:59pm and must be turned into Gradescope. No assignment submissions will be allowed through email or Piazza.  Each student will be able to submit late, as well as resubmit, a week after assignments grades. You do not have to ask to submit a late assignment, just turn it into the Late/Resubmit assignment on Gradescope which will be opened after the original assignment deadline has passed. The Late/Resubmit Gradescope submission is for students to turn in their late assignment or resubmit if they did not get full points on their original submission. No penalty will be applied for late submissions. 

Assignments will be graded at most twice: the original submission and the Late/Resubmit submission. No submissions will be accepted after the final Late/Resubmit deadline. It's highly recommended that all students complete as much of the assignment as possible before the original deadline so they can get graded feedback which can be fixed and resubmitted. 

There will be some assignments or parts of assignments that will be designated as individual only, but for most assignments we encourage you to work together with a partner using a Pair Programming approach on the programming part of the assignment.  If you choose to work with a partner using pair programming, you will submit only one assignment to Gradescope between the two of you.  

For more details on what collaboration is allowed on programming assignments, see the Collaboration section below.

Programming assignments will be in the Java programming language. You can find some instructions here on how to set it up on your own computer. 

When writing code in this course, please follow the CSE 8B Coding  Style Guidelines.

Star points

Programming assignments are designed to be very open ended.  You can usually satisfy the requirements in many ways.  If your submitted assignment was particularly innovative, ambitious or creative, you will be awarded a star point for your work.  

Star points are not extra credit.  If you do "enough" star points and are "close enough" to the boundary, you may be moved up to the higher grade, but do these star point extensions because you are intellectually curious and want a challenge.  Not for the grade.

In addition to the Star Points that can be earned on the weekly assignments, we will also reward the top student answerers on Piazza with a Star Point.  If you are among the top set of students who answer questions on Piazza, you will earn a Star Point.  (We won't get specific about what "top" means, but every quarter there's a few students who rise well above the others in terms of their Piazza response activities).   

Final Exam

In place of on-paper exams, we will follow a different procedure for “exams” this quarter.

Three times during the quarter and once at the time of the final exam, we will give you a programming assignment that you must complete in a short (24-48 hours) time frame without any help from other people, including the course staff. 

The final exam is cumulative, with three sections that each correspond to the material from one of the in-quarter exams. Your score on the assessment for a “third” of the course is the maximum of your score on that in-quarter exam and that part on the final. 

This grading policy also forms the missed exam policy – if you miss an in-quarter exam, you can make up that credit on the final. If you miss the final, your in-quarter exam scores will be used. Late work on exams or make-up exams will not be offered.

You can use any resources, notes, readings, and past code from the course to help in addition to Web-based resources. Do not copy code from any resource outside the course material as that is an Academic Integrity violation. 

Along with submitting the program, you will record a short video of yourself presenting the program you wrote, demonstrating its behavior and your understanding. We’ll give some opportunities for practice with this process, and much more detailed instructions with the exam release.

We do not expect that the programming work and recording will take a full day of constant work. The tasks will be significantly shorter than the PAs, so this should only take a few hours. We give the broad range to give you the best chance to schedule some quiet, focused time to do the work and record the presentation.


Each component of the course will factor into your grade as follows:

Grading cutoffs

Full letter grades will be assigned on a standard scale: 90-100=some kind of A; 80-89.9=some kind of B, 70-79.9=some kind of C, 60-69.9=D, Below 60=F.   Plusses and minuses will be given at the edges of each range, with exact boundaries determined at the end of the course.  For P/NP grading, 70 or above will earn a grade of pass (P), and below 70 will earn a NP.  Completion of star points can potentially affect students near the border between two grades and will be considered in assigning A+ grades.   

How you must demonstrate proficiency to pass

Your grade is calculated as described above, with two exceptions:

Course Policies

Academic Integrity

In this course we expect students to adhere to the UC San Diego Integrity of Scholarship Policy.   This means that you will complete your work honestly, with integrity, and support and environment of integrity within the class for which you are tutoring.  Some examples of specific ways this policy applies to CSE 8B include:

Violating any of the academic integrity policies for this course may result in a reduced grade or a grade of an F/NP.  

Collaboration Policy

The main goal of the programming assignments is for you to become a better programmer.  You must experience writing your own code for this to really happen.

Pair programming on programming assignments is strongly encouraged.  Students who pair program must work together either in-person or over zoom during all development of the program.  If you choose to pair program, you may not work on the assignment without your partner participating, with the exception of doing small amounts of debugging or getting help from the TAs or tutors.

You may discuss your assignment with other students who are not your partner, and you may help them debug, but all code that you submit must be written by you (and your partner) alone.  

You may not discuss exam problems with anyone until after the exam has been graded and returned to you.  

Regrade Policy

If you feel that an assignment or exam question has been graded incorrectly, you must submit a regrade request via the Gradescope interface within 3 days of receiving your grade.  We will consider your request and adjust your score if necessary.

Technology/Zoom Policy (for any remote lectures)

We expect you to participate in this remote class in the same way that you participate in person, but it can be harder with everyone spread out.  Here’s what we ask to make the remote classroom experience as productive as possible:

Classes will be recorded and posted on our Canvas site.  They will not be posted publicly.

It is critical that you focus during the short period of our classes.  Use of technology for any activity not directly related to what is going on in class MUST be avoided.  This includes, but is not limited to, the following:

Outside Tutoring

Individuals are not permitted to approach students to offer services of any kind in exchange for pay,  including tutoring services.  This is considered solicitation for business and is strictly prohibited by University policy.

Getting Help

We expect that all students will need help at some point in this course. If you find yourself needing help, this is not cause for embarrassment: it is completely expected, and our goal is to ensure that you are able to receive the help you need. Please be sure to seek help early and often through any (or all!) of the following resources:

Other Resources

The IDEA Engineering Student Center, located just off the lobby of Jacobs Hall, is a hub for student engagement, academic enrichment, personal/professional development, leadership, community involvement, and a respectful learning environment for all.  The Center offers a variety of programs, listed in the IDEA Center Facebook page at (you are welcome to Like this page!) and the Center web site at  The IDEA Center programs support both undergraduate students and graduate students. 

Diversity and Inclusion

We are committed to fostering a learning environment for this course that supports a diversity of thoughts, perspectives and experiences, and respects your identities (including race, ethnicity, heritage, gender, sex, class, sexuality, religion, ability, age, educational background, etc.).  Our goal is to create a diverse and inclusive learning environment where all students feel comfortable and can thrive. 

Our instructional staff will make a concerted effort to be welcoming and inclusive to the wide diversity of students in this course.  If there is a way we can make you feel more included please let one of the course staff know, either in person, via email/discussion board, or even in a note under the door.  Our learning about diverse perspectives and identities is an ongoing process, and we welcome your perspectives and input. 

We also expect that you, as a student in this course, will honor and respect your classmates, abiding by the UCSD Principles of Community (  Please understand that others’ backgrounds, perspectives and experiences may be different than your own, and help us to build an environment where everyone is respected and feels comfortable.

If you experience any sort of harassment or discrimination, please contact your instructor as soon as possible.   If you prefer to speak with someone outside of the course, please contact the Office of Prevention of Harassment and Discrimination:  

Students with Disabilities

We aim to create an environment in which all students can succeed in this course.  If you have a disability, please contact the Office for Students with Disability (OSD), which is located in University Center 202 behind Center Hall, to discuss appropriate accommodations right away.  We will work to provide you with the accommodations you need, but you must first provide a current Authorization For Accommodation (AFA) letter issued by the OSD. You are required to present their AFA letters to faculty (please make arrangements to contact your instructor privately) and to the OSD Liaison in the department in advance so that accommodations may be arranged.

Basic Needs/Food Insecurities

If you are experiencing any basic needs insecurities (food, housing, financial resources), there are resources available on campus to help, including The Hub and the Triton Food Pantry.  Please visit for more information.


Do I have to participate if I’m on the waitlist?

Yes, you’re responsible for everything as if you’re a normally-enrolled student while you’re on the waitlist, including any submission deadlines, and your work will be graded as usual.

I have a question about enrollments and the waitlist.

Please contact CSE student affairs, who can give the best advice and information about the enrollment process. They are friendly and helpful and know much more about timing and any updates you will see through the registration system.

There is some useful advice at Enrolling in CSE Courses that likely summarizes a lot of what they would tell you to get you started.

Will the course be in-person or remote? Is attendance required?

The content of the course is primarily delivered through an online textbook and through pre-recorded videos from the instructors. The synchronous sessions are for problem-solving with your classmates and Q&A with the instructional team. In each session, you will work in pairs or small groups on problems that we provide and we will go over them as a group.

Attendance is not required, but is highly recommended. Studies (by UCSD faculty) have shown that attendance and participation in lecture leads to better student performance and higher grades.

All of the exams, including the final exam, will have an asynchronous format. Students will not be required to take the final exam during the scheduled block, and there will be some flexibility on when it needs to be completed on the day of the exam (but not necessarily flexibility to take it on other days).

Can I audit the course?

You can use all the public resources on this website, and if you’re a UCSD community member, you can view all the podcasts for the problem sessions at Beyond that we don’t have any formalized support for auditing the course.

What if I have enrolled in CSE8B but won’t be able to be in La Jolla for most or all of Winter 2022?

If the attendance policy above doesn’t address your situation, please contact

Do we need a clicker for this class?