CSE100 Algorithm Design and Analysis (Spring 2017)

Staff and office hours

Instructor: Sungjin Im

TAs:

Mahshid Montazer Qaem

Bhrigu Adlakha

Class time and location

Lectures: Tuesdays/Thursdays 4:30-5:45pm (Classroom 116)

Lab class: Monday 1:30-4:20pm (section 02L), 7:30-10:20pm (section 03L), and Wed 10:30am-1:20pm (section 04L), 1:30pm-4:30pm (section 05L). Linux Lab, SE100

Course description

Introduction to the design and analysis of computer algorithms. Topics include analysis and implementation of algorithms, concepts of algorithm complexity, and various algorithmic design patterns. Course will also cover major algorithms and data structures for searching and sorting, graphs, and some optimization techniques.

Prerequisites: CSE 15 and CSE31; proficient level of programming skills in C or C++ and elementary data structures; basic math and probability knowledge.

Textbook

Required textbook (get the errata):

The companion site for the book has additional materials (partial solutions, etc.).

Other books recommended as additional reading:

Syllabus and required textbook reading

Syllabus

Topics: Asymptotic notation. Divide-and-conquer. Recurrent equations and the master theorem. Space and time complexity. Loop invariants. Linear and binary search. Sorting algorithms: insertion sort, selection sort, mergesort, quicksort, heapsort. Sorting lower bounds. Heaps. Binary search trees. Hash tables with chaining and open addressing. Dynamic programming and greedy algorithms. Graphs: definition and relevant problems (path search, flow, minimum spanning trees).

The course will follow parts I, II, III, IV and VI of the textbook (skipping occasional topics).

Textbook reading (table of contents):

If there is time, we will also do one of the following chapters:

Schedule (subject to change)

Course grading

While I encourage you to discuss your work with other students, the homeworks, lab assignments, project and exams must be the result of your own work without collaboration. See the Academic Dishonesty Statement and the UC Merced Academic Honesty Policy. If you cheat once, you will get zero points for the hw/lab/exam you cheated on. If you do twice, you will get an F.

Links

Algorithms:

Programming resources:

Plotting resources:

Job interview questions about algorithms:


* Acknowledgements: The instructor thanks Prof. Carreira-Perpiñán for allowing me to borrow the course format including this webpage itself.