Course Information and Catalog Description

Students use various advanced problem-solving strategies to develop algorithms using classes and objects. Students also learn how to implement and use elementary data structures, including character strings, records, files, stacks and queues.

Meeting Time: Lecture, Both Sections: T/Th 2:00-3:15, ISAT/CS 236
Lab, Section 3: M/W 1:25-2:15, ISAT/CS 248
Lab, Section 4: M/W 2:30-3:20, ISAT/CS 248
Prerequisites: CS 139 or equivalent with a grade of "C" or better.
Course Web Page: http://w3.cs.jmu.edu/spragunr/CS239/
Required Resources: Starting Out with Java: From Control Structures through Objects, 4/E. Tony Gaddis, Addison-Wesley, 2010.
Turning Technology Clicker (Available from the JMU Bookstore)

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

You may use email to contact me. However, I encourage you to use Piazza to ask content related questions. 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. While the focus in CS139 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. The course will also provide an introduction to the implementation and use of elementary abstract data types including linked lists, stacks and queues.

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 and a final exam, laboratory assignments, in-class activities, and programming assignments. Assignment specifications and due dates will be posted to the course schedule page. The final grade will be computed as follows:

Lab, Quizzes, and In-Class Activities 15%
Programming Assignments 30%
Exam 1 15%
Exam 2 15%
Final Exam 25%

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

Monday/Wednesday class sessions will be dedicated to structured Laboratory exercises. Laboratory assignments will often 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 class on the following lecture day. For most lab assignments you will be allowed to work in groups of no more than three students.

Tuesday/Thursday class sessions will include occasional short lectures as well as in-class activities. Most class sessions will include a graded component. In particular, we will make regular use of a clicker response system. Classes will begin with a clicker-based readiness quiz covering the assigned reading. Class discussions will be structured around additional clicker questions designed to highlight challenging or important concepts. Readiness quizzes will be graded for correctness while concept questions will be graded based on participation.

In general, it will not be possible to make up missed in-class activities. However, in recognition of the fact that you may have some unavoidable absences, I will drop four lab/class-activity/clicker-response grades.

Programming Assignments

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

Exams

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

Course Policies

Attendance and Participation

Attendance is not required. However, 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. It is not a violation of the honor code to discuss assignments with other students in general terms. However, your programming assignments and exams must be written entirely by you, based on your own understanding of the material. 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."

A key component of academic integrity is giving credit where credit is due. If you receive assistance, either from teaching assistant or from some other source, you must acknowledge that fact in the documentation of your submission. If in doubt about what is allowed, ask me.

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. All programming assignments will be due at 11:00PM on Sunday evenings as indicated on the course schedule page. Late programming assignments lose 20% in value per weekday late (hence assignments are worth 0 after 5 weekdays).

Adding/Dropping

Students are responsible for adding and dropping courses via e-campus. The last day to add a course for Spring 2012 is January 26 (signatures required after January 17). The last day to drop a course for the Spring 2012 semester with a "W" grade is March 16.

Disability Accommodations

If you need an accommodation based on the impact of a disability, you should contact the Office of Disability Services (Wilson Hall, Room 107, 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.