COSC.031-WI25
Algorithms (WI25)
Course Descrip!on and Learning Objectives
This is a course which teaches the basics of design and analysis of algorithms. Simply put, an algorithm is a step-by-step procedure to solve a problem, and forms the bedrock of computer science. The learning objectives of this course are:
describe an algorithm precisely and succinctly
analyze the correctness and efficiency (running !mes) of algorithms
learn some basic algorithmic techniques and some classic algorithms for fundamental problems
use the above knowledge to adapt them for solving different problems
design new algorithms
From a computer science perspective, the above objectives will make a student better problem solvers and programmers. Although the course is primarily theoretical, there are avenues for programming where students can hone their coding skills.
Logistics
Prerequisites: COSC 30 or equivalent. See this.
Lectures: 9L hour (M-W-F, 8:50 - 9:55, X-hour on Th, 9:05-9:55)
Class Venue: Cummings 100 (Spanos Auditorium)
Discussions: via Ed Discussion
Work Submissions: (mostly) Gradescope
Textbook: Lecture notes and plenty of practice problems (with solutions) will be posted. No particular textbook needed, but these are good:
Erickson: Algorithms (this is freely available here: https://jeffe.cs.illinois.edu/teaching/algorithms/)
Dasgupta, Papadimitriou, Vazirani: Algorithms
Roughgarden: Algorithms Illuminated
Cormen, Leiserson, Rivest, Stein: Introduc!on to Algorithms
Kleinberg, Tardos: Algorithm Design
Read these:
Best Practices
Honor Principle vis-a-vis COSC 31, W25
Policies
Instruction Staff, Office Hours, & Problem Solving Sessions