CSC 221: Computer Programming I
Fall 2004



11:00 - 12:15 TuTh
411 Old Gymnasium
Dr. David Reed
207 Old Gymnasium      x2583
DaveReed@creighton.edu


Text: Objects First with Java: A Practical Introduction using BlueJ, 2nd edition, by Barnes and Kolling, Prentice Hall, 2005.


Course Description

This course provides an introduction to problem solving and programming using the language Java. The process of programming is much more than just writing code. It involves analyzing the problem at hand, designing a solution, implementing and testing that solution, and critiquing results. Following the dominant model of software development, this course will emphasize an object-oriented approach to problem solving and software development.

The specific goals of this course are:

This course is intended as a first programming course, so no prior experience with computers is assumed. The problem-solving and programming techniques introduced in this course are further expanded in the follow-up course, CSC 222: Computer Programming II.


Required Work

Learning to program requires a consistent time committment, as each new concept and programming technique builds on those that came before. To encourage students to keep up with the course content and to provide immediate feedback, each class period will begin with a "random" quiz. A quiz will be handed out to highlight important concepts, but only admistered with a 50% likelyhood. To allow for unavoidable absences, the two lowest quiz grades will be dropped.

To demonstrate problem solving and programming skills, students will complete 6-8 programs throughout the semester. Each assignment will involve the design and implementation of a Java program, and may also include a written component in which the behavior of the program is analyzed. Late assignments will be accepted up to 7 days after their due date, with a 25% penalty. Beyond 7 days, late submissions will not be accepted.

In addition, there will be two 75-minute tests and a cumulative 100-minute final exam.

daily quizzes/exercises 10 %
6-8 programming assignments 40 %
two 75-minute tests 30 %
100-minute final exam 20 %

The final grade for the course will be based on the above weightings. At the minimum, traditional grading cutoffs for the final average will apply. That is, 90% is guaranteed an A, 87% is guaranteed a B+, etc. Depending on class performance, some shifting of grades (in an upward direction only) may occur as final letter grades are assigned.

Regular attendance is expected of all students. If you must miss class for a legitimate reason, it is your responsibility to make up missed work. Quizzes and Assignments will not be rescheduled except in extreme circumstances.


Policy on Collaboration

The college policy on cheating and plagiarism is spelled out in the Student Handbook. In addition to this, the following guidelines hold for this course.

Violations of the above collaboration will be dealt with severely, with possible outcomes including failure in the course and expulsion from the university. In the case of programming assignments, you are encouraged to start early so that there is time to seek help from the instructor as the need arises.


Tentative Schedule

Date Topic Readings Assignments
Aug 26
Course overview. (ppt/pdf)  
31
Sep 2
Computer basics, history. (ppt/pdf)
Objects and classes: (ppt/pdf)
 
Ch. 1
7
9
    parameters, types, return.
Understanding class definitions: (ppt/pdf)
 
Ch. 2
 
HW1: due 9/16
14
16
    fields+methods, assignments, conditionals.
    lab day
 
HW2: due 9/28
21
23
Object interaction: (ppt/pdf)
    abstraction, expressions, strings.
Ch. 3
28
30
    lab day
review
Oct 5
7
TEST 1
Repetition and simulation: (ppt/pdf)
 
Ch. 4
 
HW3: due 10/14
12
14
    expression evaluation, casting, final,
    counters, while loops, for loops,
19
21
NO CLASS -- FALL RECESS
26
28
    system modeling, simulation.
    lab day
 
HW4: due 11/9
Nov 2
4
Strings and repetition: (ppt/pdf)
    String methods, objects vs. primitives,
Ch. 5-6
9
11
    unit testing.
    lab day
 
HW5: due 11/20
16
18
Library classes: (ppt/pdf)
    ArrayList, Random.
Ch. 4-5
23
25
TEST 2
NO CLASS -- THANKSGIVING
30
Dec 2
Designing classes: (ppt/pdf)
    cohesion, factoring.
Ch. 7 HW6: due 12/9
 
7
9
    lab day
Course review: (ppt/pdf)
Dec 14
FINAL EXAM     Tue, 1:00-2:40