Teaching Resources
Below is a series of educational resources related to computer science, music, and music technology. There are many additional resources linked in the Computer Music courses including slides and assignments related to introductory topics.
CS203: Computer Music
CS203 is a course I have designed at Wellesley College. The course is an introduction to Computer Music intended for students who have taken one year of programming, preferably in the Python language. It is taught using the SuperCollider platform and covers topics in synthesis, digital representation of audio, delay, filtering, reverb, and more advanced topics in Fourier techniques and network communication/protocols.
Course Website: http://cs.wellesley.edu/~cs203/
An Intuitive Guide to the Discrete Fourier Transform
There are a variety of different resources devoted to teaching students about Fourier techniques. Most of them are too technical and many students get lost in the sea of mathematical equations. Others talk only at a high level and eschew any mention of the math. While the latter resources are accessible, students do not gain meaningful insight into how the equations are working or the significance of their limitations.
This document attempts to bridge that gap by providing a guide focused on the intuition of the Discrete Fourier Transform.
Link to Document: https://github.com/andrewdavis33/DFT-Guide/blob/master/dftGuide.pdf
Link to Project Resources: https://github.com/andrewdavis33/DFT-Guide
CS Assignments Involving Music
Contained in the GitHub repository below are assignments and teaching materials for introductory CS courses. Most of these resources have an audio bent and are intended to teaching computer science through applications in music. All resources are freely available and provide student-facing starter code. Please contact me directly for instructor solutions.
Link to GitHub Repo: https://github.com/andrewdavis33/assignments
Courses Taught
Wellesley College:
Computer Music: http://cs.wellesley.edu/~cs203/
Foundations of Computer Systems: https://cs.wellesley.edu/~cs240/
Computer Programming and Problem Solving: http://cs111.wellesley.edu/
Stanford University (as TA):
Probability for Computer Scientists: https://web.stanford.edu/class/cs109/
Programming Methodology: https://web.stanford.edu/class/cs106a/
University of Pennsylvania (as TA):
Introduction to Theory and Musicianship: https://music.sas.upenn.edu/node/2520
Theory and Musicianship I: https://music.sas.upenn.edu/node/2525
Theory and Musicianship II: https://music.sas.upenn.edu/node/6544