Course Information and Catalog Description

Students use advanced problem-solving strategies to develop algorithms using classes and objects and techniques such as recursion, exceptions and file I/O. This course also focuses on designing small applications and effective testing strategies.

Meeting Location: Fully Online
Meeting Time: Section 3: MWF 10:30-11:20AM
Section 4: MWF 11:45AM-12:35PM
Prerequisites: A grade of "B-" or better in CS 149 or equivalent.
Course Web Page: http://w3.cs.jmu.edu/spragunr/CS159/
Required Textbook: Programming in Java
by Roman Lysecky and Adrian Lizarraga
https://www.zybooks.com/catalog/programming-in-java

Instructor Information

Name: Dr. Nathan Sprague
Email: spragunr@jmu.edu
Office Hours: http://w3.cs.jmu.edu/spragunr/schedule.html

Questions related to course content should be asked through Piazza. The advantage of Piazza is that I can address common questions in one location, instead of answering the same question multiple times via email. I also encourage you to respond to each others' questions on Piazza. This provides everyone with more timely responses and formulating an answer provides a learning benefit to you as well. You may use email if you need to contact me directly.

My office hours this semester will be entirely online through Zoom. The meeting link will be made available through Canvas. If you need to meet with me outside of my posted hours, email me to make an appointment.

Course Content and Goals

This course builds on the skills learned in CS149. While the focus in that course is on learning to use basic programming constructs such as variables, loops, methods, and conditional statements, the focus in this course is on problem solving within the object-oriented programming paradigm. We will learn object-oriented design techniques as well as object-oriented language features such as inheritance and polymorphism.

Goals

At the conclusion of this course, students will be able to

A detailed schedule of topics is available on the course schedule page.

Methods of Evaluation

Course grades will be based on two midterms, a final exam, laboratory assignments, in-class activities, quizzes and programming assignments. Assignment specifications and due dates will be posted to the course schedule page. The final grade will be computed as follows:

Readings, Quizzes, Labs, Peer Instruction, and in-class activities. 15%
Programming Assignments 25%
Midterm #1 15%
Midterm #2 20%
Final Exam 25%

Letter grades will be assigned using the scale A=90-100, B=80-89, C=70-79, D=60-69, F=0-59, with potential minor adjustments after considering the overall performance of the class and actual distribution of numeric scores. I will use "+" and "-" grades at my discretion. I do not assign WP or WF grades except under extraordinary circumstances.

NOTE: A student that that does not earn 60% of the points on the final exam will receive a letter grade no higher than a C- for the course.

Reading

Most assigned readings will include embedded quizzes or exercises. These exercises will be included in your course grade.

Lab Activities

Some class sessions will be dedicated to structured Laboratory exercises. Laboratory assignments may take longer than a single class period. Unless otherwise specified, lab assignments will be due by 11:00PM on the day of the activity. Attendance is required for lab activities. For most laboratory assignments you will be allowed to work in groups of no more than three students.

In general, it will not be possible to make up missed labs or in-class activities. However, in recognition of the fact that you may have some unavoidable absences, I will drop at least two lab/class-activity grades at the end of the semester.

Peer Instruction

Peer Instruction combines mini-lectures with multiple-choice questions that target common misconceptions. You will use a clicker-like app known as Socrative to respond to each question twice. The first response is ungraded, and will be followed by a short discussion with your peers. You will then respond again individually for a grade (2 points just for answering, 3 points if your answer is correct) and we will discuss the results.

Programming Assignments

There will be approximately 6 programming assignments over the course of the semester. There will be opportunities to get help on programming assignments from the lab assistants and from the instructor. I encourage you to start the projects early enough to take advantage of those resources. Programs will be graded on the basis of correctness, documentation, and overall code quality. All submissions must conform to the CS159 Style Guide.

Under the collaboration policy for this course, it is not considered a violation of the honor code to discuss programming assignments with other students at a conceptual level. However, all of the work that you submit must be written by you, based on your own understanding of the material. If I find evidence that solutions to programming assignments have been copied, all parties involved will be subject to prosecution under the honor code. If you have any questions about the limits of appropriate collaboration, please ask me.

Exams

