Syllabus

This document and others linked within it should be your PRIMARY source for understanding the expectations of this course. Be sure to read it carefully. You must contact the instructor for clarification if you receive information from any another source that is in contradiction to what is provided below.

Basic Facts

If you have a section conflict you may informally switch your section time with another student and consistently attend the new time. If you are working with a pair partner, you may attend any section that works for both of you. No need to email the instructor. Section attendance is highly recommended because that’s the time when LAs and TAs are available to help you. There is an expectation that you start working on each lab/programmming assignment during sections and use office hours as extra help.

Contacting the course staff, including the instructor: Please use the class discussion forum, Piazza rather than email for course related communication. You can send private messages on Piazza to either the entire course staff or directly to me. If you must email me using my email address (diba@ucsb.edu), please put CS24 in the subject line, and know that there may be a delay in the response.

Overview

The goal of this class is to solve problems efficiently using data structures and algorithms. You’ll learn about abstract data types e.g. stacks, queues, priority_queues, sets, and maps; the concrete data structures used to implement them, e.g. vectors, and binary trees; and how to reason about the complexity of the operations performed on the data structures. Another goal is to become proficient with coding in C++ and using the C++ Standard Template Library (STL) well enough to succeed in technical coding interviews and future classes!

Resources

Everything in this class is optional except the programming assignments and exams. Lecture attendance is not required but highly recommended. Lecture slides and code will be available on GitHub. There is no required textbook. Everything we talk about in this class is common computer science material, and you can find it online in whatever format you like best. Below are recommended textbooks:

A great way to learn data structures is to visualize them. I recommend using https://visualgo.net/.

In class participation using iclicker cloud Join the class use this link to engage with the course content: https://join.iclicker.com/GLRN iclicker participation does not count toward your grade.

Piazza

We’ll be using Piazza as a Q&A forum. If you have a question that might apply to other people as well, it’s better to ask on Piazza than to send an email.

If you ask coding questions on Piazza, please:

Link to join Piazza: https://piazza.com/ucsb/winter2024/cmpsc24/resources

Grading

Your final score will be weighted as follows

Please check the collaboration policy of each programming assignment - some must be completed individually while others may be completed in pairs using a pair programming style (more details below).

You have six late days to use over the course of the quarter. Any individual assignment may be turned in up to three days late. As long as your total late time does not exceed six days there is no penalty, but using more than six days will drop your final score by 10% per extra day used.

The cut-offs for letter grades will be at the discretion of the instructor, you can expect grades to follow the standard scale.

About pair programming

Some of the programming work in this course will be done using a style of programming known as "pair programming". This is where two people (in rare cases, three) work together at the same terminal to solve a programming problem. It is similar, in some ways, to having a "lab partner" in a Biology, Chemistry or Physics course. For the assignments where pair programming is mentioned, it is optional. But here’s why we recommend it:

What you should know to be ready for CS24

Here’s the list of a few important things you’ll need to know to be ready for CS24.

Course objectives

Academic Integrity

Please read about actions that are categorized as Academic Dishonesty on the UC Santa Barbara Office of Student Conduct website: http://studentconduct.sa.ucsb.edu/academic-integrity

Academic integrity violations will be taken seriously, reported to the campus-wide Office of Student Conduct, and will result in either lowering your grade by a whole grade point or an F in the course. Key facts about academic integrity related to CS24:

Policy on all cheating cases is:

Makeups for exams

Disabled Students Program (DSP)

UCSB provides academic accommodations to students with disabilities. Students with disabilities are responsible for ensuring that the Disabled Students Program (DSP) is aware of their disabilities and for providing DSP with appropriate documentation. DSP is located at 2120 Student Resource Building and serves as the campus liaison regarding issues and regulations related to students with disabilities. The DSP staff works in an advisory capacity with a variety of campus departments to ensure that equal access is provided to all disabled students. If you have a disability that requires accommodation in this class, please go see the DSP very early on in the quarter. I will only honor these types of requests for accommodation via the DSP. More information about the DSP is found here: http://dsp.sa.ucsb.edu

Disclaimer

The course policies have been provided as accurately as possible, but are subject to change at the instructor’s discretion, within the bounds of UC policy.

Back to Syllabus