Computer Science I (810:059), Sections 3 and 4

Fall 2001

General Information

Class Info

4 Credits

Time and Place: Section 3 - TTh 12:30-1:45, Wright 105 plus laboratory time to be arranged.

Section 4 - TTh 3:30-4:45, Wright 105 plus laboratory time to be arranged.

Class Directory: http://www.cs.uni.edu/~fienup/courses/cs059f01/

(Check here for lecture notes, announcements and supplemental class materials)

Texts: An Introduction to Object-Oriented Programming in Java, 2nd edition, C. Thomas Wu

(ISBN 0-07-239684-9)

Williams College Manuscript, (Photocopies are available from Louise, the departmental secretary, for $3.75 in cash.)

Instructor - Mark Fienup

Email: fienup@cs.uni.edu

Office: Wright Hall 321, phone 273-5918

Office Hours: MWF 10-11, MW 3-4, anytime my door is open, and by appointment.

Course Description

810:059 is the computer science department’s introductory programming and is the first course in the sequence for majors. This course offers an introduction to algorithmic problem solving using the object-oriented programming language Java. Topics covered will include the paradigm of object-oriented programming, basic data structures, problem-solving strategies, and an introduction to data and procedural abstraction. There will be a significant emphasis on program design and style.

This course is appropriate for students with little to no programming experience. It has no prerequisites.

Why this class is important

Computer science students need to acquire the reasoning and abstraction skills needed for designing algorithms and programs. This course teaches how to think as a computer scientist, by teaching the process of building abstractions to hide implementation details, of decomposing problems into simpler problems, and of controlling the intellectual complexity of designing large software systems.

Outcomes

Upon successful completion of the course students should have the following skills and proficiencies:

  1. Understand the basic workings of a computer, and how basic software is designed
  2. Understand the advantages and disadvantages of Java over other languages
  3. Be able to program Java applications and applets at a moderate level
  4. Be able to use good problem analysis and program development techniques
  5. Understand how to use algorithmic thinking, elementary data structures, and common programming techniques

Class Policies

Evaluation:

Homework – Homework will consist of written activities. They should be completed as an individual (see section on scholastic conduct). Homework will be at the start of the class in which it is due in order to receive credit. Unreadable answers will receive no credit. Homework problems will be announced in class and posted to the website no less than one week prior to the due date.

Lab Assignments – Lab assignments will be devoted to hands-on programming and related activities. You will have one week to work on lab assignments. They will normally be made available in class on Thursdays and should be made available online at approximately the same time. Unless otherwise noted, labs are due at the beginning of class the following Thursday. The complexity of these labs will vary greatly. Some will involve having the TA verify that you successfully completed a set of explicit tasks. Others will involve writing your own Java code solution to a problem. If you have questions concerning a lab, feel free to consult your instructor or the TA. However, plan your time accordingly. Do not wait until the last minute or help may not be available.

Test Programs – Test programs will be devoted to hands-on programming. A test program is a laboratory that you complete on your own (see section on scholastic conduct), without the help of others. It is a form of take-home exam. You may consult your text, your notes, your lab work, or our on-line examples and web pages, but use of any other source for code is forbidden. If you have problems with the assignment, please see your instructor (rather than the TA).

Exams – There will be three exams. Two will be mid-term exams, while the other will be the scheduled final exam for the course. The exams are closed book exams. Tentative dates for the mid-term exams are listed in the schedule. The actual date of each exam will be announced no less than one week prior to the exam. There are no scheduled make-up exam dates. If you are aware of conflicts prior to the exam, please make me aware of these as early as possible.

Grading

Grading for this course is on an absolute scale. Thus, the performance of others in the class will not negatively affect your grade.

5% Homework

15% Lab Assignments

30% Test Programs

30% Midterm Exams (closed book, during lecture--see attached schedule)

20% Final Exam (closed book, in final exam week--see attached schedule)

Grades will be assigned based on straight percentages, i.e., 100-90 A, 89-80 B, 79-70 C, 69-60 D, and below 60 F. Plus and minus grades will be assigned for students near cutoff points.

Incompletes

Incompletes are awarded only in very rare instances when an unforeseeable event causes a student who has completed all the coursework to date to be unable to complete a small portion of the work (typically the final project or exam). Incompletes will not be awarded for foreseeable events including a heavy course load or a poorer-than-expected performance. Verifiable documentation must be provided for the incomplete to be granted, and arrangements for the incomplete should be made as soon as such an unforeseeable event is apparent.

Scholastic Conduct

You are responsible for being familiar with the University’s Academic Ethics Policies (http://www.uni.edu/pres/policies/301.html).

Students are encouraged to discuss the course, including issues raised by the assignments. However, the solutions to assignments should be individual, original work unless otherwise specified. If an assignment makes you realize you don't understand the material, ask a fellow student a question designed to improve your understanding, not one designed to get the assignment done. To do otherwise is to cheat yourself out of understanding, as well as to be intolerably dishonorable.

Any substantive contribution to your solution by another person or taken from a publication should be properly acknowledged in writing. Failure to do so is plagiarism and will necessitate disciplinary action. In addition to the activities we can all agree are cheating (plagiarism, bringing notes to a closed book exam, etc), assisting or collaborating on cheating is cheating. Cheating can result in failing the course and/or more severe disciplinary actions.

Accessibility

The Americans with Disabilities Act of 1990 (ADA) provides protection from discrimination for qualified individuals with disabilities. Students with a disability, who require assistance, will need to contact the Office of Disability Services (ODS) for coordination of academic accommodations. The ODS is located at 213 Student Services Center. Their phone number is 319/273-2676. Additionally, please contact me immediately if you have a learning or physical disability requiring accommodation

Guidelines for Success in this Course

Once you have allocated the necessary time for this course, the following suggestions, compiled from student experiences, should help you plan your time use and prepare for the labs and exams:

Tentative Schedule

Check the class website frequently for changes and announcements. If no topic is listed then the topic is a continuation of the previous class meeting.

Week starting…

Topic (and Reading)

Known Deadlines

August 27

Course Introduction, History of computers and programming (Wu, Chapter 0)

 

September 3

Graphics and Event Handling Methods (Wlm, Chapter 1), Lab Introduction

 

September 10

Parameters and Variables (Wlm, Chapter 2), Expressions and Conditions (Wlm, Chapter 3)

Thursday, Lab 1

September 17

Defining and Using Classes (Wlm, Chapter 4)

Thursday, Lab 2

September 24

Repetition (Wlm, Chapter 5)

Thursday, Lab 3

October 1

The javabook package (Wu, Chapters 1-5)

Thursday, Lab 4

October 8

Selection Statements (Wu, Chapter 6)

Thursday, Lab 5

October 15

Midterm Exam 1

 

October 22

Repetition Statements (Wu, Chapter 7)

Thursday, Test Program 1

October 29

Text processing in Java (Wu, Chapter 8)

Thursday, Lab 6

November 5

Arrays (Wu, Chapter 9)

Thursday, Lab 7

November 12

Class reuse, inheritance, and polymorphism (Wu, Sections 12.1-12.2 and 14.1-14.7)

Thursday, Lab 8

November 19

Midterm 2 and Thanksgiving Break

 

November 26

TBA

 

December 3

TBA

Monday, Test Program 2

December 10

TBA

Thursday, Test Program 3

December 17

Finals Week

Section 3 (12:30 PM Class-time) Final – 3-4:50 PM Thursday

Section 4 (3:30 PM Class-time) Final – 3-4:50 PM Tuesday