Algorithms & Models of Computation (2024)

Important links

  • Lecture and lab schedule
  • Homeworks
  • Exams
  • Policies: HW policies, Academic integrity, Grading, Culture
  • Gradescope (entry code ERKJXG)
  • Piazza (for Q&A and all announcements, and for contacting course staff (via private notes))
  • These are the web pages for Section A of the course taught by Timothy Chan and Ruta Mehta. (Section B is independently taught by Nickvash Kani and has a separate web site.)

Course staff

InstructorsTeaching AssistantsCourse AssistantsPrairieLearn Developers
Timothy Chan (tmc)
Ruta Mehta (rutameht)
Stav Ashur (stava2)
Daniel Christl (christl3)
Qizheng He (qizheng6)
James Hulett (jhulett2)
Rhea Jain (rheaj3)
Rucha Kulkarni (ruchark2)
Vasileios Livanos (livanos3)
Eliot Robson (erobson2) (head TA)
David Zheng (dwzheng2)
Adit Agarwal (adita3)
Jonathan Chang (yuhengc2)
Anakin Dey (anakind2)
Aniket Gargya (agargya2)
Xinyi He (xinyihe4)
Daniel Huang (dthuang3)
Michael Jiang (minhaoj2)
Jeremy Livshots (jel7)
Laney Moy (elenam3)
Tomoko Sakurayama (tomokos2)
Kary Wang (jiahuiw4)
Noah Watson (nwatson3)
Ananya Yammanuru (ananyay2)
Angela Zhao (alz3)
Lou Zeh (zeh3)
Eliot Robson
Eric Jin
Sam Ruggerio
Jason Xia
Andrew Yin

Meeting time/place/zoom links

There are two lectures per week, and two lab/discussion sessions per week. The first week of lectures and labs was entirely online via zoom. Afterwards (from Jan 25 onward), we will have lectures given in-person in ECE Building 1002 and live-streamed on zoom (see below for the zoom link). For the labs, two sections will be online (see below for the zoom links) and the rest are in-person in Siebel 1105.

Lectures will be recorded and made available on the "CS/ECE 374 A Spring 2022" channel in mediaspace to registered students. Some of the lab recordings can be found on the "CS/ECE 374 A Labs Spring 2022" channel in mediaspace.

AL1 LectureTR 11:00am-12:15pmECE 1002Ruta Mehtazoom link
AYA DiscussionWF 9:00am-9:50amonlineStav Ashurzoom link
AYB DiscussionWF 10:00am-10:50amSC 1105Rhea Jain
AYD DiscussionWF 11:00am-11:50amSC 1105Vasilis Livanos / Rucha Kulkarnizoom link
AYE DiscussionWF 12:00pm-12:50pmSC 1105David Zheng
AYF DiscussionWF 1:00pm-1:50pmSC 1105James Hulett
AYC DiscussionWF 2:00pm-2:50pmSC 1105James Hulett
AYG DiscussionWF 3:00pm-3:50pmSC 1105Eliot Robson
AYH DiscussionWF 4:00pm-4:50pmonlineQizheng Hezoom link
AYJ DiscussionWF 5:00pm-5:50pmSC 1105Daniel Christl

Office hours

Office hours will be held entirely online, using zoom (this is the zoom link for all office hours), Discord (invite link), and Queue@illinois.edu.

MondayTuesdayWednesdayThursdayFriday
Stav: 1:00-2:00
Daniel: 4:00-5:00
Eliot: 3:00-4:00
Qizheng: 4:00-5:00
James: 10:00-11:00
Rhea: 11:00-12:00
Ruta: 2:30-3:30
Timothy: 3:30-4:30
Ruta: 1:00-2:00 (**)David: 2:00-3:00

New (**): starting after spring break, Ruta will hold "conceptual" office hours on Thursdays 1:00-2:00 (these are for questions about lectures and/or notes and other references, but not about HWs).

Note: We will have the following office hours before the final exam: Ruta on Tue (5/10) at 10-11am and Wed (5/11) at 2:20-3:30pm; and Timothy on Wed (5/11) at 3:30-4:30pm.

Homeworks

All guided problem sets ("GPS") on PrairieLearn are due Tuesdays at 10:00am. All written homeworks are due Thursdays at 10:00am. We will post each week's homework about one week before the due date; we will post solutions here within a couple of days after the due date. Please read the homework policies and academic integrity page!

  • GPS1 (due Jan 25), HW1 [.tex] (due Jan 27) [solutions]
  • GPS2 (due Feb 1), HW2 [.tex] (due Feb 3) [solutions]
  • GPS3 (due Feb 8), HW3 [.tex] (footnote added 2/7) (due Feb 10) [solutions]
  • GPS4 (due Feb 15), HW4 [.tex] (due Feb 17) [solutions]
  • GPS5 (due Mar 1), HW5 [.tex] (footnote added 2/24) (due Mar 3) [solutions]
  • GPS6 (due Mar 8), HW6 [.tex] (footnote added 3/6) (due Mar 10) [solutions]
  • GPS7 (due Mar 22), HW7 [.tex] (footnotes added 3/21) (due Mar 24) [solutions]
  • GPS8 (due Mar 29), HW8 [.tex] (due Mar 31) [solutions]
  • GPS9 (due Apr 5), HW9 [.tex] (due Apr 7) [solutions]
  • HW10 [.tex] (due Apr 21) (note: this HW has 3 problems, since there is no GPS this week; footnotes added on 4/19) [solutions]
  • GPS10 (due Apr 26 May 3), HW11 [.tex] (due Apr 28) [solutions]

