CSC 161 Computer Science II

Course Description

A second course in object-oriented programming, emphasizing design and implementation of efficient, well-constructed programs using Java. Topics include inheritance and polymorphism; stream and file I/O; exception handling; algorithms for searching and sorting; recursion; graphical user interfaces; and more advanced data structures, such as linked lists, stacks, queues, and the Java collection classes. Extensive programming required. May not be taken after higher level programming class.

Instructor Accessibility

My office is in STEM 150. You can stop by in person, or call my office at 630-637-5174. You can email me at Spring term office hours are Mondays and Wednesdays 2:00-3:00 pm; Fridays 12-1:00pm; Tuesdays and Thursdays 2:50-3:50 pm. I am also available by appointment.

Course Textbook

The class text is Tony Gaddis and Godfrey Muganda, Starting Out With Java: From Control Structures to Data Structures, Pearson, 2016.

Schedule of Topics

Here is a tentative schedule for textbook coverage. Read ahead so you will get more out of the lectures.

Week of Term Chapters in Class Text Topics Covered
Week 1 Chapters 10 and 12 Review. Classes and Inheritance, Introduction to GUI
Week 2 Chapters 10 and 12 Classes and Inheritance, Introduction to GUI
Week 3 Chapter 15 Introduction to JavaFX
Week 4 Chapter 16 Recursion
Week 5 Chapter 17 Sorting and Searching
Week 6 Chapter 17 Sorting and Searching
Week 7 Chapter 19 Java Collections
Week 8 Chapters 19 and 20, 21 Maps, Lists, Stacks and Queues
Week 9 Chapter 20 Linked Lists
Week 10 Chapter 22 Binary Trees

Course Grading

There will be one quiz, lots of laboratory assignments, and tests. These elements will be used to compute your grade using the following weights:

Quiz 5 %
Lab Assignments / Homework 40 %
2 Tests 30 % at 15% each
Final Exam 25 %

The quiz will be on Friday of Week 3, and tests will be will be on Wednesday of Weeks 5 and Friday of Week 8, and the final exam will be in Week 11, following the College schedule of exams.

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 Assignments

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. Be sure to consult the standard for code documentation posted on the course website.

Ethics Statement

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. If there are online 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.

While it is OK to seek help from another student in the class when working on your programming projects, you must still write your own code. Programs that differ only in the names of variables will be considered to plagiarized. In that case, both students will receive a 0 on the assignment and they will be reported to the dean.