Computer Science I (810:059, Section 2) Fall 2002
General Information
4 Credits
Time and Place: Section 2 - TTh 12:30-1:45, Wright 105 plus laboratory time to be arranged.
Class Directory: http://www.cs.uni.edu/~fienup/cs059s02/
(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)
Instructor - Mark Fienup
Email: fienup@cs.uni.edu
Office: Wright Hall 321, phone 273-5918
Office Hours: MW 9-11, 2-3, TTh 9:30-10:30, F 10-11, anytime my door is open, and by appointment.
Course Description
Computer Science I (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:
Graded Work
In-class Group Activities (10%) The format of the class will typically be a mini-lecture (10-15 minutes) followed by an pencil-and-paper exercise over the topic of the mini-lecture. To reduce frustration and aid learning, these exercises will be performed in "randomly" assigned groups, where students can help other students.
Lab Assignments (20%) 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. These labs are time consuming, and you'll occasionally encounter difficulties in completing the lab, so don't wait until the last minute or help may not be available.
These labs should be completed on an individual basis, i.e., you must write your own Java code for their solutions. If you have questions concerning a lab, feel free to consult your instructor, graduate teaching assistant (TA), or another student in the class. However, copying from another students is forbidden since it will not help you learn. Asking another students questions to improve your understanding so that you can complete the lab is okay. If you get substantial help for your lab solution from another student or a publication, you should acknowledge this contribution in writing on the lab.
Out-of-class Lab Exams (20%) There will be two lab exams during the semester that will be held in one of the computer labs (see schedule). During a lab exam, you will be given an hour and 45 minutes to complete some programming exercises on your own.
Exams (15% for each mid-term exam and 20% for the Final) There will be three exams. Two will be mid-term exams, while the other will be the scheduled final exam for the course (3-4:50 Thursday, May 9). The exams are closed book exams, except for a one page "cheat sheet". 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. If you are aware of conflicts prior to the exam, please make me aware of these as early as possible.
Grade Assignment
Grading for this course is on an absolute scale. Ideally, 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. (Often, this ideal absolute scale needs to be adjusted downward)
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.
Week of | Reading Topics | Tentative Deadlines |
January 14 | Chapter 0 - Course Introduction, History of computers and programming |   |
January 21 | Chapter 1 - Intro. to Object-oriented (OO) Programming, Lab Intro. |   |
January 28 | Chapter 2 - Java Programming Basics | Thursday, Lab 1 Due |
February 4 | Chapter 3 - Numerical Data | Thursday, Lab 2 Due |
February 11 | Chapter 4 - Defining Instantiable Classes | Thursday, Lab 3 Due |
February 18 | Chapter 6 - Selection Statements | Thursday, Lab 4 Due |
February 25 | Chapter 6 - Selection Statements | Thursday, Mid-term 1 |
March 4 | Chapter 7 - Repetition Statements | Thursday, Lab 5 Due |
March 11 | Chapters 7 and 8 - Repetition Statements, Characters and Strings | Thursday, Lab 6 Due Thursday/Friday, Lab Exam |
March 18 | Spring Break |   |
March 25 | Chapter 8 - Strings and String Buffers | Thursday, Lab 7 Due |
April 1 | Chapters 9 and 10 - Arrays and Searching | Thursday, Lab 8 Due |
April 8 | Chapters 9 and 10 - Arrays and Sorting | Tuesday, Mid-term 2 |
April 15 | Chapters 9 and 10 - Arrays and Sorting | Thursday, Lab 9 Due Thursday/Friday, Lab Exam |
April 22 | Chapter 5 - GUI and Event-driven programming |   |
April 29 | Chapter 5 - GUI and Event-driven programming | Thursday, Lab 10 due |
Finals Week | Final 3-4:50 PM Thursday, May 9 |