EECS 4171, Fall 2025

EECS 4171: Advanced Algorithms (Parallel and Concurrent Algorithms)
Fall 2025

Web page contents:

General Information
Announcements
Important Dates
Resources
Reading
Course Handouts

General Information

Instructor: Eric Ruppert
Office: Room 3052 of the Lassonde Building
Telephone: (416) 736-2100 ext. 33948
Email: eruppert (a) yorku.ca (Please use a York email account when sending me email, and start your subject line with "[4171]".)
Lectures: Mondays and Wednesdays 14:30-15:50 in room 107 of the Life Sciences Building.
Professor's Office Hours: Mondays 16:00-17:00 and Thursdays 14:30-15:30 in room 3052 of the Lassonde building. If you want to see me at another time, drop by or send me email to arrange an appointment.

Learning Outcomes

In this course, you are invited to further develop your abilities in designing and analyzing algorithms. This includes reasoning about algorithms and discussing them in a precise way. The particular focus of the course this year will be on parallel/concurrent algorithms. With the ubiquity of multicore machines and networked systems, it is increasingly important for computer scientists to unerstand concurrency. The adjectives concurrent, parallel and distributed are often used with overlapping meanings. In all cases, there are multiple processes running at the same time and communicating with one another in order to be able to perform their tasks. The communication may be through a shared memory or by messages passed between processes. The processes may be synchronous or asynchronous or even prone to failures. We will look at a variety of settings in this course. By the end of this course, you will be able to do the following things.

Academic Honesty

The key to academic honesty for this course is simply this: Solutions that you submit should be your own work.

Although you may discuss the general approach to solving an assignment problem with other people, you should not discuss the solution in detail. You must not take any written notes away from such a discussion. Also, you must list on the cover page of your solutions any people with whom you have discussed the problems. The solutions you hand in should be your own work. While writing them, you may use course materials and your own lecture notes but no other outside sources.

It is not acceptable to try to find the answer to a homework question on the web or using AI tools (such as LLM-based software), put it in your own words and submit it. You may learn a little by doing this, but you will learn much, much more by working on the problem yourself, and the purpose of this course is to help you learn how to design and analyze algorithms on your own. Furthermore, AI tools and the web will not be available during your exam (or during your job interviews), so you should learn to solve problems yourself, instead of relying on others to do your thinking for you.

As time runs out, students are sometimes tempted to get help from other students on assignments in a way that would violate the preceding policy on academic honesty. DO NOT DO THIS! If you do, I will refer the case to the Dean's Office, which is unpleasant for everyone. The assignments are worth very little, so it is not worth risking a sizable punishment. (Furthermore, I have noticed that the students who cheat on the homework assignments almost always fail the tests and exams, so even if I do not catch you cheating, you will likely fail the course if you do not do your own work on the homework assignments.)

It is important that you look at the senate policy on academic honesty and the faculty's academic integrity resources.

Marking Scheme

Homework exercises 15%
Test 1 15%
Test 2 15%
Test 3 15%
Participation 10%
Exam 30%

It's a very good idea to type your solutions to homework assignments, since it allows you to edit and polish the answers, but handwritten solutions are also acceptable, as long as they are legible. If you want to type your solutions, LaTeX produces elegantly typeset documents, is available for free, and was built to handle even the most complicated mathematical notation. It can take a while to learn how to use it, but once you do, you will probably not want to type documents any other way.

You should make every effort to make your answers as brief as possible, while still being thorough. Brevity requires careful thought and editing. Students who write copious amounts usually do not know what they want to say, or are saying it in a very disorganized way. Usually, an answer to a homework question should fit on one sheet of paper. If you are writing much more than that, you probably have not found the best way to solve it. On tests, your answer should usually fit into the space provided for it.

Announcements

Important Dates

First class Wedneday, September 3
Test 1 Monday, September 29
Reading week (no classes)October 13-17
Test 2Monday, October 27
Last date to drop course without receiving a gradeTuesday, November 4
Test 3Wednesday, November 26
Last class Monday, December 1
Last date to withdraw from course (receiving W on transcript)Tuesday, December 2
Exam period December 4-19

Resources

Textbook

Other References

Reading

This section will be filled in as the term progresses.
DateTopics Reading in course kit
Sep 3 Introduction, prefix sums pp.1-10
Sep 8 List ranking pp.30, 11-13
Sep 10 Euler tours, tree contraction pp.14-15, 65-69
Sep 15 tree contraction,

Course Handouts

Updated September 12, 2025