Welcome to CS 5112, Algorithms for Applications. This class covers fundamental algorithms and data structures used in current applications. Algorithms include graph algorithms, hashing and streaming/sketching techniques. Applications will include select topics in systems, security, and more.
Classroom: Bloomberg Center 131
Lecture time: 1:25pm-2:40pm Tuesday/Thursday
Instructor:
Alex Conway (https://ajhconway.com/)
Office hours: Alex 2:45-3:30pm Tuesdays (after lecture), Bloomberg 362. Confirm with me before class that day ideally via email or Slack (otherwise I will free up the time).
TAs:
Xilin Tang [email protected]
Yuqi Mai [email protected]
Bo Liu [email protected]
Yixuan Gao [email protected]
Hao Phung [email protected]
TA Office hours: These will be announced on our Slack instance. Please join the #office-hours channel on Slack for virtual OH and expect TA response in 24h.
Please join the class Slack. The Slack is used for announcements, questions, and office hours.
Familiarity with basic programming, algorithms, and data structures (at the level taught in a sophomore course), or permission of instructor. The course will require programming in Python.
The class will involve a combination of lectures, and the primary deliverable will be homeworks that combine programming and short answers. You'll be graded according to the following:
- Participation: 10%
- Homeworks: 90% (each homework will count an equal amount)
Late Days. Homeworks are due on the due date by 11:59:59pm EST. You can use in total 3 late days throughout the semester. For every extra day beyond the 3 days limit, there will be a deduction of 10% in the respective assignment.
There will be several opportunities for extra credit, as well. The current plan is to have four or five homework assignments spread across the semester. Details and schedule will be released in the first week of class.
We will allow students to collaborate on homeworks, but each individual must submit their own solutions written up individually. Homeworks should indicate who you collaborated with. Similarly, any online sources or tools (such as code generation tools) you utilize should be explicitly acknowledged. While we do not prohibit using such tools, you are of course responsible for the correctness of submitted solutions, and we expect you to understand them and be able to explain them.
We expect students to attend lectures. We have reserved 10% of final grades as participation; the default will be that everyone gets the full 10% but we reserve the right to start taking attendance or otherwise change how participation is alotted if lecture attendance/participation proves poor.
While no textbook is required, we will be basing a lot of content on the Kleinberg and Tardos textbook.
The (tentative) lecture and homework schedule can be found here.