This syllabus is subject to change based on specific class needs, especially the schedule. Significant deviations will be discussed in class.
In this course, students will extend the Design Recipe ideas to explore the paradigm of Object-Oriented programming (OOP) using the Java programming language. As with all programming paradigms, OOP constitutes not just a set of tools for writing programs but a way of thinking and reasoning about the structure of programs and computations in general. The Object-Oriented paradigm draws on all the computing and programming concepts students studied in the introductory sequence.
In this course students will explore the Object-Oriented paradigm for programming. Just as the shift from Functional programming in Racket to Imperative programming in C++ required a change in perspective, so to will the shift to OOP in Java. Students will explore the conceptual foundations of OOP as well as modern OOP in Java.
There is no course textbook. The standard Oracle-provided Java reference and tutorial material will be heavily utilized, including:
We may also pull material from other sources, such as “How to Design Classes” by Felleisen et. al., available at http://www.ccs.neu.edu/home/matthias/HtDC/htdc.pdf. Links to any sources will be posted on this webpage as needed.
If you would like a textbook for learning Java, I recommend
though most students are fine without a textbook.
All programs written in this course are required to compile and run on a Linux computer with Java 8 and the Eclipse IDE. You need at least Java 8; more recent versions are fine. Java 10 and Eclipse are installed on the department server, which can be accessed via a VNC desktop session. All software for this course is available free of charge from Oracle and the Eclipse Foundation.
General expectations: In short, I expect you to be respectful of others and take responsibility for your own learning. You are here to learn, so work hard and be professional.
Just attending class is not sufficient to truly learn the material. Read the text, use the resources available at Monmouth College, and go beyond the material.
If you miss class, you are responsible for everything covered on that day. College is, in some sense, your job. Take pride in creating quality work. Staple your assignments, label problems, and present your answers neatly and orderly.
Your job is to convince me that you have learned the material – show your work! Even if you do not know a particular answer, guide me through your thought process.
Late assignments: In general, late assignments will not be accepted. Exceptions may be made only for situations beyond your control. If you feel your reason is justified, schedule a meeting with the instructor to plead your case.
Academic dishonesty: Monmouth College’s official policy on academic dishonesty can be found here. You are responsible for reading and complying with that policy.
In this course, any violation of the academic honesty policy will have varying consequences depending on the severity of the infraction as judged by the instructor. Minimally, a violation will result in an “F” or 0 points on the assignment in question. Additionally, the student’s course grade may be lowered by one letter grade. In severe cases, the student will be assigned a course grade of “F” and dismissed from the class. All cases of academic dishonesty must be reported to the Associate Dean who may decide to recommend further action to the Admissions and Academic Status Committee, including suspension or dismissal. It is assumed that students will educate themselves regarding what is considered to be academic dishonesty, so excuses or claims of ignorance will not mitigate the consequences of any violations
Collaboration: We encourage you to make use of the resources available to you – it is fine to seek help from a friend, tutor, instructor, internet, etc. However, copying of answers and any act worthy of the label of “cheating” is never permissible! It is understandable that when you work with a partner or a group that the resultant product is often extremely similar. This is acceptable but be prepared to be asked to defend your collaborations to the instructor. You should always be able to reproduce an answer on your own, and if you cannot you likely do not really know the material.
One way to collaborate effectively is to avoid taking careful notes during a collaboration session. Discuss the material and sketch out possible solutions on a whiteboard. When you have finished, take a break and then write up your solutions without any help from notes or pictures from the study session. This not only helps avoid violations of academic dishonesty, it also improves your retention of the material!
When assignments are meant to be done in groups, you will be directed to turn in one set of solutions per group. Otherwise, each student must turn in an assignment representing their own work.
Electronic devices: Do not use your phone or other devices in class except where necessary. Any computer or tablet usage should be related to the course. If a device is not being used for Zoom or Socrative it should be put away and turned on silent. Other usage is rude and distracting to others.
The course workload is as follows:
Category | Number Of Assignments |
---|---|
Labs | 8–10 |
Homework | 8–10 |
Projects | 2 |
Exams | 5–7 |
Homework assignments will always either precede a lab to prepare for it or follow a lab to complete it. There will be no dedicated midterm exam, but 7 exams spaced throughout the semester. Each exam will focus primarily, but not necessarily exclusively, on the material covered since the previous exam. The final exam will include a small number of cumulative questions, and I reserve the right to include at most one cumulative question on each of the other exams.
The weekly workload for this course will vary by student but on average should be about 13 hours per week. The follow tables provides a rough estimate of the distribution of this time over different course components for a 16 week semester.
Category | Total Time | Time/Week (Hours) |
---|---|---|
Lectures+Labs | 4 | |
Homework | 48 | 3 |
Exam Study | 16 | 1 |
Projects | 48 | 3 |
Reading+Unstructured Study | 2 | |
13 |
Lab and homework assignments are graded on a simple 3 point scale. Grades are marked with, in decreasing order, a check-plus, check, or check-minus. Your final grade for these two assignment categories is then based off the respective averages and determined by the following chart. Notice this chart lists the minimum average needed to achieve a particular letter grade.
Assignment Avg. (Min) | Letter Grade |
---|---|
2.8 | A |
2.75 | A- |
2.5 | B+ |
2.25 | B |
2 | B- |
1.75 | C+ |
1.5 | C |
1 | C- |
0.75 | D |
0.5 | F |
Your final grade is based on a weighted average of particular assignment categories. You can estimate your current grade based on your scores and these weights. You may always visit the instructor outside of class to discuss your current standing.
Category | Weight |
---|---|
Exams | 40% |
Projects | 25% |
Homework | 12.5% |
Labs | 12.5% |
Participation | 10% |
This courses uses a standard grading scale. Assignments and final grades will not be curved except in rare cases when its deemed necessary by the instructor. Percentage grades translate to letter grades as follows:
Score | Grade |
---|---|
94–100 | A |
90–93 | A- |
88–89 | B+ |
82–87 | B |
80–81 | B- |
78–79 | C+ |
72–77 | C |
70–71 | C- |
68–69 | D+ |
62–67 | D |
60–61 | D- |
0–59 | F |
You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge*.
The following tentative calendar should give you a feel for how work is distributed throughout the semester. Assignments and events are listed in the week they are due or when they occur. This calendar is subject to change based on the circumstances of the course.
Date | Topic | Assignment |
---|---|---|
Mon 01/14 | Intro and Programming Environment | Read this and this |
Wed 01/16 | Procedural Java | Read Google’s style guide (sections 3-7), these notes, and this Git tutorial |
Wed 01/16-Lab | Basic Java + Git | Lab 1 |
Fri 01/18 | Basic Object-Oriented Programming | Read notes |
Mon 01/21 | Class Hierarchies and UML | Read notes |
Wed 01/23 | Common Methods and Comparing Objects | |
Wed 01/23-Lab | Media Hierarchy | Lab 2 |
Fri 01/25 | Class Relationships | Read this and notes |
Mon 01/28 | Containment vs. Extension | Read notes |
Wed 01/30 | (Class Cancelled) | Exam 1 out |
Wed 01/30-Lab | Media Hierarchy II | Lab 3 |
Fri 02/01 | Lists, ADTs and PDAs | Read notes |
Mon 02/04 | Trees and Tree Traversals | Read notes |
Wed 02/06 | Static Factories | |
Wed 02/06-Lab | Basic Binary Tree PDA | Lab 4 |
Fri 02/08 | Huffman Codes | Read notes |
Mon 02/11 | Binary Search Trees | |
Wed 02/13 | BST Delete | |
Wed 02/13-Lab | BST PDA Implementation | Lab 5 |
Fri 02/15 | Conc Lists | Exam 2 out, Watch this, (slides) |
Mon 02/18 | (Class Cancelled - Conference) | |
Wed 02/20 | (Class Cancelled - Conference) | |
Wed 02/20-Lab | (Lab Cancelled - Conference) | |
Fri 02/22 | Priority Queues | Exam 2 due |
Mon 02/25 | Binary heaps | |
Wed 02/27 | Generics | |
Wed 02/27-Lab | Lab 6 | |
(Fri 03/01) | (Exam day for half-semester courses – no class) | |
(03/04–03/08) | (Spring break) | |
Mon 03/11 | SOLID Design Principles | |
Wed 03/13 | Intro to Design Patterns | |
Wed 03/13-Lab | Huffman Encoder/Decoder | Project 1 out |
Fri 03/15 | (Exam 3) | |
Mon 03/18 | MVC: Model - Tic-Tac-Toe | |
Wed 03/20 | MVC: Controllers (and mocks) | |
Wed 03/20-Lab | (Work on Project 1) | |
Fri 03/22 | Lambda Functions | |
Mon 03/25 | Project 1 Questions | |
Wed 03/27 | Intro to JavaFX | |
Wed 03/27-Lab | Toy JavaFX Application | Lab 7, Setup help |
Fri 03/29 | More JavaFX | Project 1 due |
Mon 04/01 | MVC: Views in JavaFX | |
Wed 04/03 | Observer pattern | |
Wed 04/03-Lab | MVC Temperature Converter | Lab 8 |
Fri 04/05 | (Exam 4) | |
Mon 04/08 | Types of Design Patterns, Builder | Exam 5 out |
Wed 04/10 | Adapter | |
Wed 04/10-Lab | Squares Animation | Lab 9 |
Fri 04/12 | Adapter II: ViewModel | |
Mon 04/15 | Strategy | |
Wed 04/17 | Game of Life | Read Critiques |
Wed 04/17-Lab | (Project 2 free lab) | Project 2 out |
(Fri 04/19) | (Easter break) | |
(Mon 04/22) | (Easter break) | |
Wed 04/24 | Critique of OO | |
Wed 04/24-Lab | (Project 2 free lab) | |
Fri 04/26 | Design Pattern Presentations | |
Mon 04/29 | Design Pattern Presentations | |
Wed 05/01 | Review | |
Wed 05/01-Lab | (Project 2 free lab) | |
Wed 05/08 8:00 AM | Final Exam |
The Teaching and Learning Center offers FREE resources to assist Monmouth College students with their academic success. Programs include supplemental instruction for difficult classes, drop-in and appointment tutoring, and individual academic coaching. The TLC is here to help students excel academically. TLC services are not just for struggling students, but can assist all students to get better grades, practice stronger study skills, and manage time.
Make an appointment with Kam Williams, Director of Academic Support Programs and Student Disability Services, at the TLC on the 2nd floor of Poling Hall. The department phone number is 457-2257, or contact the department online at http://ou.monmouthcollege.edu/academics/teaching-learning-center/. They can also be reached via email at: tlc@monmouthcollege.edu
Disability Support Services: If you have a disability or had academic accommodations in high school or another college, you may be eligible for academic accommodations at Monmouth College under the Americans with Disabilities Act (ADA). Monmouth College is committed to equal educational access.
Students can meet with Kam Williams about accommodations at the Teaching and Learning Center (TLC). The TLC is located on the 2nd floor of Poling Hall. For more information, call 309-457-2257 or connect online at http://ou.monmouthcollege.edu/life/disability-services/default.aspx.