CS 177/178 Programming with Multimedia Objects

Fall 2004 Schedule

Lecture MW 12:30-1:20pm EE 117 Mathur
Recitation 01 F 12:30-1:20pm EE 117 Mathur
Recitation 02 F 12:30-1:20pm REC 226 White
Laboratory 01 CANCELLED CS G040 --------
Laboratory 02 Th 3:30-5:20pm CS G040 White
Laboratory 03 F 9:30-11:20pm CS G040 White
Laboratory 04 Th 1:30-3:20pm CS G040 White
Laboratory 05 F 3:30-5:30-pm CS G 040 White

Midterm letter grades as of November 15, 2004

(inclusive of Exams 1, 2, Projects 1, 2, 3, labs 1-9, Quiz 1-16)

Your score
Your letter grade
85 or more
B or A
C or B
D or C



Amar Kumar

Information Analyst, Bioinformatics, Eli Lilly & Company

Friday November 5, 2004 12:30pm EE 117

MUST ATTEND FOR ALL CS 178 students!

Friends of CS 178 students are welcome!

Exam 1: September 22, 2004. 7:8:30pm. Room: EE 270.

Exam 2: October 25, 2004. 7:8:30pm. Room: EE 270.

Final Exam: December 15, 2004: 10:20am-12:20pm. Room: RHPH 172

ALL STUDENTS MUST CLICK here to visit the CS kiosk to obtain a CS account prior to coming to your first lab. You will not be able to do your first lab assignment if you have not obtained a CS account.

This page last revised: December 8, 2004

Write programs..lots of them. You will likely make errors, correct them. You might make more errors, correct more. Writing a correct program is often an iterative process. Learn through experimentation. Ask yourself "How can this be done?" and write a program to check out the answer. Learn by doing and not only by reading a book. Remember, programming is a skill that you can use to solve problems of interest to YOU and to others. Acquire this skill through practice! Later, if you choose to take a course on Software Engineering, you will learn more about how to design and code "large" programs. For now, we would like you to learn how to write "small", though useful, programs.

Textbook: programming.java. Rick Decker and Stuart Hirshfield. Brooks/Cole. Second Edition 2000.

All reading assignments are from the textbook. In-class quizzes will be based on material covered during that day's lecture or covered recently.

I rarely use slides in this course. Instead, I show students a program and explain the algorithm(s) used and other language related concepts by tracing through the algorithm and using the plain old chalkboard. All programs used in the class are accessible from this site prior to the start of the lecture. Lectures are highly interactive and all students are encouraged to be active participants and not remain passive listeners.

Week Date Topic Reading assignment Lab/Project/Recitation Exercises/Lecture Slides
1 8/23
  • Course introduction
  • Why programming is fun? Why it can be difficult? Where will this course take you?
Chapter 1 All projects are assigned on a Thursday before 11:59pm and are due at 11:59pm on a Sunday.

Lecture Slides: Aug 23 (to be continued on Aug 25)

Lecture Slides: Aug 25

Lab 1: Account creation, editing, compiling.

8/25 Fun applets 2.1, 2.2
2 8/30
  • Classes and objects
  • Writing an applet-1
  • Example for in-class discussion: DogApplet
2.3, 2.4 Lab 2: Write your own applet.

Lecture Slides: Aug 30

Project 1 description and applet. [Designed by Bill White]

Project 1 description and applet (alternate site).

Project skeleton code

Project 1 resource (gif image)

Recitation exercise for Sept 3, 2004

Recitation Exercise solution

9/1 3.1, 3.2 (to help you complete Project 1 and understand the TextWidgetsExamples applet.)
3 9/6 Labor day: class does not meet. 3.3, 3.4, 6.1 Lab 3: GUI development. (Events/If statement)

Lecture Slides: Sept 9

Recitation exercise for Sept 10, 2004

Recitation Exercise Solution

Special help session held on Sunday Sept 12, 2:30-4pm. Four students took advantage of the session.

9/8 Doing things selectively


4 9/13

Review of basic Java elements: Classes, objects, constructors, methods, identifiers, variables and constants, declarations, assignment, and if statement.

6.4 Lab 4: Data entry and manipulation; simple statistics.

Project 1 due. 11:59pm Sunday 9/19.

Lecture Slides: Sept 15

9/15 Algorithm development and coding.


5.3, 5.4
5 9/20 Representing, importing and exporting real-world data.


