Skip to content

Course Organization


Lectures have two formats: whiteboard presentation and slides presentation.

Attending lectures is absolutely critical.

Slides and lecture notes will be made available after lectures, but they will be difficult to understand in isolation. Readings will cover some---but not all---of the course material.


Most lectures are paired with a reading. These are optional and classes will not exactly follow the readings, but you will get more out of the lectures if you skim the readings afterwards. Readings will be drawn from these books:

You are welcome to buy physical copies if you wish---they're good books!---but the online versions will suffice for this course.


  • Each homework will have two parts: a programming component and a written component.

  • There will be 5 homeworks in total, issued roughly every two weeks. Homeworks will generally be posted after lecture on Thursday, and are due roughly two weeks later before lecture. Keep an eye on the calendar!

  • Late homework will not be accepted---we will not have a late day policy. Instead, your lowest homework score will be dropped. Limited partial credit is possible for partial homework solutions.

  • Collaboration policy: you can discuss with other students about the homework, but you must write up and code up the solutions on your own! You also must mention the names of the students you discuss with.

Midterm and Final exam

  • The midterm exam will be held during a regular class on 10/17.

  • The final exam date will be the last regular class 12/10.

Grading Policy

Your grade will be based on these components:

  • Homeworks: 60%
  • Midterm Exam: 15%
  • Final Exam: 20%
  • Participation: 5%

Your lowest homework score will be dropped.

Important Disclaimer

This is my first time teaching CSCI 5525, and almost everything else will also be new. I will do my best to make the course run as smoothly as possible, but the road may get a bit bumpy at times---the pace may be too fast/slow, the schedule may need to be adjusted, etc. I am reserving one overflow slot at the end of each half, in case we end up taking more time on some topics.