CSC 344, Winter 2014
1 Prerequisites
2 Names, Times, Locations
2.1 Instructor
2.2 Lecture & Lab
2.3 Google Calendar
2.4 Web Page
3 Computing Environment
4 Style Guide
5 Readings
6 Communication
7 Labs
8 Assignments
9 Honesty
10 Exams and Quizzes
11 Final Performance
12 Grades
13 Schedule/  Homeworks

CSC 344, Winter 2014

Schedule/Homeworks

This is a class about Music Programming. That covers a lot of ground, and I’m not sure I yet know what the focus of the class is going to be.

In fact, here’s the number one thing to keep in mind: we’re making it up as we go. That means that what you get out of the class depends on what you bring to it, and also that you’re going to have to be flexible and work hard.

Here’s the framework that I have thus far:
  • softsynths

  • filters

  • algorithmic composition

We can refine that as the class goes on. Can’t wait!

1 Prerequisites

Students taking this course must have a passion for music, a desire to understand new things, and a knack for figuring things out on their own.

You should have a reasonable background in basic calculus and trigonometry.

You’ll also need to be able to write and debug C and/or C++ programs.

2 Names, Times, Locations

2.1 Instructor

2.2 Lecture & Lab

Section 01/02:

2.3 Google Calendar

See my Contact Info page for my calendar. You can add it to your calendar, if that makes your life easier.

2.4 Web Page

This is the course web page, its link is http://www.brinckerhoff.org/clements/csc344-wi14.

3 Computing Environment

This is the biggest question mark in this class. The focus of the class will be on helping students to develop in whatever environment works best for them. For me, it looks like the JUCE framework is the way to go. In principle, this framework works on... all common platforms? We’ll see. You’re also probably going to want some kind of DAW. There are a huge number of choices here, and we’ll see what works best by consensus, as the class goes on.

4 Style Guide

You’re going to be writing code in lots of different languages, so I can’t be too specific in terms of providing a style guide. However, there are simple rules that you can follow in this class (and every other class and for the rest of your life) that will make your code much more readable.

5 Readings

At this point, the class doesn’t have any assigned readings. I’m looking at Gareth Loy’s "Musimathics", but I’m not yet ready to say it’s close enough to our material to justify the expenditure.

6 Communication

This class will use Piazza. This will be the principal means that I’ll use to notify you of deadlines, organizational updates, and changes to assignments. If you’re not keeping up with the group, you’re going to be missing important information.

It’s also the best way for you to direct questions to me and/or the class. Feel free to e-mail me with personal questions, but use the Piazza group as your main means of communications. It’s possible to post anonymously, if you like.

You should already have received an invitation to the Piazza group; let me know if you need an invite.

Don’t post your code or test cases to the group; anything else is fair game.

Also, please keep in mind that I (and everyone else) judge you based in part on your written communication. Spelling, complete sentences, and evidence of forethought are important in all of your posts & e-mails. One easy rule of thumb: just read over what you’ve written before clicking post or send, and imagine others in the class reading it.

7 Labs

Will we have labs? You tell me.

8 Assignments

Programming assignments will be due at 11:00 PM. Late assignments will not be accepted.

From time to time, we may examine student code, in lecture. Try to ensure that the code you submit is something you’d be proud to show to the others in the class.

9 Honesty

The focus of this class is creativity and design, not a specific set of programming skills. For that reason, I encourage you to share code on every project. My goal is to create an environment where everyone knows what everyone else is working on, and is free to borrow–with attribution–from others’ projects.

Naturally, exams and quizzes will be entirely your own work.

10 Exams and Quizzes

My experience suggests that frequent quizzes are a good way to ensure that you’re understanding what I’m teaching, and that I’m teaching things that you understand.

This class will have quizzes on Wednesday of weeks 2, 4, and 8. These quizzes will probably be twenty minutes long, and will probably take place during lab.

There will be a midterm on Wednesday of week 6. It will be fifty minutes long.

There will be a final exam.

The quizzes and exams will be closed-note. Some quizzes may require the use of DrRacket in labs for test-taking and submission. No other devices will be permitted, including calculators and phones.

11 Final Performance

I would love to have a collaborative final performance in this class. We’ll see if we can make this happen.

12 Grades

Grades will be determined by performance on programming projects, the exams, and class interaction. A small fraction of the grade may be determined by the labs, and by the instructor’s whim. The breakdown of the grade is NOT FINALIZED. It might be something like this:

13 Schedule/Homeworks

Schedule/Homeworks