Lecture: TH 9:30-10:45AM @ SENSQ 5129
Instructor: Nicholas Farnan (nlf4 [at] pitt.edu)
GitHub: nfarnan
Office: 6313 SENSQ
Office Hours:
T H 11AM-12PM; W 2-4:30PM
Recitations: F 11-11:50AM @ SENSQ 5129
F 9-9:50AM @ SENSQ 5129
TA: Matthew Barren (mpb43 [at] pitt.edu)
GitHub: mpb43TA
Office: 5106 SENSQ
Office Hours:
W 9-11AM, 11:45AM-12:45PM; H 11AM-2PM
8-29 Welcome to CS/COE 1501!
Class web site is up. Please look over the Course Information and Policies.
8-29 The midterm will be held in class on Thursday Oct 19th.
The second exam will be held in class on Thursday Dec 7th.
9-5 Writing assignment 1 has been posted
9-6 Register your GitHub username by 11:59PM on Friday, 9-8 to ensure that you are given access to the projects on time!
9-12 Project 0 has been posted
Project 1 has been posted
9-28 Project 2 has been posted
9-28 Writing assignment 2 has been posted
10-23 Project 3 has been posted
10-23 Writing assignment 3 has been posted
11-7 Project 4 has been posted
11-25 Project 5 has been posted
0 Introduction to the course
Goals of the course
Introduction to algorithm analysis
Google Announcement
Sedgewick Ch. 1.4, 2.1, 2.2, 2.3, 5.1
1 Review of search methods
Digital search trees
Radix search tries
De La Briandias tries
Sedgewick Ch. 3.1-3.2
Sedgewick Ch. 5.2
2 B-trees
B+tree visualization
3 Hashing slides
Sedgewick Ch. 3.4
4 Compression slides
Google brotli announcement
brotli repository
Sedgewick Ch. 5.5
5 String Pattern Matching
Sedgewick Ch. 5.3
6 Priority Queues
Sedgewick Ch. 2.4
7 Graphs
Graph traversals
Spanning Trees
Shortest Paths
Sedgewick Ch. 4.1-4.2
8 Weighted Graphs
Minimal Spanning Trees
Weighted Shortest Paths
Sedgewick Ch. 4.3-4.4
9 Union find slides
Sedgewick Ch. 1.5
10 Network Flow
Min Cut
Sedgewick Pages 886-902
11 Integer Multiplication slides
12 Exponentiation
13 Introduction to cryptography
RSA case study
Proof of correctness using Fermat's Little Theorem
14 P/NP slides
Relevant Definition
Sedgewick Pages 910-931
15 Greedy Algorithms
Dynamic Programming
Further dynamic programming examples
16 Additional Dynamic Programming Exercises slides
17 Point in Polygon slides

We will be using the git version control system via GitHub for the development and submission of programming projects this term. Please visit the above URL to register an account. You will need to have an account before the first assignment is released.

The recitation slides on using Git can be found here. The official documentation on how to use git can be found here: https://git-scm.com/documentation

Registering your GitHub username

You will need to access the registration site from Pitt’s network, using this link to register the GitHub username you wish to use for this class.

Use your Pitt username (i.e., your initials and a number, your Pitt email address without @pitt.edu) and your PeopleSoft ID (this 7-digit number can be found under "Demographic Information" on the Student Center) to register your GitHub username.

I will announce in class once the organization has been created. If, at that point, you have not recieved an email from GitHub inviting you to join the class organization, please visit:


To accept the invitation to the class and access your project repositories.

Project 0

Posted: 9-12 Due: 9-18 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

Project 1

Posted: 9-12 Due: 9-25 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

Project 2

Posted: 9-28 Due: 10-12 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

Project 3

Posted: 10-23 Due: 11-6 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

Project 4

Posted: 11-7 Due: 11-21 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

Project 5

Posted: 11-25 Due: 12-10 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

We will be using Peerceptiv for submission and grading of writing projects this term.

Refer to the class on Peerceptiv to view and submit each assignment.

Assignment 1

Posted: 9-5
Paper Due: 9-18 @ 11:59PM
Reviews Due: 9-25 @ 11:59PM
Refer to the individual Peerceptiv assignment for a description.

Assignment 2

Posted: 9-28
Paper Due: 10-12 @ 11:59PM
Reviews Due: 10-20 @ 11:59PM
Refer to the individual Peerceptiv assignment for a description.

Assignment 3

Posted: 10-23
Paper Due: 11-6 @ 11:59PM
Reviews Due: 11-13 @ 11:59PM
Refer to the individual Peerceptiv assignment for a description.

