CMSC 131-040X


CMSC 131-040x, Fall 2017

Taught MWF 3-4pm by William Pugh


Introduction to Programming in Java: An Interdisciplinary Approach (2nd Edition), by Robert Sedgewick, Kevin Wayne


CMSC 131 is designed to get you started being comfortable and capable writing programs. It is open to people with no previous programming experience, and we will strive very hard to make it appropriate for such students. We also understand that some students taking 131 have some previous programming experience, and we will work to provide those students with interesting and challenging learning experiences.

I’m going to be trying to do some new and innovative things in CMSC 131 this fall. I hope these will be productive and useful, but things might be a little bumpy. Here are some of the key new things I’m going to be trying to do:

We are going to spend about the first month of the course working with Processing, a programming environment designed to make it easy to get started but that also allows you to create amazing artistic creations. Once you’ve learned the basics, we will transition to programming in Java 8 using the Eclipse IDE. This should be an easy transition, because Processing is really just a wrapper around Java, and the syntax and language features in Processing are exactly the same as in Java.

The class will be taught in the large collaborative auditorium in the Saint John Center, which is the same basic design as the Antonov Auditorium in the Iribe Center (opening for Spring 2019 classes). This a tiered auditorium, but at each level there are two rows of seats, and the students in the front row on each level can pivot their chairs 180 degrees to be face to face with the students sitting in the row behind them.

Participation in active learning activities during lectures is expected and counts as part of your grade.

Syllabus and Policies

Please read the campus policies on courses, which describe policies that apply to this course.

Forums, communication

At various times,. we will use several different web sites for communication about the course:

Please access all of those pages; as we find what works best, we may move some functions to/from the elms page for the course.

Please do not call or message any of the instructors or TAs about the course unless you have been asked to do so.

You are discouraged from emailing the instructors or TAs with questions about course content or programming assignments. Instead, ask a question of the instructors via piazza. If you need to ask a specific question about your code, or how something was graded, use a private question to instructors. It will be easier for the TA/instructor on duty to response to your question, and after it is answered the other TAs and instructions will see that it has been handled.


We’ve got a lot of undergraduate TAs for the course; 32 to start, perhaps more. In some ways, these TAs may be better able understand your challenges in mastering this material, as they have have only mastered the material a year ago themselves (compared with the instructors, who might have first mastered the material decades ago).

We’d like to believe that all of our TAs are uniformly great, but with this many TAs and students I expect we will find things we want to improve, and we’d like to find things to correct early rather than waiting until the end of the semester. We’ve provided a form to allow you to evaluate the TAs; only the instructors will be able to see your responses. Please rate them on their professionalism, knowledge, courtesy and understandability; not whether they solved your problem.

Office hours

To be posted.


Each student will be assigned one TA as their coach. We have too many students for any one person to get to know all the students, so we have assigned some of our TAs as coaches. Your coach will follow your progress, and give you encouragement and acclamations as appropriate. If you stumble or don’t turn in an assignment, your coach will check in with you to see what happened and how we can get you back on track.

Grading, midterms and exams

Programming projects

There will be projects due every week starting the week of September 4th. Some of these projects will be very small and only have a small weight on your grade, others will require more effort, be assigned two weeks or more in advance, and have a greater impact on your grade. The points for each project will be announced at the time the projects are assigned. Grading will depend on functional correctness and may include points for code style and quality, documentation and test cases written by the student.

Projects should be submitted by the assigned project deadline. Projects can be submitted late, up to 24 hours after the deadline. Grades from late submissions are multiplied by 0.8; If both on-time and late submissions are made, we will use whichever gives you the higher score.


Attendance is expected at all lectures. You need to be present at lecture to answer clicker questions which count towards your grade. Answering your clicker questions without being present in lecture is academic dishonesty (and helping someone not present answer clicker questions counts as facilitating academic dishonesty).

Attendance at lab/discussion sections is recommended, but not graded. There will be material assigned before each lab section. If you complete the material, feel confident in your understanding of it, and are otherwise doing well in the course, you may not need to attend the lab session. However, the lab sessions are also an additional time to get help from the TAs and, on open projects, from other students; you are encouraged to make use of this opportunity.

Excused absences

All absences from lecture should be entered into the CS department grades server, before the absence if possible.
  Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness.  Each note must contain an acknowledgment by the student that the information provided is true and correct.  Providing false information to University officials is prohibited under Part 10(j) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and may result in disciplinary action.
The self-documentation may not be used for the Major Scheduled Grading Events you define in your syllabus (e.g., midterm exams, project presentations, etc.) and it may only be used for only 1 class meeting (or more, if you choose) during the semester.  Any student who needs to be excused for a prolonged absence (2 or more consecutive class meetings), or for a Major Scheduled Grading Event, must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the timeframe that the student was unable to meet academic responsibilities. In addition, it must contain the name and phone number of the medical service provider to be used if verification is needed. No diagnostic information will ever be requested.

Course grades

Final course grades will include +/- grades. Given the amount of new material in this offering of the course, we can’t make any commitments as to what numeric grades translate into specific letter grades.

Academic Honesty

All individual assignments/exams must be done individually. Student may not post their code (this includes places like github). Please visit the webpage of the Student Honor Council for a detailed explanation of what constitutes academic dishonesty. Note that it includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. In short, all submitted work must be your own.

Cases of academic dishonesty will be dealt with harshly. Each such case will be referred to the University's Office of Judicial Programs. If the student is found to be responsible of academic dishonesty, the typical sanction results in a special grade "XF", indicating that the course was failed due to academic dishonesty. More serious instances can result in expulsion from the university. If you have any doubt as to whether an act of yours might constitute academic dishonesty, please contact your one of the course instructors.

Academic accommodations

Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Accessibility and Disability Services (ADS, formerly DSS) within the first TWO weeks of the semester.

Course evaluations

Course evaluations are important and that the department and faculty take student feedback seriously.  Students can go to the www.courseevalum.umd.edu to complete their evaluations.

Web Accessibility