ECE 374

ECE 374 - Intro to Algs & Models of Comp

Fall 2025

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
Intro to Algs & Models of CompCS374ADB70644DIS01000 - 1050 W F  1302 Everitt Laboratory Jack Stubenvoll
Katherine Braught
Intro to Algs & Models of CompCS374ADD72092DIS01200 - 1250 W F  1302 Everitt Laboratory Krishna Agaram
Yulie Arad
Intro to Algs & Models of CompCS374ADE72094DIS01300 - 1350 W F  1302 Everitt Laboratory Yulie Arad
Alex Jin
Intro to Algs & Models of CompCS374ADF66451DIS01400 - 1450 W F  1302 Everitt Laboratory Alex Jin
Ethan Luo
Intro to Algs & Models of CompCS374ADG72201DIS01500 - 1550 W F  1302 Everitt Laboratory David Shu Cheung
Shreya Sharma
Intro to Algs & Models of CompCS374AL166445LEC41100 - 1215 T R  0027/1025 Campus Instructional Facility Jeff Erickson
Emily Kyle Fox
Intro to Algs & Models of CompCS374BL170641LEC41530 - 1645 T R  0027/1025 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompCS374BYA66446DIS00900 - 0950 W F  2017 Electrical & Computer Eng Bldg Ben Kim
Intro to Algs & Models of CompCS374BYB66447DIS01000 - 1050 W F  4070 Electrical & Computer Eng Bldg Suyuan Wang
Intro to Algs & Models of CompCS374BYC66448DIS01100 - 1150 W F  4070 Electrical & Computer Eng Bldg Atharv Jain
Intro to Algs & Models of CompCS374BYD66449DIS01200 - 1250 W F  4070 Electrical & Computer Eng Bldg Vishesh Vidya Prasad
Intro to Algs & Models of CompCS374BYE66450DIS01300 - 1350 W F  4070 Electrical & Computer Eng Bldg Sumedh Vemuganti
Intro to Algs & Models of CompCS374BYF66452DIS01400 - 1450 W F  4070 Electrical & Computer Eng Bldg Sung Woo Jeon
Intro to Algs & Models of CompCS374BYG66454DIS01500 - 1550 W F  4070 Electrical & Computer Eng Bldg Neeraj Gangwar
Intro to Algs & Models of CompCS374BYH75925DIS01600 - 1650 W F  2015 Electrical & Computer Eng Bldg Owen Xu
Intro to Algs & Models of CompCS374CSP72090PKG4 -    Nickvash Kani
Ivan Thomas Abraham
Intro to Algs & Models of CompCS374CSP72090PKG41400 - 1515 F    Nickvash Kani
Ivan Thomas Abraham
Intro to Algs & Models of CompECE374ADB70648DIS01000 - 1050 W F  1302 Everitt Laboratory Jack Stubenvoll
Katherine Braught
Intro to Algs & Models of CompECE374ADD72093DIS01200 - 1250 W F  1302 Everitt Laboratory Krishna Agaram
Yulie Arad
Intro to Algs & Models of CompECE374ADE72095DIS01300 - 1350 W F  1302 Everitt Laboratory Yulie Arad
Alex Jin
Intro to Algs & Models of CompECE374ADF66548DIS01400 - 1450 W F  1302 Everitt Laboratory Alex Jin
Ethan Luo
Intro to Algs & Models of CompECE374ADG72202DIS01500 - 1550 W F  1302 Everitt Laboratory David Shu Cheung
Shreya Sharma
Intro to Algs & Models of CompECE374AL166542LEC41100 - 1215 T R  0027/1025 Campus Instructional Facility Jeff Erickson
Emily Kyle Fox
Intro to Algs & Models of CompECE374BL170642LEC41530 - 1645 T R  0027/1025 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompECE374BLZ72199LEC41530 - 1645 T R  0027/1025 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompECE374BYA66543DIS00900 - 0950 W F  2017 Electrical & Computer Eng Bldg Ben Kim
Intro to Algs & Models of CompECE374BYB66544DIS01000 - 1050 W F  4070 Electrical & Computer Eng Bldg Suyuan Wang
Intro to Algs & Models of CompECE374BYC66545DIS01100 - 1150 W F  4070 Electrical & Computer Eng Bldg Atharv Jain
Intro to Algs & Models of CompECE374BYD66546DIS01200 - 1250 W F  4070 Electrical & Computer Eng Bldg Vishesh Vidya Prasad
Intro to Algs & Models of CompECE374BYE66547DIS01300 - 1350 W F  4070 Electrical & Computer Eng Bldg Sumedh Vemuganti
Intro to Algs & Models of CompECE374BYF66549DIS01400 - 1450 W F  4070 Electrical & Computer Eng Bldg Sung Woo Jeon
Intro to Algs & Models of CompECE374BYG66552DIS01500 - 1550 W F  4070 Electrical & Computer Eng Bldg Neeraj Gangwar
Intro to Algs & Models of CompECE374BYH75926DIS01600 - 1650 W F  2015 Electrical & Computer Eng Bldg Owen Xu
Intro to Algs & Models of CompECE374CSP72091PKG41400 - 1515 F    Nickvash Kani
Ivan Thomas Abraham
Intro to Algs & Models of CompECE374CSP72091PKG4 -    Nickvash Kani
Ivan Thomas Abraham

Official Description

Course Information: Same as CS 374. See CS 374.

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:

  1. 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.
  2. basic algorithmic techniques - we want students to understand basics of recursive/dynamic-programming and graphing algorithms.
  3. 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)

Last updated

7/7/2025by Nickvash Kani