Course Information
Course: Computer Science 135 A, Computer Programming 1, Spring 2003, Central College.
Professor: Tom Linton, 312 B Central Hall, (641) 628-5264, email: lintont@central.edu.
Class Meets: MWRF 1:00 to 1:50 PM in Central Hall 313, we meet in CH 310 on Thursdays.
Office Hours: 9 AM Mon, Fri, 1 PM Tues, 3 PM Wed, or by appointment.
Text: An Introduction to Object-Oriented Programming with JAVA, 2nd edition, by C. Thomas Wu.
Technology: We will make extensive use of computers and software related to "programming". No prior knowledge of these tools is assumed. We will use the programming environment Bluej to develop most of our programs. This software program is specifically designed for teaching introductory programming concepts. The class web page is located at the URL http://www.central.edu/homepages/lintont/classes/spring03/prog1frameset.html and information relevant to this course may come via email. You should check your email and the class web page on occasion. We will also use the on-line course management program  Blackboard to distribute and collect materials for this class, as well as post grades for completed assignments.
Final Exam: 1 PM Wednesday May 7, Central Hall 313.

Class Overview This course is intended for students with a serious interest in programming and computer science. This course meets the m core requirement for mathematical reasoning, and will involve a significant component of abstract thinking, problem solving, and mathematics. If you have concerns or questions about this course, please talk to me at your earliest convenience. Computer programming is introduced using an object-oriented programming language (we'll use Java). Algorithms, program control structures (sequence, selection, repetition), graphical user interfaces, classes, objects, methods, files, and arrays will be covered. Students will spend a significant amount of time out of class designing, writing, collaborating on, and debugging computer programs.

Goals and Objectives Upon completion of this course, students will:

American Disabilities Act Central College abides by interpretations of the Americans with Disabilities Act and Section 504 of the Rehabilitation Act of 1973 that stipulates no student shall be denied the benefits of an education “solely by reason of a handicap.”  Disabilities covered by law include, but are not limited to, learning disabilities, hearing, sight or mobility impairments, and other health related impairments.  If you have a documented disability that may have some impact on your work in this class and for which you may require accommodations, please see me and Nancy Kroese, Director of Student Support Services and Disability Services Coordinator, (x5247) so that such accommodations may be arranged.
Grades
Grades, based on the letter, or A, A-, B+, B, B-, . . . system, will be based on a weighted curve of the total points in the class. The curve used will be the traditional 100-93 A, 92-90 A-, 89-88 B+, etc. (or an easier curve). The breakdown of the points in the class is given below. There is no extra credit for this class. You are encouraged to work together on group assignments (including homework), but copying answers of others (including those in the back of the text) will result in no credit. Several assignments in this class will be completed on an individual basis (working with others is forbidden). Working together does NOT mean copying someone else's code, in fact, a good rule to always follow is:

When you require help on a program or homework problem, you should only have your helper
look at what you have done, and give you advise. You should never look at what they have done.

Exams We will have three midterm exams. These exams will most likely follow our completion of chapters 3, 7, and 9. We will also have a cumulative final exam on Wednesday, May 7 at 1 PM.

Homework, Quizzes, and Activities I will assign and collect homework problems on a regular basis (one assignment from each chapter we cover). Recording "just the answer" will receive little or no credit. You should show and/or explain your work on all assignments for this class. You are encouraged to work together on homework assignments, but this does NOT mean copying the work of others nor answers from a solution set. We will do several in-class activities throughout the semester (where new concepts are introduced, or old notions are examined in more detail). Most of these activities will be done in groups, and all will contain questions similar to homework problems. We will have regular (roughly every week) quizzes.

Programming Assignments We will complete several (6 to 10) programming assignments. You will be allowed to work in pairs on some of these, but others will be done individually, where sharing code will be strictly forbidden. It is important to keep up with the programming assignments. Falling behind on the programming assignments normally has a substantial negative impact on your class grade.

Participation You are expected to be in class each day. If you miss a day of class, you are still responsible for the materials-activities completed that day. You are expected to participate in class discussions, ask questions, and to be engaged in the day to day actions of the class.

Your final grade in this course will be based on participation, homework assignments, activities, quizzes, programming assignments, the midterm exams, and the cumulative final exam. These items will be weighted as follows:

     5% participation
     34% homework assignments, quizzes, and activities
     25% programming assignments
     24% midterm exams (8% each)
     12% final exam
Academic Dishonesty
Plagiarism (which includes working together on an individual assignment, or editing someone else's code and turning it in without citing that person's work), or copying answers from other people or books without citing the source is a serious offense and will result in no credit for the work and possibly more serious punishment (failing the class, placing a letter in your file, and withdrawl from school are possibilities).  It is OK to discuss your answers with other groups on group assignments, but  the work you turn in must be your own, not a modified version of someone else's work.

Central College's Academic Honesty Policy
"Academic dishonesty is defined as behavior that is inappropriate for academic pursuits, including plagiarizing, cheating and other such dishonest activities.  Some examples of misconduct are

Depending on the nature of the offense, the penalty for academic dishonesty ranges from permission to redo the project (if plagiarism was inadvertent), failing the project, to failing the course.  A second offense is grounds for dismissal from Central College."
Class Materials
We will be using the development environment Bluej to write our programs. Bluej is a Java development environment specially designed for teaching introductory programming concepts. It was designed by educators from Austrailia and Denmark.

Here is a somewhat technical tutorial on using Bluej.

Installing bluej on your computer.

The author of our text has written a package of useful classes (Java programs) for us to draw upon, so that we can develop meaningful programs from the start. The package is name Javabook and can be downloaded (for free) from the text's website. It is also available locally (copy the entire folder named javabook) in the folder G:\Lintont\prog1.

Java doc documentation for the javabook package.

The Java API documentation (on Sun's website) that details all of the standard classes for the Java language.

Programming Solutions
Chapter 2 number 26, use the Clock Class to turn on and off a MainWindow object.
Chapter 3 number 11, calculating the body mass index of an individual.
Chapter 3 number 17, calculating the value of an investment with annual deposits and annual interest.
Chapter 6 program solution, a very complicated package pricing program.
Chapter 7 solution, a fast food ordering program with repeated orders allowed.

In-Class Examples and Activities

The GolfSales example of a golf ball ordering and receipt generating program.
An activity that makes change for a given number of cents, and uses if statements to clean up the output.
An example of using a ListBox and switch block to print an appointment schedule, and an activity for you to try use these new constructs.
An introduction to the ResponseBox class, for getting Yes-No type answers from the user.
An example of a do-while loop that rolls a pairs of dice.
Using the Format class to make a nice table, and changing fonts in an OutputBox.
Examples related to Strings, SillyString.java.
The String method indexOf and some example uses.
Reading JavaDoc help files to implement and use data classes related to a checkbook.
Exams-Quizzes
Exam 1 practice sheet (and answers) covering chapters 0 to 3.
Exam 2 practice sheet covering chapters 6,7, and parts of 8.
Last few chapters practice problems.
Schedule
Relevant information will be added to this schedule as we progress through the semester. An up to date version is available on line at http://www.central.edu/homepages/lintont/classes/spring03/prog1/index.htm#schedule .
 
Week
Dates
Section
Assignment and due date
1 1-13 to 17 Ch 0, 1 Ch 0: p 11 QC #1,3,4
p 14 Ex #3,4,6,8
Ch 1: Ex #2,3,7,12
Intro to Bluej activity 
2
1-20 to 24
Ch 1,2
Ch 2 QC p. 48 1,2,3,4
EX 1,2,7,9,10,12,14,15
26 (write with BlueJ and print out)
3
1-27 to 31
Ch 2, 3
Chapter 3 HW QC p. 91 # 1,2,4
QC p. 95 #1,2,3 QC p.102 #1,2
QC p. 112 # 1,2,3  EX # 2,3,4,5
Due F 2-7
4
2-3 to 7
Ch 3
Ch 3 Programs
#11 in a file named BodyMass.java
#17 in a file named Invest.java
Due Mon 2-10
5
2-10 to 14
Ch 3
GolfSales example
Exam 1 practice problems (and answers).
6
2-17 to 21
Ch 6
Chapter 6 Due Th 2-27
QC p. 248 #1,2  p. 258 #1,2
EX #1 (d should have last right-curley at the very end),
2,3a,b,c,h,5,7,8
The make change and if activity.
ListBox-switch example and questions.
7
2-25 to 28
Ch 6
Chapter 6 programming assignment,
and the Solution.
8
3-3 to 7
Ch 7
  introduction to the ResponseBox class
Chp 7 QC p.293 #1,2 p. 298 #2,
p. 311 #1,2 p. 315 #1, p. 321 #1 EX #1,2,3
 
 
 
Spring Break!
9
3-17 to 21
Ch 8
Chp 7 program assignment and the solution,
Ch 8 QC p. 369 #1,3
p. 379 #1, p. 384 # 1
EX 5,6,8
10
3-24 to 28
Ch 8
 Exam 2 practice
the method indexOf for String
String Examples, SillyString.java.
11
3-31 to 4-4
Ch 8
Chp 8 program
12
4-7 to 11
Ch 4
Ch 4 #QC p 152 #1,2
p 157 #1,2
EX 1,2,3,4,5
Programs #8 Ticket1.java and
#9 Ticket2.java and Ticket2Driver.java
Due Wed 4-30
13
4-14 to 17
Ch 4
activity on data classes related to a checkbook.
14
4-21 to 25
Ch 9
Chapter 9 QC p420-1 # 1,2,3
p 435 #1,2
p 470 #2,3
EX 1,2,7
15
4-28 to 5-2
Ch 9
Chp 9 program #20
practice problems from last chapters
17 May 7 1 PM  Cumulative final exam