Atri's CSE331


This course borrows, with permission, much of its material from the Fall offering of CSE331 taught by Dr. Atri Rudra. Please explore his course website for a wealth of resources that will help you study throughout the semester including recorded lectures, support pages, lecture notes, and more.


Your final grade will be determined by your homework and exam grades with the following weighting:

Homework 60%
Exams 40%

To earn an A in this course, your final course average must be above 90%. All other letter grades, including A-, will be determined by a curve. Since this class is smaller than most, this curve will take into account the performance of students in previous semesters on similar assignments.


There are 4 homework assignments in this course each with equal weighting (ie. 15% of your final grade is determined by each homework). These assignments will consist of a combination of designing algorithms, implementing your algorithms as programs (coding), proving the correctness of your algorithms, and analyzing the asymptotic runtime of your algorithms.


There will be a midterm and final exam in this course with the following weightings on your course average:

Midterm Exam 15%
Final Exam 25%

However, if it is to your benefit these weightings will be adjusted to the following on an individual basis:

Midterm Exam 5%
Final Exam 35%

This means that if you don't do well on the midterm you can still earn a high grade in the course if you show that you have learned the material before the final exam.

Contact Information

Instructor: Dr. Jesse Hartloff
Office: Davis 344
Office Hours: Wednesday 1:00 PM - 3:00 PM


There is no required textbook for this course. However, the material will closely follow this course textbook and it is strongly encouraged that you get a copy of the book if you want to do well in this course.

Course textbook: 

Academic Integrity

CSE Department Academic Integrity Policy:

UB Academic Integrity Policy:

All submitted work must be of your own creation and you must not share your submission with anyone else. If any submission is very similar to code that has been submitted by another student or can be found online, it is in violation of this courses academic integrity policy and all students will be penalized whether they were copying or sharing their code with other students so they can copy. If two submissions are similar beyond what is likely if the students worked independently, then both students are in violation of the academic integrity policy.

All violations will result in: 

An F in CSE331.

It is your responsibility to understand what constitutes an academic integrity violation. If you have any question whether something you are doing is a violation or not, ask for clarification before receiving an F in the course. I will not entertain excuses after you have been caught.

Examples of acceptable behavior:

  • Discussing an assignment with your classmates and brainstorming abstract solutions, then writing algorithms, code, and proofs independently
  • Searching the Internet for supplementary material on the course topics
  • Asking the teaching staff for clarification on a homework question

Examples of unacceptable behavior:

  • Submitting an algorithm, code, or proof that you did not write.
  • Allowing another student to see your algorithm, code, or proof for an assignment.
  • Collaborating with another student to write an algorithm, code, or proof together for an assignment.
  • Allowing another student to access your work that will be submitted for course credit. (Examples: Do not host your code in a public repository or allow your roommate to access you laptop)
  • Copying a large amount material found on the Internet into your submission.
  • Attempting to access the grading code on AutoLab.

If you plan on cheating, plan on taking this course again.