All exams will be cumulative with an emphasis on material covered since the previous exam.

Course Policies

Synchronous Meetings

This course will involve synchronous online instruction. That means you are expected to (virtually) attend class at the posted time. You will need the ability to participate fully in a video meeting. This includes a space where you can speak and be heard without excessive background noise and sufficient Internet connectivity to send and receive video.

Synchronous class periods will involve a mix of lecture, quizzes and group work. My hope is to create an environment that is as close as possible to being together in the classroom, collaboratively engaging with course content. Most classes will involve a graded interactive component.

Camera Use

I encourage you to turn your camera on while interacting in class. There are several reasons for this: While I encourage you to have your camera on when possible, there is no requirement that you keep your camera on at all times. I understand that there may be times when camera use may be inconvenient or inappropriate.

Recording Class Sessions

I will be recording some class sessions. These will be posted to YouTube as "unlisted" videos. In the interest of privacy, it is prohibited to take screen shots during class sessions or to redistribute class videos.

Professional Conduct

The ACM Code of Ethics and Professional Conduct (https://www.acm.org/code-of-ethics) forbids discrimination and harassment of all types. If you feel someone is violating these principles (e.g., by making inappropriate or demeaning remarks), it is your responsibility to take action by informing me or, if you feel comfortable doing so, addressing the individual directly. I will do my best to preserve your confidentiality while addressing the issue.

Diversity and Inclusion

Learning environments should be built on mutual respect and support a diversity of thoughts, perspectives, experiences, and identities. Please advise me regarding any concerns or personal circumstances (including your name’s proper pronunciation, any name or pronouns not reflected on MyMadison, or significant extracurricular commitments) that might be relevant to your fullparticipation in this course.

Attendance and Participation

Regular attendance and fully engaged participation is expected. Your grade will be partially based on in-class exercises and quizzes, so attendance will affect your grade.

Academic Integrity

It is expected that your work in this course will comply with the provisions of the JMU honor code: http://www.jmu.edu/honor/code.shtml.

Students who violate the Honor Code will receive a reduced or failing grade in the course. Other penalties may be imposed, and all violations will be reported to the Honor Council. Automated tools may be used on any assignment, at any time, to detect inappropriate collaboration and to determine the originality of submissions.

A key component of academic integrity is giving credit where credit is due. If you receive assistance, either from another student or from some other source, you must acknowledge that fact. To that end, all programming and homework assignments submitted for this course must include a statement that acknowledges any assistance you received and must contain the statement: "This work complies with the JMU Honor Code."

Missed and Late Assignment Policy

If you are unable to take an exam at the scheduled time because of illness or other problems, you must contact me beforehand to arrange to take the exam at a different time. Failure to make prior arrangements for a missed exam will result in a grade of 0 for the exam.

Completed programming assignments must be submitted through Autolab before the assignment deadline. Late assignments will not be accepted for credit.

Except under extraordinary circumstances, I will not provide extensions for illnesses, extracurricular obligations, etc. Instead, you will have three "late days" which may be applied to programming assignment submissions (with possible exceptions for projects due at the end of the semester or immediately before exams). The use of a late day allows you to extend the deadline for an assignment by 24 hours. No more than two late days may be applied to a single assignment.

Adding/Dropping

Students are responsible for adding and dropping courses via MyMadison. Please consult the registrar's page of dates and deadlines for exact deadlines.

Disability Accommodations

If you need an accommodation based on the impact of a disability, you should contact the Office of Disability Services (Student Success Center, Room 1202, www.jmu.edu/ods, 540-568-6705) if you have not previously done so. Disability Services will provide you with an Access Plan Letter that will verify your need for services and make recommendations for accommodations to be used in the classroom. Once you have presented me with this letter, you and I will sit down and review the course requirements, your disability characteristics, and your requested accommodations to develop an individualized plan, appropriate for this course.

Inclement Weather Policy

This class will operate in accord with JMU's inclement weather policy available at http://www.jmu.edu/JMUpolicy/1309.shtml

Religious Observation Accommodations

I will give reasonable accommodations to students requesting them on grounds of religious observation. If you require such accommodations you must notify me at least two weeks in advance.