# Syllabus: Colorado CSCI 5454, Fall 2023

Instructor: Bo Waggoner
Course webpage: https://www.bowaggoner.com/courses/2023/csci5454/

## Course Information

### Goals and topics

The goal of the course is to familiarize students with the dominant paradigms for mathematically rigorous design and analysis of classical, sequential algorithms. After taking this course, students will be prepared: to interface with and design sophisticated modern algorithms in software engineering; go on to (self-)study advanced or specialized topics in algorithms; study related topics such as machine learning.

• Module 1: Combinatorial and Graph Algorithms
• Paths and graph search
• Dynamic programming
• Flows and cuts
• Matchings
• Module 2: Approximation, Online, and Randomized Algorithms
• Approximation algs, e.g. greedy matching
• Online algs, e.g. ski rental
• Randomized (and approximation) algs, e.g. max-cut
• Settings combining all three features
• Data structures, e.g. hash tables
• Module 3: Continuous, Linear, and Convex Methods
• Linear algebra and graphs; random walks
• Dimensionality reduction
• Online no-regret learning; zero-sum games
• Linear programming applications

### Prerequisites

This course will be theoretical, mathematically rigorous, and proof-based. We will assume familiarity with undergraduate algorithms (such as CSCI 3104), data structures (such as CSCI 2270), discrete mathematics (such as CSCI 2824), linear algebra, and calculus. Students may also be expected to implement small programs in a programming language of their choice.

Students should already have learned and reviewed the following material. Students lacking these prerequisites are strongly encouraged to take CSCI 3104 first.

• Big-O, Big-Theta, Big-Omega notation and their mathematical meanings.
• Basic data structures, heaps, binary search trees.
• Algorithm design approaches: divide-and-conquer (analysis using recurrences), greedy algorithms, dynamic programming.
• Algorithms for basic search and sorting (bubblesort, mergesort, quicksort, etc).
• Basic graph algorithms: breadth- and depth-first search, shortest paths, spanning trees.
• Definitions of P and NP complexity classes, the notion of NP-hardness.

### When you have questions

• Course logistics: (1) read this page; (2) post on Zulip; (3) email TA or instructor.
• Assignments and course material: (1) re-read course notes; (2) consider reading linked resources; (3) post on Zulip and discuss with fellow students; (4) attend office hours.
• Confidential or non-course-related: email instructor.

### Assignments and Evaluation

• Readings and videos: Prior to each class we will typically assign a video and a reading. Students should expect to spend an hour with this material before each class. This will allow us to use class time to solve problems (including homework problems).
• Homework (60% of grade): Assignments will usually be due every week and turned in using Gradescope.
• Midterm exam (15% of grade), details to be announced on course homepage.
• Final exam (20% of grade), details to be announced on course homepage.
• Participation (5% of grade), by asking and answering questions on Zulip.

The final score will be calculated by a weighted average of the grades in each component, subject to Drop policies below. The instructor does not have discretion over the student's final score. Course letter grades will be assigned based on final scores using thresholds.

## CSCI 5454 Policies and Logistics

### Remote and Asynchronous Students

Students, including those enrolled in the remote (virtual) section, are strongly encouraged to attend synchronously on Zoom unless they have another class or work conflict. Students who have a conflict are asked to notify the instructor.

### Homework Policy (Drop 2 Rule)

Each student's two lowest homework grades will be dropped and the homework component of their course grade will be calculated by averaging scores on remaining assignments.

Because of this, we will not accept late homework for any reason (it will be dropped instead).

This allows students two emergency or exceptional scenarios during the semester that prevent them from turning in homeworks, as these two zeros will not affect their final grade. It also allows our staff to post solutions and return homeworks to students as quickly as possible, which improves the feedback cycle and learning process.

If a student faces an on-going exceptional situation that is likely to prevent on-time submission of three or more homeworks, they should notify the instructor as soon as possible.

### Collaboration and Homework Policy

1. Students are encouraged to work together to understand course material, including homework material.
2. Students must write their own homework solutions themselves in their own words.
3. Each homework must list the people the student collaborated with and external resources consulted. External resources include people not affiliated with the course, materials not mentioned or linked on the course site, and any other tools used such as AI tools.
4. Students may consult external resources for general understanding of material covered in class (e.g. "how does topological sort work?") and are encouraged to share useful resources with others on Zulip.
5. However, students may not use external resources to find solutions to specific homework problems.
6. On exams, students may NOT collaborate nor use external resources of any kind. Only calculators (or calculator programs) are allowed.
7. Coursework is graded for correctness, clarity, and conciseness. Answers may be graded down if they are overly lengthy, contain unnecessary content, and/or are difficult to understand, even if they otherwise contain all of the correct components.
8. If this policy is unclear or you have any questions, contact the instructors e.g. by posting on Zulip.

### Regrade Policy

Grading will assess the submission as written according to a rubric that is equally applied to all students and cannot be changed.

If you feel a mistake has been made in applying the rubric on a homework or exam, you may submit a specific, concise, concrete regrade request via Gradescope within one week of receiving the original grade. Students must consult the official sample solutions before submitting a regrade request. Students are encouraged to utilize peers, Zulip, and/or office hours to understand the problem and grading feedback before submitting a regrade request.

### AI and Tools Policy

The goal of the class is to develop students' personal understanding of of the topics, ability to solve problems, and ability to express solutions. These skills will enable students to be adept users of AI tools to solve problems in the future. But to develop the skills, students need to challenge their own brains to engage with the material and tasks directly, not delegate them to AI tools. By analogy, an electric bike can help a strong cyclist go even faster and farther, but one cannot become a strong cyclist by always relying on the electric throttle.

The above Collaboration and Homework Policy section states the course policies with respect to use of external resources for learning and assignments. AI tools, such as ChatGPT, are considered external resources for the purposes of the policy.

To reiterate: Asking an AI tool to help solve a specific problem is not allowed. Using an AI tool to generate parts of a written answer is not allowed: students must write solutions themselves in their own words. Using AI tools for general understanding of material covered in class is permitted, although other resources are likely to be more helpful (e.g. course notes, textbooks, instructional videos, peers, Zulip, and office hours).

## Standard Course Policies

Other course policies can be found here: https://click.communications.cu.edu/?qs=e2b45aef0df73d5f5cbe7946f697a5d405476acf99319fc4d5b01decf751ef9cebeecd174cd32fcdcc34f11452420a20e59136a44abf7f62