Chaya·EduEDU.CHAYA.DEV
Fall 2026 · Section 001 · Class #4435 · 3 credits
AI 230

Introduction to Algorithms

This course introduces the design, analysis, and practical implementation of algorithms. Students learn to reason about correctness and efficiency, to select and adapt appropriate algorithmic strategies for a problem, and to justify their choices with both mathematical analysis and empirical measurement. Every major technique — divide and conquer, greedy methods, dynamic programming, graph traversal, and the boundaries of tractability — is developed through working code applied to realistic problems rather than through proof exercises alone.

Tue & Thu 4:00 – 5:50 PM Online — all sessions live on Google Meet Room of record: Pratt 520

Dial in: +1 573-741-0170 · PIN 948 640 826# · more numbers

Lecture notes

Session Notes

Posted before the session they're used in and kept available all term. Each set is a self-contained page — read it, work the examples, and bring questions.

Fifteen weeks

Weekly Schedule

The schedule is aligned to the LIU Brooklyn academic calendar; any session affected by a University holiday or closure is adjusted and announced in class and on Brightspace. The current week is highlighted.

WeekSessionsTopicMaterialsTo do
WK 1 S1 · Sep 3 Course overview. Algorithmic thinking, problem specification, and correctness Notes 01
  • Set up Python environment, Git, and GitHub
  • Join the course repository
WK 2 S2–S3 · Sep 8, Sep 10 Asymptotic analysis: Big-O, Omega, Theta. Analyzing loops Notes 02
  • Review Notes 01–02
  • Project 1 specification released
WK 3 S4–S5 · Sep 15, Sep 17 Recursion, recurrence relations, and the Master Theorem Notes 03
  • Review Notes 03
  • Project 1 work begins
WK 4 S6–S7 · Sep 22, Sep 24 Sorting I: insertion, merge, and quicksort. Divide and conquer Notes 04 · soon
  • Review Notes 04
  • Project 1 in progress
WK 5 S8–S9 · Sep 29, Oct 1 Sorting II: heapsort, lower bounds, counting and radix sort. Searching
Project 1 due
Notes 05 · soon
  • Review Notes 05
  • Project 1 due
WK 6 S10–S11 · Oct 6, Oct 8 Hash tables: hashing, collisions, load factor, and amortized cost Notes 06 · soon
  • Review Notes 06
  • Project 2 specification released
WK 7 S12–S13 · Oct 13, Oct 15 Trees, binary search trees, balancing, heaps and priority queues Notes 07 · soon
  • Review Notes 07
  • Project 2 in progress
WK 8 S14–S15 · Oct 20, Oct 22 Greedy algorithms: interval scheduling, Huffman coding, exchange arguments
Project 2 due
Notes 08 · soon
  • Review Notes 08
  • Project 2 due
WK 9 S16–S17 · Oct 27, Oct 29 Dynamic programming I: memoization, knapsack, longest common subsequence Notes 09 · soon
  • Review Notes 09
  • Project 3 specification released
WK 10 S18–S19 · Nov 3, Nov 5 Dynamic programming II: edit distance, sequence alignment, DP on trees Notes 10 · soon
  • Review Notes 10
  • Project 3 in progress
WK 11 S20–S21 · Nov 10, Nov 12 Graphs: representations, BFS, DFS, topological sort, connectivity Notes 11 · soon
  • Review Notes 11
  • Project 3 in progress
WK 12 S22–S23 · Nov 17, Nov 19 Minimum spanning trees (Kruskal, Prim) and union-find
Project 3 due
Notes 12 · soon
  • Review Notes 12
  • Project 3 due
  • Project 4 specification released
WK 13 S24 · Nov 24 Shortest paths: Dijkstra, Bellman-Ford, Floyd-Warshall. Introduction to flow◦ Nov 26 — no class (Thanksgiving)
Capstone proposal due
Notes 13 · soon
  • Review Notes 13
  • Capstone proposal due
WK 14 S25–S26 · Dec 1, Dec 3 Tractability: P, NP, NP-completeness, and reductions in practice Notes 14 · soon
  • Review Notes 14
  • Capstone in progress
WK 15 S27–S28 · Dec 8, Dec 10 Approximation, randomization, and heuristics. Capstone presentations Notes 15 · soon
  • Review Notes 15
  • Capstone presentations
  • Final report and code submission
FINALS Dec 14 – 21 Final capstone deliverables due. No final examination.
No examinations

Projects & Grading

This course is graded entirely on four hands-on projects — there are no exams. Specifications and rubrics are released at least two weeks before each due date. Every project is submitted as a Git repository plus a written report; late work is reduced by 10% per calendar day.

Project 125%

Complexity Laboratory

