CSC 161 Computer Science II
A second course in object-oriented programming, emphasizing design and implementation of efficient, well-constructed programs using Java. Topics include graphical user interfaces, polymorphism, exception handling, stream and file I/O, algorithms for searching and sorting, recursion, linked lists, stacks, and queues. Extensive programming required. Laboratory. Prerequisites: CSC 160 or one year H.S. programming in Java; MTH 121 or higher or appropriate placement.
My office is in Carnegie Hall 310 B. You can stop by in person, or call my office at 630-637-5174. If I am not at the office and you need immediate attention, you can call me at home at 630-759-2110. You can email me at firstname.lastname@example.org. Winter term office hours are Mondays, Wednesdays at 5:20 -- 6:20pm, and Tuesdays, Thursdays at 4:00pm -- 5:30 pm.
Course Textbook and Schedule of Topics
The class text is Tony Gaddis and Godfrey Muganda, Starting Out With Java: From Control Structures to Data Structures Addison Wesley, 2007.
The course topics will be covered more or less as shown in the following table. This is my best estimate, and this schedule will likely be adjusted as the term progresses.
|1||GUI applications, Inheritance||Chapters 7 and 11|
|2||GUI applications, Inheritance||Chapters 7 and 11|
|3||Advanced GUI applications||Chapter 13|
|5||Exception Handling and Stream IO||Chapter 12|
|7||Collections and Array-based lists||Chapter 18, 19|
|8||Linked Lists||Chapter 20|
|9||Stacks and Queues||Chapter 21|
|10||Binary Trees||Chapter 22|
There will be a number of homework assignments given, no less than 5 and no more than 10. All homework assignments will include a programming portion. Homework will account for 45% of course grade, all graded lab assignments will be worth 10 %. All labs must be handed in. A subset of the labs will be graded. You will not know beforehand which labs will be graded.
In addition to the homeworks, there will be an in-class test in Weeks 3, 5, and 8, and a final examination in week 11. Most of the tests will include a programming portion to be done on the computer. The part of the test done on the computer will be open book and open notes. Distribution of percentage points for the tests are 5%, 10 %, 10%, and 20% for the tests in weeks 3, 5, 8, and 11, respectively.
Policy on Missed Quizzes
In-class tests missed without a legitimate excuse cannot be made up. If you have to miss a test (for some legitimate reason) please let me know at least a week before the test and I will make arrangements for a make up. In the event some unexpected reason beyond your control prevents you from being in class on the day of a test, contact me as soon as possible by phone or email to arrange a make up.
Policy on Late Assignments
Homework must be submitted electronically by email by midnight on the due date. Late homework is penalized at 10 %. In reality, this penalty is usually not imposed if the homework is submitted before I have completed grading homework submitted on time. Late homework will not be graded after I have completed grading the following assignment : For example, I will not grade late submissions of homework 3 if they are submitted after I am finished grading homework 2. The last assignment must be submitted on time.
Quality of Written Assignment
All work on homework will be graded for correctness first, and secondly, for quality of documentation and presentation, and efficiency. Make sure your code is readable and neatly formatted.
All work on the in-class tests must be done without any assistance from anybody, and you may not use cell phones or any electronic devices on the closed book part of the tests. On the online part of the tests, you may use lab computers, or your own laptop if you prefer. You may not email, use a cell phone, or otherwise communicate with anybody else during a test.
You may seek help from the instructor, the class preceptor, other students, and other individuals on homeworks and labs. You may not copy other people's code, or otherwise submit as your own work code that you do not understand. The goal of seeking help is to get to the place where you can do the work yourself. If you submit any work for grading: you should be prepared to explain it to me. Submission of any work that you do not understand or cannot explain will be considered plagiarism.