Syllabus
Textbook

Excel Book Cover


The course text is Algorithm Design, by Jon Kleinberg and Eva Tardos. ISBN:0-321-29535-8.

Please note that there are several options with respect to obtaining the book. Students can purchase the text at any bookstore in both new and used format, buy or rent it online directly from the the usual Internet textbook resellers such as: Chegg.com or Cengagebrain.com. As outlined above, there are many buying options available. Pick the way that works best for you!

Instructor
Dr. Sajedul Talukder
Office: Engineering A0407
School of Computing
Southern Illinois University
(618) 453-6059
sajedul.talukder@siu.edu
Quote

"The only man who never makes mistakes is the man who never does anything."

- Theodore Roosevelt

Welcome to CS 330/491, Spring 2024. In this class we will study algorithm analysis, design and data structures. This course is intended to be provide an introduction to algorithm analysis and design. It will begin with a discussion on the motivation behind the study of algorithms, the methods used in the analysis of algorithms, and how to show algorithm correctness. Following this extended introduction, algorithm design techniques will be presented. This will include techniques such as brute force, divide/conquer/combine, greedy, dynamic programming and network flow. The course will conclude with an exploration of computational intractability, including the class of NP-complete problems.

A brief overview/review of basic data structures will be provided early in the course. More complex data structures will be introduced as they are needed by the algorithms developed in the course. These will include graphs and trees.
Objectives
  • Describe implementation, behavior, and use of selected data structures.
  • Describe the algorithm for, characteristics and performance of selected sorting and searching algorithms.
  • Identify various algorithm design techniques.
  • Analyze algorithms for efficiency and correctness.
  • Distinguish among P, NP, and NP-Complete classes.

The best way to reach me is via email sajedul.talukder@siu.edu, but please do not expect email replies on the same day or weekends. It is very important that you send email from an siu.edu address and identify yourself, your course, and the section that you are in. Please do not use the D2L email or messaging facility, which is sometimes unreliable.
Please Remember
Our goals are for you to succeed in this course and to teach you skills and concepts that will contribute to your success in life. To this end, here's some advice that you may find particularly useful:
  • Do not stress over grades: your goal is to learn new and exciting things. Good grades follow naturally from deep learning (but not necessarily vice versa). ...and employers care about what you know not what grade you got.
  • Participate: you will get a lot more from this class if you ask questions and engage with the instructor than if you are a fly on the wall - and it will be more fun.
  • Manage your time wisely: allocate sufficient time for homework and learning. In particular, use class time to learn, review the material presented in lecture the same day, and schedule time for homework proactively.
  • Start homework early: racing against a deadline is so stressful! Starting early will remove that stress, lead to deeper learning and give you time to improve your solution.
  • Get all the help you need: we provide plenty of resources to help you succeeed in this course - office hours, online help, and friendly staff when you need them. Take advantage of them: they are there for you!
  • Make time for fun: take a break from studying at least once a day - meet with friends, go for a walk, play sports, whatever gets you to reset your mind.
I am the instructor of record for this class. Only the instructor of record can properly grade coursework and issue midterm and final grades.