* CS139 - Programming Fundamentals
 * Department of Computer Science
 * James Madison University
 * @version Spring 2016

Catalog Description and Course Information

Catalog Description: Students learn fundamental problem-solving techniques using a modern programming language. This course covers the same material as CS 149, but at a slower pace for students with little or no programming experience.

Class Time: MoWe 10:10-11:00AM, ISAT/CS 236
Labs: Section 3: TuTh 8:00-9:15AM, ISAT/CS 143
Section 1: TuTh 9:30-10:45AM, ISAT/CS 143
Section 2: TuTh 11:00-12:15AM, ISAT/CS 143
Prerequisites: None
Course Web Page: http://w3.cs.jmu.edu/spragunr/CS139/
Required Textbook: Starting Out with Java: From Control Structures through Objects, 6/E. Tony Gaddis, Pearson, 2016.

You are welcome to use an earlier edition of the book. However, section numbers may change from one edition to the next. It will be your responsibility to make sure that you read the correct section.

Staff Information

Nathan Sprague

Role: Lecturer, Lab instructor for sections 1 and 2
Office: ISAT/CS 226
Office Phone: 568-3312
Email: spragunr@jmu.edu
Office Hours: http://w3.cs.jmu.edu/spragunr/schedule.html

Alvin Chao

Role: Lab instructor for section 3
Contact Information: Section 3 Info

Teaching Assistants

Teaching assistants will be available in the evenings from Sunday through Thursday. Hours and locations will be posted soon.

Contacting Us

Most questions related to course content should be asked through Piazza. You may use email or the Canvas messaging system if you need to contact one of us directly.

Course Goals

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

We will accomplish this by:

A detailed schedule of topics will be available on the course schedule page. That page will also contain links to lecture notes, assigned readings, and other course content.

Methods of Evaluation

The final course grade will be computed as follows:

In-Class Activities and Labs 15%
Quizzes 10%
Programming Assignments 25%
Midterm #1 10%
Midterm #2 15%
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 at least 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 B- or better grade to continue on to CS 159.

In-Class Activities and Labs

Many of our Monday/Wednesday class sessions will involve hands-on activities. These activities will be graded, either by taking attendance or by collecting completed work.

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 by 8:00AM the following day. Attendance is required for lab activities. Late submissions will not be accepted.

In general, it will not be possible to receive credit for missed labs or in-class activities. However, in recognition of the fact that you may have unavoidable absences, I will drop several grades in this category at the end of the semester.


Canvas quizzes will posted periodically throughout the semester. Quizzes will be made available on canvas no later than 24 hours before the submission deadline. Quizzes must be completed individually.

Programming Assignments

There will be approximately seven programming assignments over the course of the semester. Programs will be graded on the basis of correctness, documentation, and overall code quality.

Programming assignments must be entirely your own work. You may only request help from a course instructor or a teaching assistant. Any help that you receive from any source must be noted in the documentation for the relevant class(es).

You may discuss general course content with other students and friends. However, when doing so you must never refer to code written for a programming assignment, either directly or indirectly.

For full credit, completed programming assignments must be submitted by the posted 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. To use a late day you must enter the late day allocation in Canvas at the time of submission.


If you are unable to take an exam at the scheduled time because of illness or other problems, you must contact me in advance 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.

Course Policies

Academic Integrity

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

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."


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.


Many of the course materials we will use this semester (including this Syllabus) will draw heavily on materials developed during previous offerings of CS139. These materials were originally developed by David Bernstein, Nancy Harris, Chris Mayfield, and Michael Norton, among others.