Implement a family of sorting and searching algorithms from scratch, build a benchmarking harness, and produce a written analysis that reconciles measured runtimes against predicted asymptotic behavior — explaining where and why the theoretical model and the machine disagree.

Project 225%

Data Structures in Practice

Build a hash table and a balanced search tree or priority queue without library support, then apply them to a substantial real dataset. Includes a test suite, a performance comparison against the language's built-in structures, and a written justification of the design decisions.

Project 325%

Optimization Engine

Solve a single realistic optimization problem twice — once with a greedy strategy and once with dynamic programming — and report on correctness, optimality, and cost, stating precisely when the greedy approach is safe and when it fails.

Project 425%

Capstone: Graph-Based Application

Design and build an application driven by graph algorithms (routing, scheduling, dependency resolution, or recommendation) that includes at least one computationally hard subproblem addressed by a heuristic. Working system, technical report, and a live presentation during the final session block.

Grading rubric — how every project is assessed

Every project is graded on the same four criteria. Each project rubric is released with its specification.

CriterionWeightWhat is assessed
Correctness and completeness35%The artifact does what the specification requires, and the required cases are handled.
Implementation quality20%Structure, readability, and evidence of testing. Commit history shows sustained individual work.
Analysis and written report25%The report explains the design, justifies the decisions, and reports results honestly, including what did not work.
Demonstration and defense20%The student can run the artifact live and answer questions about any part of it.
Grading scale
LetterRange %GPA
A93–1004.00
A-90–923.67
B+87–893.33
B83–863.00
B-80–822.67
C+77–792.33
C73–762.00
C-68–721.67
D60–671.00
F< 600.00
Expected time commitment (160 h total)
Synchronous class sessions51 h
Review of posted notes30 h
Project 1 — Complexity Laboratory17 h
Project 2 — Data Structures in Practice20 h
Project 3 — Optimization Engine20 h
Project 4 — Capstone and presentation22 h
Total160 h
The fine print

Course Info & Policies

Prerequisites

Introductory programming proficiency in a language of your choice (Python recommended) and college-level discrete mathematics, or permission of the instructor.

Software & tools — all free

  • Python 3.11 or later (primary language for all projects; another language may be used with prior approval)
  • Git and a personal GitHub account
  • A code editor of your choice (VS Code recommended)
  • Jupyter Notebook or equivalent, for benchmarking and analysis write-ups
  • Google Meet, for all synchronous class sessions

What you'll be able to do

  1. Analyze the time and space complexity of an algorithm and express the result in correct asymptotic notation.
  2. Implement, test, and empirically benchmark fundamental sorting, searching, and data-structure algorithms.
  3. Select and justify an appropriate algorithmic strategy — divide and conquer, greedy, or dynamic programming — for an unfamiliar problem.
  4. Model a real-world problem as a graph and apply traversal, spanning-tree, and shortest-path algorithms to solve it.
  5. Recognize computationally intractable problems and design a defensible heuristic or approximation approach.
  6. Communicate an algorithmic design and its performance characteristics in written form and in a technical presentation.
Live sessions & attendance

All class sessions are held live on Google Meet at the scheduled times. Students are expected to attend, to have their development environment running, and to be able to share their screen when demonstrating work. Every student presents current work and takes part in critique at each meeting.

Communication

Modes of communication are Brightspace (lms.liu.edu) and email; expect a reply within 24 hours. Virtual office hours are held by appointment — email the instructor to schedule.

Materials & this site

All course notes, examples, and project specifications are distributed through the course repository and this site. Students are responsible for reviewing the current version before each session.

Submission & late work

Every project is submitted through Brightspace as a link to the student's Git repository, together with the written report. Commit history is part of the evidence of individual work. Late work is reduced by 10% per calendar day. Extensions are granted only for a documented medical or family emergency, requested before the deadline by email.

Individual work & AI use

Projects are individual work unless a specification explicitly designates a team deliverable. Discussing approaches is fine, but submitted code, models, and writing must be your own. Generative AI tools may be used as a learning aid and are treated like any other reference: any AI-assisted portion of a submission must be disclosed in the project report, and you must be able to explain and defend every line of what you submit.

Recording

Recording of class sessions by students is not permitted without the instructor's prior written consent.

Accommodations

Students with a documented disability/impairment who require reasonable accommodations should provide an Accommodation Letter from Student Support Services (Sloan Building, 1st Floor · 718-488-1044 · studentsupportservices@brooklyn.liu.edu · Mon–Fri 9am–5pm).

Technical issues

For issues with Brightspace, LIU email, Google Meet, or campus network access, contact IT: It@liu.edu · 718-488-3300 (Mon–Fri 9am–5pm).

← All courses