CSC 123, Fall 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 You  Tube Videos
5 Online Portfolios
6 Readings
7 Communication
8 Honesty
9 Labs
10 Quizzes and Exams
11 Projects
12 Final Project
13 Milestone Schedule
14 Grades
15 Schedule/  Assignments
6.1.1.5

CSC 123, Fall 2014

Schedule/Homeworks

This class is "about" several things all at once.

First and foremost, the goal is to learn the fundamentals of programming.

Second and almost as foremost, the goal is to create some interesting pieces of music and musical programs.

The hidden agenda of the class is to make you fall in love with the ability to translate thoughts into reality—also known as computer science.

1 Prerequisites

Students entering this class are expected to understand algebra, trigonometry, and some very basic physics ("what is sound?") and calculus ("what is a derivative?").

Students in this class are not expected to know how to program. Students that have programming experience are also welcome and important; you will be a great asset to your teams.

2 Names, Times, Locations

2.1 Instructor

2.2 Lecture & Lab

Section 05/06:

Section 07/08:

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.

Office hours also appear on this calendar; you may find them easier to see if you click on the "week" tab of the calendar.

2.4 Web Page

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

3 Computing Environment

You will be required to complete the assignments in this class using PLT Racket, version 6.1 (or a newer version). It is freely available for all major platforms, including Mac OS, Windows, and UNIX.

It is pre-installed on the lab machines, which are all Macintoshes. Follow the instructions given in Lab 1 to install the rsound package.

4 YouTube Videos

I’ve made a small number of YouTube videos, illustrating some basic DrRacket skills. These are online at

http://www.youtube.com/playlist?list=PLD0EB7BC8D7CF739A

5 Online Portfolios

Every student will be required to maintain an online "portfolio" page, highlighting his or her work on the projects that each team carries out.

The recommended (a.k.a. simplest) way to get such a portfolio page is to use Google Sites, at http://sites.google.com. This will require you to have a google login, which should be free if you don’t already have one.

You’re welcome to build your portfolio page in some other way, if you like.

Your portfolio pages must be public, and you should add yourself to the Portfolio List google doc.

6 Readings

This class does have a required textbook, but you will read it online, so no purchase is required. The book is called How To Design Programs, 2e. If this site is down, there’s a (possibly slightly outdated) mirror available here.

In addition to this book, there are a number of good books on sound manipulation. These are strictly optional, if you find that you want more information on a particular topic.

7 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.

8 Honesty

I encourage collaboration with your team members—once you have a team—on both Labs and Projects.

On the projects, you will be working together on a piece of code, and it is not necessary to indicate which team member wrote which parts of the code. If you get code from other teams, you must acknowledge this in the code. For instance, you might write a one-line comment like "This function adapted from one written by the Scabrous Crabs."

When doing labs, the code you write must be your own. It’s fine for your team members (or anyone else) to read over your shoulder and give you advice, but you must write the code yourself.

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

9 Labs

Labs in this course take the form of simple exercises to be completed in a week during lab periods, designed to help you understand the lecture material and to lead you toward solutions for the larger assignments.

I’ll be checking these off during the lab; you’re responsible for demo-ing your lab solutions for me. Your marks on these labs will be simple credit/no-credit.

The labs will be due at the end of your lab period on the last day of the week, typically Friday. If we run out of time to check them, I will generally elect to accept them on Monday as well, but you cannot rely on this occurrence; the labs are due on Friday.

When you successfully demonstrate a lab, I will give you a number. You may enter these numbers at http://brinckerhoff.org:8026/servlets/standalone.rkt .

10 Quizzes and Exams

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 and a final exam in the course. The midterm will be during the lecture period on Wednesday, October 29th, in the sixth week of class. The quizzes and exams will be closed-note. No electronic devices, including calculators, phones, or mp3 players, will be permitted during the quizzes and exams.

11 Projects

Before the final project, there will be two smaller projects with more constrained parameters. Unless otherwise specified, these projects will be due at 11 pm on the day specified in the schedule.

12 Final Project

Your final, quarter-long project in this class is to design and implement EITHER:
  • a music tool that you can use to mix and/or perform music, or

  • a single piece of music.

On this project:

13 Milestone Schedule

14 Grades

Grades will be determined by performance on programming projects, the exams, and class interaction. The breakdown of the grade is as follows:

Late Policy: Except for exceptional circumstances, late assignments will be given 0 points.

15 Schedule/Assignments

Schedule & Assignments appear here. (There’s also a link at the top of the page.)