CS 1501


PRE-REQ: CS 441CS 445
Course DescriptionThe course covers a broad range of the most commonly used algorithms: some examples include algorithms for sorting, searching, encryption, compression, and local search. The students will implement and test several algorithms. The course is programming intensive.
View this course on Pitt's Website


Term Fall 2020Professor William C. Garrison III Difficulty 4/5Quality 5/5

Dr.Garrison was an excellent professor. 1501 is by no means an easy course, you have to be practicing a lot of the algorithms on your own. Dr.Garrison will provide the base for the algorithms in class, but it is your duty as a student to practice and learn the algorithms on your own. The assignments are fairly difficult, but if you start early, they are pretty manageable.

Term Spring 2020Professor William Garrison Difficulty 4/5Quality 4/5

It was a pretty difficult class but Garrison is a good professor which helped me learn a lot and even enjoy the class

Term Summer 2020Professor John Ramirez Difficulty 4/5Quality 5/5

1501 is a monster class regardless of whom the instructor is, but Ramirez does a great job. I'd definitely recommend him or Khattab (who uses Ramirez's slides) over Farnan or Garrison (who uses Farnan's slides).

Term Summer 2019Professor John Ramirez Difficulty 3/5Quality 5/5

Ramirez is a great choice for 1501. He's a great teacher which makes the material easier to understand. I highly recommend you start the projects as early as possible because they are a huge part of the coursework. The tests are pretty tough as well, just study the powerpoint slides and you will be more than fine.

Term Fall 2019Professor Nicholas Farnan Difficulty 3/5Quality 4/5

Farnan did a very good job making 1501 enjoyable. The topics are very difficult, but Farnan has a very good teaching style and he does a good job breaking down complex topics. The projects and tests are difficult, but it's a difficult class and it's gonna be hard regardless of what professor you take it with.

Term Spring 2019Professor Sherif Khattab Difficulty 3/5Quality 4/5

I hit the ground running in this class, did well on projects (A average), mediocre on exams, and was pretty happy with the grade I received. Here are some things that helped me: Before this class, my advice would be to go through the Khan Academy Algorithms course, brush up on Java if needed, and look at some of the big pictures ideas in algorithms to get yourself excited about the material. This is basically Data Structures Part II so review the material from 445 if it's not fresh in your memory. During the class, start projects ASAP, review a little bit each weekend, and don't be afraid to ask "stupid" questions during lecture. A lot of the ideas will not click until after class, so don't be discouraged. 1501 will be a tough class but is relevant to interesting real world problems. I found Khattab to be a great lecturer, reasonable about project deadlines, and it feels like he is always striving to improve at his craft.

Term Spring 2019Professor Nicholas Farnan Difficulty 4/5Quality 3/5

I liked this class. Farnan's a good teacher (don't like him much as a person though.) Projects and tests are pretty hard, but you learn a lot. I would go into this class with the mindset that its going to be pretty damn hard. CS1501 was the only class in college I got a C in, but to be fair I slacked off a lot

Term Fall 2018Professor Nick Farnan Difficulty 4/5Quality 5/5

I took the writing version with Farnan. Farnan intentionally makes this a hard class. He is very anti-partial credit. That being said, if you study, work hard on the projects, and make an honest effort, you can pull a good grade. The writings with Farnan were dumb and felt like busy work. But, if you need the CS W credit, it is a good way to get it in my opinion

Term Fall 2018Professor Nicholas Farnan Difficulty 5/5Quality 2/5

This is supposed to be one of the toughest courses for Pitt CS. You will be pushed through Java programming to implement and memorize a multitude of algorithms. These algorithms will need to be properly implemented, or they will not run quick enough for a proper score.

Term Fall 2018Professor John Aronis Difficulty 2/5Quality 5/5

John's course taught a slightly different set of algorithms compared to Nick/Bill's classes. His background was in formal logic, and his teaching is influenced by his background (that is, his lectures lean theoretical). He frequently granted extensions on homework assignments to the entire class. Teaching is not his primary job; he works as a full-time research scientist in Bioinformatics. If you're interested in this field, he might be a good person to know.

Add your review by filling out this form!