ECE 374

ECE 374 - Intro to Algs & Models of Comp

Spring 2022

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
Intro to Algs & Models of CompCS374AL165088LEC41100 - 1215 T R  1002 Electrical & Computer Eng Bldg Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompCS374AYA65089DIS00900 - 0950 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompCS374AYB65090DIS01000 - 1050 W F  1105 Siebel Center for Comp Sci Ruta Mehta
Timothy Moon-Yew Chan
Intro to Algs & Models of CompCS374AYC65091DIS01400 - 1450 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompCS374AYD65092DIS01100 - 1150 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompCS374AYE65093DIS01200 - 1250 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompCS374AYF65094DIS01300 - 1350 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompCS374AYG65095DIS01500 - 1550 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompCS374AYH65096DIS01600 - 1650 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompCS374AYJ65097DIS01700 - 1750 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompCS374BL167005LEC41530 - 1645 T R  1320 Digital Computer Laboratory Nickvash Kani
Intro to Algs & Models of CompCS374BYA67949DIS00900 - 0950 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompCS374BYB67951DIS01100 - 1150 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompCS374BYC67953DIS01200 - 1250 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompCS374BYD67955DIS01500 - 1550 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompCS374BYE67957DIS01300 - 1350 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompCS374BYF67959DIS01400 - 1450 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompECE374AL165099LEC41100 - 1215 T R  1002 Electrical & Computer Eng Bldg Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompECE374AYA65100DIS00900 - 0950 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompECE374AYB65101DIS01000 - 1050 W F  1105 Siebel Center for Comp Sci Ruta Mehta
Timothy Moon-Yew Chan
Intro to Algs & Models of CompECE374AYC65102DIS01400 - 1450 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompECE374AYD65103DIS01100 - 1150 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompECE374AYE65104DIS01200 - 1250 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompECE374AYF65105DIS01300 - 1350 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompECE374AYG65106DIS01500 - 1550 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompECE374AYH65107DIS01600 - 1650 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompECE374AYJ65108DIS01700 - 1750 W F  1105 Siebel Center for Comp Sci Timothy Moon-Yew Chan
Ruta Mehta
Intro to Algs & Models of CompECE374BL167006LEC41530 - 1645 T R  1320 Digital Computer Laboratory Nickvash Kani
Intro to Algs & Models of CompECE374BYA67950DIS00900 - 0950 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompECE374BYB67952DIS01100 - 1150 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompECE374BYC67954DIS01200 - 1250 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompECE374BYD67956DIS01500 - 1550 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompECE374BYE67958DIS01300 - 1350 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompECE374BYF67960DIS01400 - 1450 W F  3038 Campus Instructional Facility Nickvash Kani
Intro to Algs & Models of CompECE374ZJU67964LEC41530 - 1645 T R    Nickvash Kani

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