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 5: MWF 2:30-3:20PM, ISAT/CS 243 |
Section 6: MWF 3:30-4:25PM, ISAT/CS 243 | |
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, 6/E. Tony Gaddis, Pearson, 2016. |
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.
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.
At the conclusion of this course, students will be able to
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:
Reading Quizzes, Labs, and Peer Instruction | 15% |
Programming Assignments | 20% |
Midterm Exams | 40% |
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.
You should complete all assigned readings before each class session. I will post occasional reading quizzes to Canvas. These quizzes will be due before the beginning of class.
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 at 2:30PM on 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.
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 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.
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. Looking at another students code, or allowing another student to look at your code, does not automatically violate the collaboration policy. 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.
All exams will be cumulative with an emphasis on material covered since the previous exam.
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.
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.
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."
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 15% penalty. Assignment submitted within 48 hours of the deadline will be subject to a 30% 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 48 hours late.
Students are responsible for adding and dropping courses via MyMadison. Please consult the academic calendar for exact deadlines.
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.
This class will operate in accord with JMU's inclement weather policy available at http://www.jmu.edu/JMUpolicy/1309.shtml
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.