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

This is a class about data structures. You learned the basics of coding in your previous CS classes; now we’ll talk about how your data is laid out in memory and how to organize it efficiently. We’ll talk about abstract data types like stacks, queues, priority_queues, sets, and maps; the concrete data structures used to implement them, like vectors, and binary trees; the performance of the operations performed on the data structures; and how to use these structures to solve problems.

This is also a C++ class, and we’d like you to sufficiently proficient with coding C++ and the C++ Standard Template Library (STL). You’ll pick up C++ syntax as you do the programming assignments but at the end of it you should know the language well enough to through a technical coding interview. Come to lab sections or ask on Piazza if you have any questions!

Materials

Everything in this class is optional except the programming assignments. Lecture attendance is not required but highly recommended. Lecture slides and code will be available on GitHub. There is no required reading. There is no 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. If you prefer learning from textbooks, here are some possibilities:

In class participation using iclicker cloud Join the class use this link to engage with the course content: https://join.iclicker.com/HFXE

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/fall2023/cmpsc24

Grading

Your final score will be weighted as follows

Weekly labs must be be completed individually. The longer programming assignments may be completed in pairs using a pair programming style (more details below).

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

I may decide to curve the class; if I do, this will apply to your cumulative scores at the end of the quarter, and will only be in your favor. Getting 90% of the possible points guarantees you at least an A-, 80% a B-, and so on.

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