Instructor: Eugene Wallingford



This course has two primary goals. First, as its title indicates, the course introduces you to the study of computer science. We hope that you will leave this course with a sense of computer science is and what computer scientists do. We also hope that you leave with a sense of just how exciting and intellectually powerful the discipline is.

Second, the course aims to teach a bit about how to write computer programs. Programming is the way that computer scientists express their ideas and implement solutions to problems. Even if you never "program for a living", you will need to know how to program in order to appreciate the ideas you learn and to work in the induistry. We hope that you leave this course with a sense of what programs can do and of how you can use programs to express ideas.

We will use media computation as our primary theme to reach these goals. Computing with images, sound, and video offers a rich body of problems to solve that will bring us into contact with many of the fundamental ideas of computer science: representing and transforming data; design, analysis, and experimentation; and the thrill of solving problems in any domain of human thought.

By the end of the term, you should feel comfortable:

  • writing basic Java programs to manipulate images, sound, video, and text.
  • thinking about problems in terms of representing and transforming data.


  • Class sessions -- Our class meetings will consist of a mixture of lecture, discussion, and in-class exercises. We will also spend time preparing for and reviewing lab sessions. Much of the material that we cover in class will expand upon what appears in your texts, so attendance is essential. You will be expected to read assigned topics prior to the class session and to participate actively in class.

  • Laboratory -- There are fifteen scheduled laboratory sessions, beginning the first week of class. Attendance of lab sessions is required -- you will receive credit for a lab only if you attend. During each lab session, you will do exercises that complement the topics being covered in class, often that same week.

  • Programming assignments -- Over the course of the semester, you will complete somewhere between six and twelve programming assignments. These assignments will involve applying techniques learned in class and will occasionally involve extending or modifying code originally developed in class or a lab session.

  • Exams -- Finally, we will have two fifty-minute midterm examinations during the semester and a comprehensive final exam at the end. The exams will be "closed book", though sample code will usually accompany the exam as a part of the questions.


Item Number Weight
Lab exercises 15 20%
Programs 6-12 30%
Midterm exams 2 30%
Final exam 1 20%

Grades will be assigned using an absolute scale:

  • 90% or above for an A,
  • 80% or above for a B,
  • 70% or above for a C,
  • 60% or above for a D, and
  • below 60% for an F.

This means that there is no curve.


I try to accommodate student needs whenever possible, but I can only do so if I know about them. If you ever have to make alternate arrangements for a class session, a quiz, or an assignment, contact me in advance. The safest way to make such arrangements is by notifying me via e-mail of your circumstances and of how you can be reached.

My regularly-scheduled office hours are times when I am committed to provide assistance to you. No matter how busy I may appear when you arrive, the office hours are for you. You are welcome -- and encouraged -- to make use of that time. I am also available by appointment at other times if you cannot make an office hour.

All assignments are due at their assigned date and time. In order to receive partial credit, always submit your best effort at that time. Late work will not be accepted.

Working together is encouraged for programming assignments, to help you understand the problems and to encounter different points of view. Acknowledge by name any person with whom you collaborate in the documentation of the program you submit. However, any work you submit must be your own. Undocumented or unacceptable collaboration, including the sharing of code, will be considered a form of academic dishonesty.

UNI has an established policy of academic integrity. Plagiarism and other forms of academic dishonesty will not be tolerated in this course. See the UNI catalog for details on the university's policy.

Computing Environment

Most course materials will be made available on the course web page during the semester. I also frequently send e-mail to inform you of breaking news and to answer common questions.

Our laboratory sessions will be held in 112 Wright Hall, which contains 20 or so computers that boot to Linux and Windows. We will be using Linux as our primary operating system this semester. You will do your lab exercises and programming assignments using Dr. Java, a lightweight development environment for Java. Dr. Java and many of the programs we use this semester are avilable on a CD that comes with your textbook.

You will submit programming assignments using a simple web-based system developed by Prof. Schafer. We will give you more details as you need them.

You may choose to do programming assignments on any platform you like, such as a Mac or a Windows PC. Dr. Java is available for both of these platforms.

Tentative Schedule

This schedule gives a rough sketch of the topics we will cover and the distinguished dates this semester. This is the first time we have taught CS I using this approach and text, so I may want to make adjustments as we go along. If we need to re-schedule an exam, I will notify you at least one week prior to the exam date.

Week Dates Topics Text Special Events
1 08/22 - 08/24 Introduction to the course 1-2 .
2 08/29 - 08/31 Picture encoding, manipulation 3-4 .
3 09/05 - 09/07 Picture manipulation 4-5 .
4 09/12 - 09/14 Picture manipulation 5 Thu off?
5 09/19 - 09/21 Picture manipulation 6 .
6 09/26 - 09/28 Picture manipulation 7 .
7 10/03 - 10/05 Sound manipulation 8 Exam 1 (Tue)
8 10/10 - 10/12 Sound manipulation 8-9 .
9 10/17 - 10/19 Sound manipulation 10 .
10 10/24 - 10/26 [to be announced] . Week off?
11 10/31 - 11/02 Sound manipulation 10 .
12 11/07 - 11/09 Objects and classes 11 .
13 11/14 - 11/16 Text encoding and generation 12 Exam 2 (Tue)
. 11/21 - 11/23 Text manipulation 13 Exam 2 (Tue)
14 11/28 - 11/30 Text manipulation 12-13 .
15 12/05 - 12/07 Movies; Course wrap-up 14 .

The FINAL EXAM is Thursday, December 14, from 3:00 PM - 4:50 PM.

Internal Links
Computing Environment
Tentative Schedule
External Links
Course Home Page
Eugene Wallingford
Department Home Page
Syndicate This Site
RSS feed
Atom feed