ECE 374
ECE 374 - Intro to Algs & Models of Comp
Fall 2025
| Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
|---|---|---|---|---|---|---|---|---|---|
| Intro to Algs & Models of Comp | CS374 | ADB | 70644 | DIS | 0 | 1000 - 1050 | W F | 1302 Everitt Laboratory | Jack Stubenvoll Katherine Braught |
| Intro to Algs & Models of Comp | CS374 | ADD | 72092 | DIS | 0 | 1200 - 1250 | W F | 1302 Everitt Laboratory | Krishna Agaram Yulie Arad |
| Intro to Algs & Models of Comp | CS374 | ADE | 72094 | DIS | 0 | 1300 - 1350 | W F | 1302 Everitt Laboratory | Yulie Arad Alex Jin |
| Intro to Algs & Models of Comp | CS374 | ADF | 66451 | DIS | 0 | 1400 - 1450 | W F | 1302 Everitt Laboratory | Alex Jin Ethan Luo |
| Intro to Algs & Models of Comp | CS374 | ADG | 72201 | DIS | 0 | 1500 - 1550 | W F | 1302 Everitt Laboratory | David Shu Cheung Shreya Sharma |
| Intro to Algs & Models of Comp | CS374 | AL1 | 66445 | LEC | 4 | 1100 - 1215 | T R | 0027/1025 Campus Instructional Facility | Jeff Erickson Emily Kyle Fox |
| Intro to Algs & Models of Comp | CS374 | BL1 | 70641 | LEC | 4 | 1530 - 1645 | T R | 0027/1025 Campus Instructional Facility | Nickvash Kani |
| Intro to Algs & Models of Comp | CS374 | BYA | 66446 | DIS | 0 | 0900 - 0950 | W F | 2017 Electrical & Computer Eng Bldg | Ben Kim |
| Intro to Algs & Models of Comp | CS374 | BYB | 66447 | DIS | 0 | 1000 - 1050 | W F | 4070 Electrical & Computer Eng Bldg | Suyuan Wang |
| Intro to Algs & Models of Comp | CS374 | BYC | 66448 | DIS | 0 | 1100 - 1150 | W F | 4070 Electrical & Computer Eng Bldg | Atharv Jain |
| Intro to Algs & Models of Comp | CS374 | BYD | 66449 | DIS | 0 | 1200 - 1250 | W F | 4070 Electrical & Computer Eng Bldg | Vishesh Vidya Prasad |
| Intro to Algs & Models of Comp | CS374 | BYE | 66450 | DIS | 0 | 1300 - 1350 | W F | 4070 Electrical & Computer Eng Bldg | Sumedh Vemuganti |
| Intro to Algs & Models of Comp | CS374 | BYF | 66452 | DIS | 0 | 1400 - 1450 | W F | 4070 Electrical & Computer Eng Bldg | Sung Woo Jeon |
| Intro to Algs & Models of Comp | CS374 | BYG | 66454 | DIS | 0 | 1500 - 1550 | W F | 4070 Electrical & Computer Eng Bldg | Neeraj Gangwar |
| Intro to Algs & Models of Comp | CS374 | BYH | 75925 | DIS | 0 | 1600 - 1650 | W F | 2015 Electrical & Computer Eng Bldg | Owen Xu |
| Intro to Algs & Models of Comp | CS374 | CSP | 72090 | PKG | 4 | - | Nickvash Kani Ivan Thomas Abraham | ||
| Intro to Algs & Models of Comp | CS374 | CSP | 72090 | PKG | 4 | 1400 - 1515 | F | Nickvash Kani Ivan Thomas Abraham | |
| Intro to Algs & Models of Comp | ECE374 | ADB | 70648 | DIS | 0 | 1000 - 1050 | W F | 1302 Everitt Laboratory | Jack Stubenvoll Katherine Braught |
| Intro to Algs & Models of Comp | ECE374 | ADD | 72093 | DIS | 0 | 1200 - 1250 | W F | 1302 Everitt Laboratory | Krishna Agaram Yulie Arad |
| Intro to Algs & Models of Comp | ECE374 | ADE | 72095 | DIS | 0 | 1300 - 1350 | W F | 1302 Everitt Laboratory | Yulie Arad Alex Jin |
| Intro to Algs & Models of Comp | ECE374 | ADF | 66548 | DIS | 0 | 1400 - 1450 | W F | 1302 Everitt Laboratory | Alex Jin Ethan Luo |
| Intro to Algs & Models of Comp | ECE374 | ADG | 72202 | DIS | 0 | 1500 - 1550 | W F | 1302 Everitt Laboratory | David Shu Cheung Shreya Sharma |
| Intro to Algs & Models of Comp | ECE374 | AL1 | 66542 | LEC | 4 | 1100 - 1215 | T R | 0027/1025 Campus Instructional Facility | Jeff Erickson Emily Kyle Fox |
| Intro to Algs & Models of Comp | ECE374 | BL1 | 70642 | LEC | 4 | 1530 - 1645 | T R | 0027/1025 Campus Instructional Facility | Nickvash Kani |
| Intro to Algs & Models of Comp | ECE374 | BLZ | 72199 | LEC | 4 | 1530 - 1645 | T R | 0027/1025 Campus Instructional Facility | Nickvash Kani |
| Intro to Algs & Models of Comp | ECE374 | BYA | 66543 | DIS | 0 | 0900 - 0950 | W F | 2017 Electrical & Computer Eng Bldg | Ben Kim |
| Intro to Algs & Models of Comp | ECE374 | BYB | 66544 | DIS | 0 | 1000 - 1050 | W F | 4070 Electrical & Computer Eng Bldg | Suyuan Wang |
| Intro to Algs & Models of Comp | ECE374 | BYC | 66545 | DIS | 0 | 1100 - 1150 | W F | 4070 Electrical & Computer Eng Bldg | Atharv Jain |
| Intro to Algs & Models of Comp | ECE374 | BYD | 66546 | DIS | 0 | 1200 - 1250 | W F | 4070 Electrical & Computer Eng Bldg | Vishesh Vidya Prasad |
| Intro to Algs & Models of Comp | ECE374 | BYE | 66547 | DIS | 0 | 1300 - 1350 | W F | 4070 Electrical & Computer Eng Bldg | Sumedh Vemuganti |
| Intro to Algs & Models of Comp | ECE374 | BYF | 66549 | DIS | 0 | 1400 - 1450 | W F | 4070 Electrical & Computer Eng Bldg | Sung Woo Jeon |
| Intro to Algs & Models of Comp | ECE374 | BYG | 66552 | DIS | 0 | 1500 - 1550 | W F | 4070 Electrical & Computer Eng Bldg | Neeraj Gangwar |
| Intro to Algs & Models of Comp | ECE374 | BYH | 75926 | DIS | 0 | 1600 - 1650 | W F | 2015 Electrical & Computer Eng Bldg | Owen Xu |
| Intro to Algs & Models of Comp | ECE374 | CSP | 72091 | PKG | 4 | 1400 - 1515 | F | Nickvash Kani Ivan Thomas Abraham | |
| Intro to Algs & Models of Comp | ECE374 | CSP | 72091 | PKG | 4 | - | Nickvash Kani Ivan Thomas Abraham |
See full schedule from Course Explorer
Official Description
Course Director
Website
Changes depending on instructor.
Goals
CS/ECE 374 covers fundamental tools and techniques from theoretical computer science, including design and analysis of algorithms, formal languages and automata, computability, and complexity.
Topics
Specific topics include regular and context-free languages, finite-state automata, recursive algorithms (including divide and conquer, backtracking, dynamic programming, and greedy algorithms), fundamental graph algorithms (including depth- and breadth-first search, topological sorting, minimum spanning trees, and shortest paths), undecidability, and NP-completeness. The course also has a strong focus on clear technical communication.
Detailed Description and Outline
A detailed outline can be found here: https://ecealgo.com/lectures.html
Computer Usage
N/A
Reports
N/A
Lab Projects
N/A
Lab Equipment
N/A
Lab Software
N/A
Topical Prerequisites
CS 173 (discrete mathematics, especially induction) and CS 225 (basic algorithms and data structures)
Texts
No required textbooks.
Required, Elective, or Selected Elective
Required
Course Goals
This course aims to leave students with a understanding of the three major computer science topics covered in this course:
- computational complexity - we want students to understand the four main complexity categories of languages (regular/context-free/context-sensitive/recursively-enumerable) and understand the automata theory associated with each of the language complexity classes.
- basic algorithmic techniques - we want students to understand basics of recursive/dynamic-programming and graphing algorithms.
- reductions - students should be able to use simple reductions to prove if a problem is (un)decidable and/or in P/NP/NP-hard.
Different from courses which either cover algorithms or computational complexity separately, this course focuses on building the theoretical underpinnings of computation by discussing automata theory, then discussing how to make computation more efficient by discussing basic algorithms and finally ending on how to use reductions to argue the difficulty of problems in relation to known historical problems.
Instructional Objectives
After completing the course, students should:
- Understand how to formalize computation problems as languages (1,3)
- Be able to describe regular langauges. Specifically they need to understand what makes a language regular (Kleene's theorem) and construct a corresponding regular expression that describes that language and explain why this regular expression is correct (1,3,6,7)
- Formulate simple automata and describe regular languages as deterministic finite automata. This is especially try in language transformations where students will need to describe a process that changes any arbitrary regular language to a newly defined regular language. (1,6,7)
- Need to have a conceptual understanding of non-determinism and how it relates to computational complexity and automata theory. Students need to understand that in some cases, non-determinism makes a machine better able to understand a larger variety of problems while in other cases it does not.(1,6,7)
- Need to be able to formulate and describe standard recursive algorithms. This course emphasizes binary search types problems but the principles are applicable to a number of well-known recursive problems (e.g Towers of Hanoi) in homework. (1,2,3,6)
- Need to be able to formulate and describe divide and conquer type problems. This course places a unique emphasis on the deterministic time selection problem. (2,3,6)
- Formulate and describe dynamic programming problems. In particular we emphasize constructing the recurrence, describing the computation direction before finally do a running time analysis. The emphasis on describing dynamic programming according to recurrences is unique to this course. (1,2,3,6,7)
- Use graphing algorithms to solve problems. In particular, we discuss how to construct problems as graphs that can be solved using known graphing algorithms. (2,3,6)
- Understand how to combine algorithmic principles through our discussion of Bellman-Ford and Floyd-Warshall algorithms (which combine dynamic programming and graphing problems) (2,3,6,7)
- Understanding the difference between depth-first and breadth-first search, when one is more preferable than the other, how to formulate and switch between the two, and how to apply each to various problems. (2,6)
- How to use reductions to describe the algorithmic complexity of various problems. In particular, we emphasize gadget-type reductions and reductions to/from SAT. (1,2,7)
- How to use reductions to determine if a problem is decidable. This section to more to familiarize students with reduction proofs. (1,2,7)