Lecture Slides: Sept 20

Lab 5: Microwave oven or Gene Example.

Project 2

Sept 22, 2004: Exam 1. 7:00-8:30pm EE 270

Bill White and Barry Wittman to conduct combined recitation in REC 226 on Sept 24.

9/22 In class review-1 8.1
6 9/27 Doing things repetitively-1 8.5 Lab 6: Selecting and displaying pictures.

Bill White to cover this week's lectures.

Bill White and Barry Wittman to conduct combined recitation in REC 226 on Friday Oct 1.

Recitation Exercise Solution

9/29 Doing things repetitively-2

InterestEarned Applet

8.2 (1-D arrays), 8.3
7 10/4 Collections-1

Arrays Example

8.3 Lab 7: Collecting and analyzing sets of experimental data.

Project 2 due. 11:59pm Sunday10/10.

Recitation Exercise (Oct 8)

10/6 Collections-2

Array example continued

8 10/11-10/12 October Break: Class does not meet. None. Lab 8: Continuation of Lab 7.

Recitation Exercise (Oct 15)

10/13 Collections-3

Another Array Example

8.3, 10.1
9 10/18 Collections-4


10.1, 10.2 Lab 9: Data input and manipulation (extension of Lab 7).

Project 3 assigned Tuesday Oct 19, 2004.



Recitation Exercise (Oct 22)

10/20 Input/Output Files

FileIO (Will work only if you compile and run on your computer. Why?)

9.1, 9.2
10 10/25 In-class review-2


8.5 October 25, 2004: Exam 2. 7:00-8:30pm EE 270

Lab 10: A program to do file I/O.

Recitation Exercise (Oct 29. Solution is at the end of the exercise; will work only if you compile/run on the same machine.)

10/27 Exceptions (continued)

FileIOException (Will work only if you compile and run on your computer. Why?)

4.1, 4.2, 4.4 (Layouts,Panels, MenuBar, Menu, MenuItem)
11 11/1 Graphical User Interfaces

Border Layout Illustration

Grid Layout Illustration

4.3 (Frames) Lab 11: GUI

Project 3 due. 11:59pm Sunday November 7, 2004

No Recitation due to Special lecture on Computer Science: Applications to Life Science

11/3 Graphical User Interface

Panel Illustration

Frame Ilustration

Frame and Menu Ilustration

7.1, 7.2


12 11/8 Strings

Divide and conquer strategy for composing "large" programs. Program design followed by coding.


7.3, 7.4, 7.5 Lab 12: Strings

Project 4

Divide and Conquer methodology: Example (incomplete)

Recitation Exercise (Nov 12)

11/10 Divide and conquer strategy for composing "large" programs. Program design followed by coding. (Continued)


13 11/15 More on classes and objects


12.1 and 12.2


Lab 13: Classes and objects. Modify the ElementAndCompounds program by adding a new class and making use of it to create compounds.

Project 4 due. 11:59pm Sunday11/21

StringTokenizer Illustrator and Recitation Exercise (Nov 19)


Classes and objects (continued) ElementsAndCompounds (continued)

14 11/22

In-class Competition


Place 1 (tie): Teams 1 and 7

Place 2 (very close): Team 13

Members of these teams who were present during the class will be awarded a certificate and invited to the CS Awards banquet in April 2005.


Thanks to all those who attended the class on 11/22 and participated in this exciting event.

None No lab.

Project 5 assigned. Monday 11/15.

This project requires you to add features to the ElementsAndCompounds applet.

No recitation this week due to the Thanksgiving break.

11/24 Thanksgiving: No Class. None
15 11/29 Threads and Animation

Simple ThreadIllustrator

JavaRoids Game (from Fan, Ries, and Tenititchi's book)

None Lab 14: Designing a two-person game.

Recitation Exercise: Using Threads for Animation(Dec 3)

12/1 In class review-3 Review
16 12/6 Class does not meet (in lieu of Exam-1) Lab 15: Continuation of Lab 14.

Project 5 due. 11:59pm Wednesday 12/8

12/8 Class does not meet (in lieu of Exam-2)
17 12/15 Final exam

10:20am-12:20pm. Location: RHPH 172

All exams, including the final exam, are "open book." The Quiz part of each exam is "closed book." You may consult your textbook during the exam for the programming portion. You are NOT allowed to consult any other notes.