CMPS 5J - Spring 2017 - Introduction to Programming in Java

Instructor Information

Dustin Adams, PhD
Office: E2 249B
Office Hours: TBD

Teaching Assistants

The first name is the lead TA for that section. Contact that person with administrative questions or to have a CrowdGrader grade reviewed. (Their emails are below the lab list.)
Times, locations, and TAs coming soon.

Individual Tutoring

Information coming soon.

Online Support Systems

We will be using four online support systems.

Top Hat

We will be using the Top Hat ( classroom response system in class. You will be able to submit answers to in-class questions using Apple or Android smartphones and tablets, laptops, or through text message. You can visit the Top Hat Overview ( within the Top Hat Success Center which outlines how you will register for a Top Hat account, as well as providing a brief overview to get you up and running on the system.

An email invitation will be sent to you by email, but if don’t receive this email, you can register by simply visiting our course website: link coming soon
Note: our Course Join Code is (Join code coming soon)

Top Hat will require a paid subscription, and a full breakdown of all subscription options available can be found here: 

Should you require assistance with Top Hat at any time, due to the fact that they require specific user information to troubleshoot these issues, please contact their Support Team directly by way of email (, the in app support button, or by calling 1-888-663-5491.


The eCommons course managment system is where you will find the class schedule (syllabus), all course assignments, complete homework in the form of online "quizzes", submit lab assignments, submit your programming logs for the programming assignments, and find all of your scores collected in one place.


CrowdGrader is where you will submit the source code for your programming assignments and where you will go to review the submissions of your classmates.

This term we will be using Piazza for class discussion.  The system is highly tailored to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email


Find our piazza page at: Link coming soon


Lab Information

Lab attendance counts for 5 percent of the grade. It is strongly recommended that you plan to attend lab regularly. This is a time to complete the short lab exercises due most weeks, to work on your programming assignments with your partner (see below), get help from the teaching assistant and/or tutors, and get help from other members of the class. Do NOT expect to generally be able to complete the programming assignments during just your assigned lab section. You should plan to either attend multiple sections or arrange to meet with your partner outside of scheduled lab time. You cannot learn to program without doing it, and lab time is an excellent time to practice with someone around to help you.

You are guaranteed a seat on your assigned lab day, but are welcome to attend any lab section on a first come, first serve basis.There will be no makeups for missed labs, however, everyone gets one free day. There are 9 "weeks" during which lab attendance is taken. If you attend your assigned lab 8 of those 9 weeks, you will receive 100% of the lab attendance credit. Although attendance will not be taken, labs will meet the first "week" and there is work for you to complete during lab. Note that the lab "weeks" are skewed (not Monday-Friday) for the first 7 weeks to accommodate the multiple Friday holidays and the fact the first class is on a Friday. See the lab schedule for details.


Learning Processing. D. Shiffman 2nd Edition


Your grade will be the best of the following two (you don't have to choose).

  • Lab attendance (5%) (see the Lab Attendance Policy
  • Class Participation (5%) - this portion of the grade can be substituted by an in-depth programming assignment (which will be presented towards the end of the quarter)
  • Programming assignments (10%).
  • Homework (review questions) and Lab assignments (20%).
  • Bi-Weekly quizzes (best four out of five) (30%).
  • Final (30%).
  • OR
  • Lab attendance (5%) (see the Lab Attendance Policy
  • Class Participation with (5%) - this portion of the grade can be substituted by an in-depth programming assignment (which will be presented towards the end of the quarter)
  • Programming assignments (10%).
  • Homework (review questions) and Lab assignments (20%).
  • Bi-Weekly quizzes (best four out of five) (20%).
  • Final (40%).

A minimum of 50% on each component of the grade is necessary but not sufficient to pass this class. This means, if you receive less than 50% on any one of these you will not pass, however, just because you score at least 50% on each does not imply that you will necessarily pass. You cannot pass this class if you do not do the programming assignments, or do not do the review questions, or score less than 50% on the final or quizzes.

Opting out of the final exam

In addition to the two variations above, any student that scores 80% or more on average for all five quizzes may elect to have their quiz scores used as their final exam score. Note that the quiz grade is normally computed by dropping the lowest quiz score (best four out of five) but that for opting out of the final all five quiz scores will be used (not dropping of the lowest). To elect this option simply send an email to the instructor at least 24 hours before the final exam. You are also advised to get email confirmation from the instructor that indeed your 5 quiz average is above 80%.

If you take the final exam, it will be scored and counted. You cannot make this decision after seeing or taking the final exam.

Working Together:

The programming projects can optionally be done in two person teams following the pair programming guidelines.

You may freely give and receive help with the computer facilities, editors, debugging techniques, the meaning and proper use of Java constructs, built-in functions, etc.. You may discuss your design or implementation in general terms with students other than your partner but you should not view another person/pair's program, or allow someone (other than your partner) to view any part of your program, prior to the due date for that assignment. Obviously, copying (via email or any other form including looking at their code while typing yours) any part of another person/pair's program, or allowing your program to be copied is not permitted. A program, Moss, will be in use to detect copying. If you have any questions on this important point, please see me.

If you should happen to use some actual code you got from someone other than your partner (such as the TA or some tutor or a previous partner or your room mate or on online resource) you MUST credit that person with a comment preceding the code in question (see "Giving Credit Where Credit is Due"). This could also come up if you were discussing a program with another student from the class and ended up writing some code on scrap paper or a white board. The safe and proper thing to do in this situation would be to insert a comment in your program where that code snippet is used. At worst you might lose a few percentage points if it was a really key part of the assignment. Failure to draw attention to the code snippet with a comment could result in a charge of academic dishonesty. Give credit where credit is due.

It is highly recommended that you read

All I Really Need to Know about Pair Programming I Learned In Kindergarten

Academic Dishonesty:

Any confirmed academic dishonesty including but not limited to copying programs or cheating on exams, will constitute a failure of the computer ethics portion of this class and may result in a no-pass or failing grade. You are encouraged to read the campus policies regarding academic integrity.

Programming Projects:

Everyone should submit their own programming log by pasting the log into the text area provided in ecommons for the assignment. The log should be created by copying and modifying as appropriate, one of the template logs from log templates.

CrowdGrader will not accept any late assignments. Late programs will NOT be accepted. Period. You can submit repeatedly in CrowdGrader so don't wait to the last minute. Your latest submission is the one that will be graded. In addition, you and your partner should both submit the files in CrowdGrader. Whichever is submitted last will be the one that is graded.

The programs you submit this quarter should be original programs created just for this class. It is NOT acceptable to submit programs that you (or someone else) has written previously. As indicated above, if you incorporate any portions of programs written by someone else, or by you for a prior course or assignment, then that should be clearly noted in the program via comments. (See "Giving Credit Where Credit is Due".)


There will be a quiz approximately every other week. See the class Schedule for details.

If you qualify for classroom accommodations because of a disability, please get an Accommodation Authorization from the Disability Resource Center (DRC) and submit it to your instructor (Dustin Adams) in person outside of class (e.g., office hours) within the first two weeks of the quarter. Contact DRC at 459-2089 (voice), 459-4806 (TTY), or for more information on the requirements and/or process.