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.
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 email@example.com. 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.
The class text is Tony Gaddis and Godfrey Muganda, Starting Out With Java: From Control Structures to Data Structures, Pearson, 2016.
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|
There will be one quiz, lots of laboratory assignments, and tests. These elements will be used to compute your grade using the following weights:
|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.
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.
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.
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.
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.