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 Time: Section 2: MWF 1:25-2:15PM, HHS 2208
Section 3: MWF 2:30-3:20PM, HHS 2208
Prerequisites: A grade of "B-" or better in CS 139 or CS 149 or equivalent.
Course Web Page: http://w3.cs.jmu.edu/spragunr/CS159/
Required Textbook: Starting Out with Java: From Control Structures through Objects, 5/E. Tony Gaddis, Pearson, 2012.

Instructor Information

Name: Dr. Nathan Sprague
Office: ISAT/CS 226
Office Phone: 568-3312
Email: spragunr@jmu.edu
Office Hours: http://w3.cs.jmu.edu/spragunr/schedule.html

Most questions related to course content should be asked through Piazza. You may use email if you need to contact me directly. Please don't contact me through the Canvas messaging system.

You are welcome to call or stop by my office any time, with the understanding that I may or may not be available outside of my posted office hours.

Course Content and Goals

This course builds on the skills learned in CS139/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:

Labs, Quizzes, and In-Class Activities 20%
Programming Assignments 25%
Midterm Exams 30%
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 D+ for the course. You must achieve a C- or better grade to continue on to CS 240.

Lab, Homework, and Class-Participation

Some class sessions will be dedicated to structured Laboratory exercises. Laboratory assignments may take longer than a single class period, so be prepared for homework on lab nights. Unless otherwise specified, lab assignments will be due at the start of the following day of class. Attendance is required for lab activities. For most laboratory assignments you will be allowed to work in groups of no more than three students.

Programming Assignments

There will be 5-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.

Exams

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

Course Policies

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

Your work in this course must comply with the provisions of the JMU honor code: http://www.jmu.edu/honor/code.shtml.

You must work on programming assignments entirely on your own. You may only request help on programming assignments from the course instructor or the lab assistant (if there is one). If you receive such help you must make note of it in the documentation for the relevant class(es).

You may request help on general topics from other students and friends. However, when doing so you must never refer to code written for the programming assignment, either directly or indirectly.

Representing someone else's work as your own, in any form, constitutes an honor code violation. It is also a violation of the honor code to "render unauthorized assistance to another student by knowingly permitting him or her to see or copy all or a portion of an examination or any work to be submitted for academic credit."

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.

For full credit, completed programming assignments must be submitted through Web-CAT before the assignment deadline. Assignments submitted within 24 hours of the deadline will be subject to a 25% penalty. Assignment submitted within 48 hours of the deadline will be subject to a 50% penalty. No credit will be given for assignments submitted more than 48 hours late.

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. You may apply multiple days to a single assignment or allocate them to different assignments. Late days may not be used to submit assignments more than 96 hours (four days) late.

Adding/Dropping

Students are responsible for adding and dropping courses via MyMadison. Please consult the academic calendar 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.