CMSC 131 - Sections 010x - Fall 2019
Object Oriented Programming I

Evan Golub (
Please put [131] in the subject.

My office hours in IRB 1210, announced weekly here:
Mon 12/09: 12:30pm-2:30pm

Reminder: Final Exam is Thursday, December 12th at 4pm in CHM 1407
Please bring your University ID card to swipe in.

The site is open until December 10th.

12/10: Added a few more questions and links to recursion practice on the study questions page.

12/09: Exam #3 points: P1(13), P2(11), P3(5+10), P4(3+9), P5(9).

12/08: In case the shuffle description seems ambiguous, here's the text of an additional JUnit test you can run at home.

11/07: Project 7 is posted.

11/13: For P6, the release test named "testFiveOfAKindMore" also tests whether you correctly deal with certain four-of-a-kind scenarios. The test was meant to be named "testFourAndFiveOfAKindMore" but I forgot to rename the test as I was developing the tests. The test case does test what I wanted, but I wanted to note the naming here for proper feedback if you don't pass that test.

11/07: Project 6 is posted.

11/06: The Pitch Proposal assignment has been posted.

11/03: Exam #2 points: P1(10+4), P2(6+7), P3(10), P4(15), P5(15).

10/28: In the CubicPoly, note that the description says to make the instance fields:

   private DoubleWithAppx a;
   private DoubleWithAppx b;
   private DoubleWithAppx c;
   private DoubleWithAppx d;
You can do this simply by removing the final keywords in the starter file. Consider why they can't be final.

10/24: Project 5 is posted.

10/18: As I was making changes to the P4 description I had an nconsistency for grayscale. The formula I gave is the one to use. If you used one based on the written description for your ELMS upload, that's fine but for the submit server testing it must be the formula that was provided.

10/16: As I mentioned in class, I was trying something a little different with the lab and lecture approach for the datatype topic. Just to avoid rushing, I'm making the lab open longer for submitting for points so that if you have questions, you have a little more time to get them answered on this lab. Then on Friday we can look through some datatype class design issues in the context of the Student class with, hopefully, everyone confident with the Rational and Point3D classes.

10/16: If you checked P4 out if CVS before 11:30am today, please replace with this version of

10/15: Project 4 is posted.

10/10: The Tangled hair simulation trials.

10/07: Exam #1 points: P1(5+9+4+7), P2(9), P3(10), P4(11), P5(10). Adjusted scores that are "out of 100%" are posted on the server. The TAs will return the papers towards the end of today's coding lab.

10/05: Project 3 is posted. Monday's coding lab will refresh your memories on nested loops and provide you practice with a grid smilar to the one in the project.

09/25: A reminder that our Friday 9/27 class can't be done in-person but can't be cancelled. As a result, I have posted two readings; one with more on expressions and one continuing the topic of nested loops that began in lab, and posted a quiz on ELMS to meet the obligation. The quiz is due before 11:59pm on Sunday, September 29th. Once you submit, you will not be allowed to take it again. This is an individual assignment, so no working with others or telling others what the questions or answers are.

09/21: Project 2 is posted. There is some sample code provided that you should read through and be comfortable with before working on implementing the project. The Monday labs will introduc some related ideas before giving the quiz.

09/20: I've posted a short set of slides for you to read on expressions in Java. Posting this is part of how I will allow us to "not meet in person" on Friday the 27th. There will be another slide set posted later in the week, and then a short ELMS quiz covering some topics from these two slide sets posted on Friday the 27th and due by that Sunday night.

09/16: If you would be interested in being a note-taker for ADS students in this course, please view this document.

09/13: I've posted two short at-home readings to wrap up some things from this week and to set the stage for next week. One on naming conventions and one presenting an overview of the concept of iteration

09/12: I've activated the link to the department server. This is where lab, projects, and exam grades will appeari once graded. ELMS is just where clicker scores appear.

09/09: Project 1 has been posted.

09/03: TA office hours start tomorrow (Wed) on the First Floor or the Iribe Center.

09/01: The Iribe Initiative for Inclusion and Diversity in Computing invites all Computer Science students to join the Peer Mentoring Program. info flyer and sign-up link.

08/29: This week's Wednesday lab session was a hands-on activity setting up Eclipse and your CVS repository connectios and trying the submit server. Links to these, and instructions on how to set everything up in case you missed lab can be found on this page. and the TAs will recap this in the upcoming lab day.

08/29 Here'a a direct link to the first (ungraded) exercise on ELMS. It can also be found if you go to the class space on ELMS and look under assignments.

Announcements will appear here during the semester. While we will use ELMS for certain graded assignments, all announcements, projects, etc. will be found via this website. Links in the menu on the left will become active as needed/available.

You might find the following an interesting read before the start of the semester - reflect on computers and their use in today's society after reading this: Computers Don't Argue by Gordon Dickson.

In-class Technology
Expect that you will be required to have a Turning Technologies "Response Card RF" clicker unit (available at the bookstores) and activate your campus-provided TurningPoint Cloud account. I will discuss the details of this on the first day. We will start doing some practice polls from the second lecture day (polls won't count for points until the end of the drop/add period). Note that you do not purchase a Turning Cloud account with the clicker. As a UMD student you have access to a Turning Cloud account already. You'll need to activate your campus-provided Turning Cloud account and pair it with your physical clicker device. Campus has posted instructions for students who have not had a Turning Cloud account before, for students who already had one that is still active, as well as students who had one that has expired.

First Discussion Session
The first discussion sections will be meeting on Monday, August 26th, before the first lecture. I'd like to encourage you to read a PDF that I've posted to provide some "big picture" context for the course as well as some brief computational thinking exercises using something called Scratch. We will discuss these ideas and exercises in the first lab, so if you encounter challenges with any of them, don't worry, that just means you'll be coming to the first day ready with questions to discuss, which is great. If there's time in that first lab, you will also be asked the following question and are encouraged to think about it before discussion time and come to that first discussion section on Monday ready to tell a random fellow student in the class about it.
 What is something that you know how to do that you had to 
   learn in stages and it took a while before (or even still 
   hasn't happened yet) you could do it well enough to either
        (a) accomplish something practical
        (b) show others you could do something that they'd be 
               interested in seeing you could do?  

There will not be an official textbook for this class. We will talk about how to get free access to Java 7 for Absolute Beginners as a UMD student (basically, you have to be on campus to download the PDF but once you have it, it's on your computer and can be read regardless of whether you are on campus or not).

If you know you want to have a physical textbook to read, the one we suggest is Java Foundations: Introduction to Program Design and Data Structures by John Lewis, Peter DePasquale, Joseph Chase.

I will not refer to either directly during the semester, but the discussion and examples in each look like a good match for the course. Either the first (ISBN 0321429729) or second (ISBN 0132128810) or third (ISBN 0133370461) edition is fine if you go with the physical book. Used copies of old editions seem to be readily available online at places like Amazon and the Barnes & Noble marketplace. (these not endorsements of any of these stores, just examples).

Web Accessibility

CMSC 131
Object Oriented Programming I

Information/Resources Announcements 
Course Syllabus 
TA Office Hours 
Pitch Paper 
Study Questions 

Submit Server 
Grades Server 

Eclipse/Java Setup 

Word cloud of CMSC 131 terms