[Teaching home]

ELL781: Software Fundamentals for Computer Technology

If you're doing the course, please join the Piazza forum (the access code will be announced in class and e-mailed to you).

Instructor: Sumeet Agarwal
3 credits (3-0-0)
Pre-requisites: Course not open to UG students
I Semester 2023–24
Tu F 17:00–18:20, LH 519

Evaluation components

References

  1. Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman. Data Structures and Algorithms (AHU). Addison-Wesley, 1983.
  2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms (CLRS). MIT Press, 3rd Edition, 2009.

Planned outline

Class(es) Topics References
1–6 Introduction: From Problems to Programs AHU Chapter 1
7–10 Elementary data structures: Lists, Stacks, Queues AHU Chapter 2
11–15 Asymptotic analysis of program complexity AHU Chapters 1, 9; CLRS Chapters 3, 4
16–17 Algorithm Design: Divide and Conquer AHU Chapter 10
18–19 Sorting algorithms AHU Chapter 8
20–21 Tree data structures; Binary Search Trees AHU Chapters 3, 5
22 Algorithm Design: Greedy algorithms AHU Chapter 10
23–26 Undirected graphs: Minimum spanning trees (Prim and Kruskal algorithms) AHU Chapter 7
27 Algorithm Design: Dynamic Programming AHU Chapter 10
28–32 Directed graphs: Shortest paths (Dijkstra and Floyd-Warshall algorithms) AHU Chapter 6
33–37 Network flows: Flow networks, Maximum flow, Ford-Fulkerson algorithm, Edmonds-Karp algorithm CLRS Chapter 26
38–42 NP-completeness CLRS Chapter 34

[Teaching home]