Here are some selected past HW problems with solutions that you may find useful (both as extra practice problems, and as examples on how to write solutions):

  • Past HW1, Past HW2, Past HW3, Past HW4, Past HW5, Past HW6, Past HW7, Past HW8, Past HW9, Past HW10, Past HW11, Past HW12

Midterm 1

  • exam and solutions(conflict exam and solutions)
  • Date and time: Feb 21 Monday 7:00pm-9:30pm Central Time (exams will be held online with zoom proctoring)
  • Instructions: Please read Midterm 1 Logistics carefully for all the details (zoom links)
  • Dry run: as announced on piazza, remember to try out the "Dry Run" before Sunday 10pm, to make sure that you have your scanning app set up prior to the exam and are comfortable submitting to Gradescope.
  • Coverage of material: Lectures (and labs) from week 1-4; see midterm 1 skillset
  • Practice problems:
    • a (long) list of study problems (we don't distribute solutions, but will go over selected problems during the review sessions in class and the labs)
    • Past midterm 1 from Spring 2019, with solutions
    • Other past midterms from Fall 2021, Spring 2021 (with solutions), Fall 2019, Fall 2018, Fall 2017, etc. (we don't distribute official solutions to these)
  • Conflict midterm 1: Feb 22 Tuesday 7:00pm-9:30pm Central Time. Conflict exams will be offered only if you have a valid reason. To get permission, you must fill in this form to request for conflict midterm 1 no later than Feb 16 Wednesday.
  • DRES accommodations: if you have sent us your DRES accommodation letter at the beginning of the semester, you should already have been contacted by us about your exam arrangement. If not, please email Timothy (tmc) no later than Feb 16.

Midterm 2

  • exam and solutions (conflict exam and solutions)
  • Date and time: Apr 11 Monday 7:00pm-9:30pm Central Time (exams will be held online with zoom proctoring)
  • Instructions: Please read Midterm 2 Logistics carefully for all the details (they are similar to Midterm 1)[here are midterm 2's zoom links]
  • Coverage of material: Lectures (and labs) from week 6-10; see midterm 2 skillset (greedy will not be covered)
  • Practice problems:
    • a list of study problems (we don't distribute solutions, but will go over selected problems during the review sessions in class and the labs)
    • Past midterm 2 from Spring 2019, with solutions
    • Other past midterms from Fall 2021, Fall 2019, Fall 2017, etc. (we don't distribute official solutions to these)
  • Conflict midterm 2: Apr 12 Tuesday 7:00pm-9:30pm Central Time. Conflict exams will be offered only if you have a valid reason. To get permission, you must fill in this form to request for conflict midterm 2 no later than Apr 6 Wednesday (the form has been activated now).
  • DRES accommodations: if you have sent us your DRES accommodation letter at the beginning of the semester, you should already have been contacted by us about your exam arrangement. If not, please email Timothy (tmc) no later than Apr 6.

Final exam

  • exam and solutions (conflict exam and solutions)
  • Date and time: May 12 Thursday 8:00am-11:00am Central Time (exams will be held online with zoom proctoring)
  • Instructions: Please read Final Exam Logistics carefully for all the details (they are similar to the midterms, except that the length is 2 hrs and 30 mins, plus 30 mins for scanning/uploading; and two double-sided cheat sheets are allowed) [here are the final exam's zoom links]
  • Coverage of material: everything! (it's a cumulative exam); see final exam skillset for more details
  • Practice problems:
    • a list of practice problems (from Fall 2019)
    • Past final from Spring 2019, with solutions
    • Other past finals from Fall 2021, Fall 2019, Spring 2018, Fall 2016, etc. (we don't distribute official solutions to these)
  • Conflict final: Conflict final exams will be offered only for one of the official reasons stated in the student code (namely, (i) another final exam scheduled at the same time, (ii) three consecutive final exams in a 24-hour period, (iii) national or state professional examinations, (iv) illness or other extenuating circ*mstances, or (v) religious accommodations). To get permission, you must fill in this form by Apr 29 Friday. The date/time of the conflict exam will be decided after the forms are received.
  • DRES accommodations: if you have sent us your DRES accommodation letter at the beginning of the semester, you should have already been contacted by us about your exam arrangement. If not, please email Timothy (tmc).

About this course

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. 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.

Prerequisites: We assume that students have mastered the material taught in CS 173 (discrete mathematics, especially induction) and CS 225 (basic algorithms and data structures); see stuff you already know.

There is no required textbook, but Jeff Erickson's book is highly recommended. Notes/scribbles can be found in the lecture schedule page. Here are some other useful resources (also see here for more):

Website generously borrowed from those of previous semesters.

Algorithms & Models of Computation (2024)

FAQs

What is the model of computation in an algorithm? ›

In computer science, and more specifically in computability theory and computational complexity theory, a model of computation is a model which describes how an output of a mathematical function is computed given an input. A model describes how units of computations, memories, and communications are organized.

What is a computation algorithm? ›

A computational algorithm is a formal procedure describing an ordered sequence of operations to. be performed a finite number of times. Algorithms are like recipes with the basic building blocks. of addition, subtraction, multiplication, and division, as well as programming constructs like for, while, and if.

What are the characteristics of an algorithm? ›

The main characteristics of an algorithm are well-defined inputs, well-defined outputs, feasibility, finiteness, unambiguity, definitiveness, and language independence.

What is the introduction of algorithm? ›

Algorithms are step-by-step procedures designed to solve specific problems and perform tasks efficiently in the realm of computer science and mathematics. These powerful sets of instructions form the backbone of modern technology and govern everything from web searches to artificial intelligence.

What is an example of a computational algorithm? ›

Spell checking uses algorithms. Financial calculations use algorithms. A search engine uses algorithms. In fact, it is difficult to think of a task performed by your computer that does not use algorithms.

What are the three models of computation? ›

The finite- state, random-access, and Turing machine models are defined in Chapter 3 and circuits are presented that simulate computations performed by these machines.

What are the 4 types of algorithm? ›

Most important type of Algorithms
  • Brute Force Algorithm: This is the most basic and simplest type of algorithm. ...
  • Recursive Algorithm: This type of algorithm is based on recursion. ...
  • Randomized Algorithm: ...
  • Sorting Algorithm: ...
  • Searching Algorithm: ...
  • Hashing Algorithm:
Nov 2, 2023

What is an example of an algorithm? ›

Recipes are a great example of an algorithm in everyday life. They illustrate a replicable set of steps to accomplish a specific goal (such as baking blueberry muffins or cooking spaghetti sauce from scratch).

What is algorithm in simple words? ›

An algorithm is a procedure used for solving a problem or performing a computation. Algorithms act as an exact list of instructions that conduct specified actions step by step in either hardware- or software-based routines. Algorithms are widely used throughout all areas of IT.

How do algorithms work? ›

An algorithm is a coded formula written into software that, when triggered, prompts the tech to take relevant action to solve a problem. Computer algorithms work via input and output. When data is entered, the system analyses the information given and executes the correct commands to produce the desired result.

How to create an algorithm? ›

How to Create an Algorithm
  1. Identify the problem. Clearly define the problem you want to solve. ...
  2. Analyze the problem. ...
  3. Design the algorithm. ...
  4. Select appropriate tools and technologies. ...
  5. Implement the algorithm. ...
  6. Test the algorithm. ...
  7. Optimize the algorithm. ...
  8. Document the algorithm.

What is an algorithm in layman's terms? ›

What is an Algorithm? In layman's terms, algorithms are how websites (like social media platforms and search engines) decide what content to present you with. Whenever we use the term “algorithm” in this piece, we mean any set of instructions used to retrieve information that has been stored inside of a data structure.

What is the difference between a program and an algorithm? ›

Algorithms and computer programs are sometimes used interchangeably, but they refer to two distinct but interrelated concepts. An algorithm is a step-by-step instruction for solving a problem that is precise yet general. Computer programs are specific implementations of an algorithm in a specific programming language.

What is the basic model of computation in programming? ›

Before any machine is designed, a prototype or a model is constructed. This model gives an overview of what the machine will do, what will be the inputs and what will be the outputs. The inner working of the machine depends on the relation between inputs and outputs.

What is an example of a computational model? ›

Examples of common computational models are weather forecasting models, earth simulator models, flight simulator models, molecular protein folding models, Computational Engineering Models (CEM), and neural network models.

What is the basic model of computation in Python? ›

A model of computation is a model that describes how an output of a mathematical function is computed given an input. Describes how units of computations, memories, and communications are organized. Measured the computational complexity of an algorithm.

What are the basic computational models and analyzing algorithms? ›

Computational models simplify algorithm analysis by providing a common language and framework to describe and compare algorithms. By using computational models, you can focus on the logic and structure of the algorithm, rather than the specific implementation and environment.

References

Top Articles
Latest Posts
Article information

Author: Francesca Jacobs Ret

Last Updated:

Views: 6095

Rating: 4.8 / 5 (68 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Francesca Jacobs Ret

Birthday: 1996-12-09

Address: Apt. 141 1406 Mitch Summit, New Teganshire, UT 82655-0699

Phone: +2296092334654

Job: Technology Architect

Hobby: Snowboarding, Scouting, Foreign language learning, Dowsing, Baton twirling, Sculpting, Cabaret

Introduction: My name is Francesca Jacobs Ret, I am a innocent, super, beautiful, charming, lucky, gentle, clever person who loves writing and wants to share my knowledge and understanding with you.