Course Objectives
Prerequisites
Math 111 or equivalent (Math 108 and 109) with a grade of C or higher.
Meeting Times
Lectures: 9:00am – 9:50am MWF, Lawson 231
Lab sessions: Faner 1028
- Section 1: 9:00am – 10:50am T
- Section 2: 11:00am – 12:50pm T
- Section 3: 1:00pm – 2:50pm T
Course Personnel
|
Instructor: Kenny Fong Office: Faner 2132 Email: kfong@cs.siu.edu URL: http://www.cs.siu.edu/~kfong Tel: (618) 453-6032 Hours: 1:00pm – 2:45pm MWF
|
|
TA: Antonis Christou Office: Faner 3127 |
TA: Charles Holmes Office: Faner 3127 |
Text
Java Software Solutions: Foundations of Program Design, 6th Ed., by John Lewis and William Loftus, Addison Wesley, 2009
Course Homepage
http://www.cs.siu.edu/~kfong/cs202
Grading
The following grading scheme is tentative and is subject to change. Assignments are not equally weighted. Regardless of your grades in assignments, you cannot pass the course if your fail (i.e. below 50%) more than one exam.
Lab assignments (5): 25%
Homework sets (10): 15%
Lab session exercises (15): 15%
Exams (3): 15% × 3
Tutorial exercises (12): +6%
Course Policy
Attendance. Due to the nature of the course and the frequency of assignments, attendance is mandatory. You are responsible for all announcements and for all material presented in the lectures and lab sessions. Come prepared for class. Read the assigned material in advance of the lectures that cover the material. After the lecture, reread the material. Your attendance in the lectures will be monitored and/or recorded regularly, and your final course grade will be dropped one letter grade if the instructor deems your attendance record unsatisfactory. Note that lab sessions provide lab exercises and cover different material from lectures and so lectures cannot substitute for lab sessions and vice versa. For any three unexcused absences from lab sessions, your final course grade will be dropped one letter grade.
Assignments. There will be five lab assignments and ten homework sets. Lab assignments involve programming, and homework sets contain questions that require written answers. Each lab assignment must be submitted electronically through the Blackboard Learning System at https://mycourses.siu.edu by 9:00pm on the specified due date. Your solution to the homework sets can be written or typed. All homework sets are due at the beginning of the class on the specified due date. No late assignments are accepted. You may talk to the TAs for any grade appeal about an assignment, but it must be made within one week after the assignment is handed back. The teaching staff will be available in their offices during their office hours to answer any questions regarding the assignments and the course in general. You may also post your questions on the discussion forum in the Blackboard Learning System, but any thread that may reveal the solution to an assignment problem will be deleted.
Exams. There will be two midterm exams and one final exam at the following times and locations:
Midterm Exam 1: Wednesday, March 17, 5:00pm – 7:00pm, Lawson 231
Midterm Exam 2: Wednesday, April 28, 5:00pm – 7:00pm, Lawson 231
Final Exam: Wednesday, May 12, 7:50am – 9:50am, Lawson 231
All exams are closed-book but not comprehensive. Additional review sessions are scheduled prior to the exams. There will be no make-ups except under very special circumstances. Any reason for a make-up must be approved by the instructor. You must talk to the instructor, not the TAs, for any grade appeal about an exam, and it must be made within one week after the exam is handed back.
Tutorials. Starting from the fourth week of the semester (February 10/11), tutorials will be held at the following times and locations:
Wednesdays, 4:00pm – 5:30pm, Faner 1024 (cancelled during exams)
Thursdays, 4:00pm – 5:30pm, Faner 1024
Attendance in tutorials is optional, but strongly encouraged. In each tutorial, the TA will first go over sample problems that are typical in upcoming assignments and exams. You will then be provided with a similar exercise to work on, and the TA will go over the solution after you complete the exercise. Finally, if time permits, you will be allowed to study for or work on your own lab and homework assignments related to this course and request real-time assistance from the TA if you are stuck. It is sufficient for you to attend one tutorial per week, and any points you receive from the tutorial exercises are counted as bonus points towards your final course grade, for a maximum of six bonus points. In order to receive the bonus, you must come to the tutorial on time and must not leave prematurely until the TA stops teaching.
Programming Environment. All programs in lab assignments must compile and run in the JDK 6.0 environment. You will be instructed to develop Java programs using DrJava during lab sessions. All of the necessary software can be freely installed on your PC. You can find instructions on how to install the development software at http://www.cs.siu.edu/~kfong/cs202/resources/install.html. Please consult the TAs first for any technical questions regarding the development environment.
Collaboration and Plagiarism. All assignments are to be done individually unless otherwise specified. You are allowed and even encouraged to verbally discuss the assignment material with your classmates or consult the teaching staff for debugging assistance, but you must prepare the solution on your own. Plagiarism and other anti-intellectual behavior are not tolerated and are subject to severe penalties. For more information, please carefully read the Departmental Policies on Academic Dishonesty available at http://www.cs.siu.edu/department/cheating.html.
Time Management. This course is an extremely time-demanding course. Moreover, you cannot survive in Computer Science without passing this course. It may not be a good idea to take this course together with other time-consuming courses. Please plan your time and course schedule wisely, and start work on the assignments as soon as they are available. Your effort pays!
Course Topics
The following topics will be covered in regular lectures. Other topics, such as program development and file I/O, will be covered in lab sessions.
| Computer Systems | Chapters 1.1, 1.2, 1.5 |
| Introduction to Java | Chapters 1.4, 2.1 |
| Primitive Types and Arithmetic Expressions | Chapters 2.2, 2.3, 2.4, 2.5 |
| Using Classes and Objects | Chapters 1.6, 2.6, 3.1, 3.2, 3.3 |
| Selection Statements and Boolean Expressions | Chapters 5.1, 5.2, 5.3, 5.4 |
| Iteration Statements | Chapters 5.5, 5.7, 5.8 |
| Java Applets | Chapters 2.7, 2.8, 2.9 |
| Defining Classes and Methods | Chapters 4.1, 4.2, 4.4, 4.5, 6.4, 6.8 |
| Encapsulation | Chapters 4.3, 6.4 |
| Static Members and Wrapper Classes | Chapters 3.8, 6.3 |
| References | Chapters 3.1, 6.4, 6.7 |
| Arrays | Chapters 7.1, 7.2, 7.3, 7.6 |
| Searching and Sorting | Chapters 9.4, 9.5 |