Assignment 4

Posted: 11-14
Paper Due: 12-3 @ 11:59PM
Reviews Due: 12-11 @ 11:59PM
Refer to the individual Peerceptiv assignment for a description.


Algorithms 4th Ed.
By Robert Sedgewick and Kevin Wayne

ISBN-13: 978-0-321-57351-3

Grading Breakdown

First Exam 20%
Second Exam 20%
Quizzes 4%
Programming Projects 32%
Writing Assignments 20%
Participation 4%

Tentative Syllabus

Course Policies


The instructor and TA will periodically post announcements to the course website. It is every student's responsibility to regularly monitor these announcements.

Academic Integrity

All assignment submissions must be the sole work of each individual student. Students may not read or copy another student's solutions or share their own solutions with other students. Posting a completed assignment to any public space during the course of the term will be considered sharing a solution with other students, and hence, cheating. The use of books and online resources is allowed, but must be credited in submissions, and material may not be copied verbatim. Students may not review solutions from students who have taken the course in previous years.

Cheating in this course will result in a grade of F for the course and may be subject to further disciplinary action. Submissions that are substantively similar will be considered cheating by all students involved.

Lecture Attendence

Students are encouraged to attend all lectures, which frequently include material that is not directly taken from the text. If a student misses a lecture, he/she is still responsible for the material covered and is advised to copy the notes from a classmate.

Respectful Discussion

This course may include open discussion or other interactions among students. To allow all participants to express their viewpoints, all discussion must remain civilized and respectful, and participants must avoid comments and behaviors that disparage others. A student who feels their viewpoints are not being respected is encouraged to contact the instructor, who will work to correct the situation without revealing the student's specific concerns to the rest of the class. A student in this situation who does not feel comfortable contacting the instructor directly is encouraged to contact the TA, who will uphold the same degree of confidence in relaying the issue to the instructor.

Audio/Video Recordings

To ensure the free and open discussion of ideas, students may not record lectures, discussion or other course activities without the advance written permission of the instructor. Any recording properly approved in advance can be used solely for the student's own personal use.

Copyrighted Materials

All course material is subject to copyright, including notes, slides, assignments, and solutions. Students are allowed to use the provided material only for personal use, and may not share the material with others, including posting the material on the Web or other file sharing venues.


We believe that students should be able to distinguish between helping one another understand the core concepts of the course material and cheating. We encourage students to discuss the content of the course in ways that will improve understanding without violating academic integrity, such as clarifying the objective of an assignment or discussing general solution tactics.

Late Assignments

All assignments specify a precise due date and time. Late assignments will not be accepted. Students must ensure they understand each assignment's submission procedure in advance of its deadline to ensure that submission difficulties do not cause an assignment to be rejected.

Grade Appeal

An assignment grade can be appealed up to two weeks after it has been returned. After this point, no appeals will be considered. When appealing a grade, attach a single-page cover sheet that provides a clear description of why you feel the assignment was graded unfairly; the entire assignment will be re-graded.

The goal of a grade appeal is to ensure a fair and consistent score. Thus, a score will not be adjusted on an issue of partial credit if the awarded points are consistent with the grading policy adopted for the problem for the class as a whole.

After grades have been posted at the end of the term, any further questions or concerns must be presented to the instructor in office hours at the beginning of the following term.

Make-up Exams

Students must be present for all exams. Make-up exams will be given only in the event of a documented emergency. The instructor must be informed of the emergency in advance of, or as soon as possible after, the missed exam. Missing an exam under any other circumstances will result in a score of 0 for the exam.

Grade Records

All graded materials that a student receives back should be saved in a safe place until after the term has ended and he/she has received and accepts his/her final grade. In this way, any grade discrepancies can be easily resolved.

Students with Disabilities

If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services, 140 William Pitt Union, 412-648-7890, drsrecep@pitt.edu, as early as possible in the term. Disability Resources and Services will verify your disability and recommend reasonable accommodations for this course.

Religious Observances

In order to accommodate the observance of religious holidays, students should inform the instructor (by email, within the first two weeks of the term) of any such days which conflict with scheduled class activities.

git http://git-scm.com/
CS Peer Tutoring http://cs.pitt.edu/undergrads/crc
Pitt Academic Calendar http://www.provost.pitt.edu/information-on/calendar.html
Pitt Student Counseling Center http://www.studentaffairs.pitt.edu/cchome
Pitt Disability Resources http://www.studentaffairs.pitt.edu/drswelcome