CS 374

CS 374 - Intro to Algs & Models of Comp

Summer 2024

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
Intro to Algs & Models of CompCS374AL142186PKG41000 - 1120 MTWR  2015 Electrical & Computer Eng Bldg Nickvash Kani
Abhishek K. Umrawal
Intro to Algs & Models of CompCS374AL142186PKG41230 - 1330 F  2015 Electrical & Computer Eng Bldg Nickvash Kani
Abhishek K. Umrawal
Intro to Algs & Models of CompCS374OL142237PKG41230 - 1330 F    Nickvash Kani
Abhishek K. Umrawal
Intro to Algs & Models of CompCS374OL142237PKG41000 - 1120 MTWR    Nickvash Kani
Abhishek K. Umrawal
Intro to Algs & Models of CompECE374AL142187PKG41000 - 1120 MTWR  2015 Electrical & Computer Eng Bldg Nickvash Kani
Abhishek K. Umrawal
Intro to Algs & Models of CompECE374AL142187PKG41230 - 1330 F  2015 Electrical & Computer Eng Bldg Nickvash Kani
Abhishek K. Umrawal
Intro to Algs & Models of CompECE374OL142238PKG41000 - 1120 MTWR    Nickvash Kani
Abhishek K. Umrawal
Intro to Algs & Models of CompECE374OL142238PKG41230 - 1330 F    Nickvash Kani
Abhishek K. Umrawal

Official Description

Analysis of algorithms, major paradigms of algorithm design including recursive algorithms, divide-and-conquer algorithms, dynamic programming, greedy algorithms, and graph algorithms. Formal models of computation including finite automata and Turing machines. Limitations of computation arising from fundamental notions of algorithm and from complexity-theoretic constraints. Reductions, undecidability and NP-completeness. Course Information: Same as ECE 374. Prerequisite: One of CS 173, MATH 213; CS 225.

Learning Goals

Be able to design regular expressions, finite automata or conftext free languages from a given language specification . (1), (3), (6)
Be able to prove that a given language is not regular (3)(6)
Be able to analyze the asymptotic running time of an algorithm via sums and recurrences (3)(6)
Model an algorithmic problems via graphs and apply appropriate graph algorithm to yield a solution (1)(3)(6)
Given problem specification, design efficient algorithms via techniques such as recursion, divide and conquer, dynamic programming and greedy (1)(3)(6)
Be able to prove the correctness of an algorithm by induction or via reductions (3)(6)
Prove NP-hardness via polynomial-time reductions from known NP-hard problems (3)(6)
Prove a language undecidable via reduction from known undecidable problems such as Halting. (3)(6)

Topic List

LANGUAGES and AUTOMATA

  • Strings and languages
  • Finite automata (DFA, NFA) and regular expressions
  • Context free grammars and languages

ALGORITHMS

  • Recursion, Divide and conquer, Backtracking
  • Dynamic programming
  • Greedy
  • Basic graph algorithms: reachability, BFS, DFS, shortest paths, MST, modeling via graphs

NP Completness

  • Polynomial-time reductions, P, NP, NP-Complete, NP-Hard

Turing Machines (TMs)

  • Universal TM, RAM, decidability, undecidability, Church-Turing thesis

Required, Elective, or Selected Elective

Required

Last updated

3/26/2019by Elsa Gunter