On this page:
Plagiarism
Makeup exams
Minor Javalib library fix
Exam locations
Homework server restored, deadline extended
Homework Server Down
Homework 9 Part 1
New versions of Javalib and Tester libraries, part 3
New versions of Javalib and Tester libraries, part 2
New versions of Javalib and Tester libraries
Why am I getting Stack  Overflow errors?
Leena’s office hours
Becca’s office hours
Teams are assigned
Editing teams
Homework 8 Problem 2 Tests
New partners!
Homework extension
Mid-semester staff review
Hw7-acc updated
Yuvi’s Office Hours
Sokoban design
Homework 6, problem 2 autograder had bugs
The server can’t find my classes! Why not?
Homework 6 extension
Exam cover sheet
Exam rooms posted
Updated Javalib library
No homework due Thursday
Updated Javalib library
Updated Javalib Library
Asteroid Images
Homework 5 Update
Homework server is back up; long live the homework server
Homework server down; homework 4 extended
Yuvi Shatil’s office hours
Hw4 submission on Bottlenose will open tomorrow
HW4acc Clarification
HW4 posted
About Office Hours
HW4 posted – actually!
Hw4 posted – partially!
Hw3 p2 clarification
The Handin Server
Assignment 3
The Handin Server
Office Hours Change
Homework 2 (Accelerated) Problem 3
Office hours change
Hw2, problem 1 updated
Hw2 acc, problem 3 updated
Installing and using Eclipse on Mac  OS
Welcome to CS2510
6.8

Blog

Plagiarism

Mon Apr 17 16:39:55 EDT 2017
Once again, it is our unhappy task to remind you all that plagiarism is prohibited, and that penalties will be forthcoming. We have found very strong evidence of plagiarism on the Forbidden Island assignment, and we will begin searching the Maze assignments tomorrow. If you would like to own up to your mistake, please contact us before we contact you.

Makeup exams

Fri Apr 14 16:33:27 EDT 2017
The makeup exams have been graded and the grades are on the handin server. All the questions are marked as a zero since you had different questions on your exam, but the final score should be accurate. You can pick up your exam from Rebecca MacKenzie in 314 WVH next week starting on Tuesday (April 18th).

Minor Javalib library fix

Thu Apr 6 17:16:09 EDT 2017
I’ve posted a small update to the Javalib library that fixes the hashCode behavior of Posns. Please update your library, if you’re using Posns with HashMaps.

Exam locations

Wed Apr 5 15:17:16 EDT 2017
The exam locations are posted on the course website (on the general information page). If you absolutley cannot attend the exam tomorrow night (e.g. you have class) you should have received an exam location via email. If you think you should have received this email but did not, you should contact Becca MacKenzie immediately.

Homework server restored, deadline extended

Mon Mar 27 21:10:43 EDT 2017
The server is back up, and the homework deadlines on it have been pushed back an hour. Sorry for the confusion.

Homework Server Down

Mon Mar 27 21:02:10 EDT 2017
The homework server is down. This is a known issue and will be fixed as soon as possible. Because of this problem we are providing a one hour extension on the homework due tonight.

Homework 9 Part 1

Mon Mar 27 13:18:15 EDT 2017
All the homework 9 part 1 grades and feedback have been posted. Please take a look before the deadline tonight so you don’t make the same mistake twice.

New versions of Javalib and Tester libraries, part 3

Tue Mar 21 08:21:04 EDT 2017
There was a small bug in comparing images for equality. I’ve uploaded a new version of the javalib library; please download it one more time.

New versions of Javalib and Tester libraries, part 2

Mon Mar 20 13:44:31 EDT 2017
There was a very silly NullPointerException in my code that I should’ve caught; it’s now fixed. I’ve uploaded a new version of the tester library, so please download it again, if you haven’t already done so.

New versions of Javalib and Tester libraries

Sun Mar 19 14:55:13 EDT 2017
I’ve just uploaded new versions of the Javalib and the Tester libraries, so that you should have fewer problems with stack overflow errors due to the support code. (You may still have stack overflows due to your own code, but I can’t fix that for you!) Please download the new versions of both libraries. You might want to save a copy of the old versions somewhere, before replacing them with the new versions: while I’m pretty certain they work correctly, you might find bugs I haven’t noticed yet. If you do find a new problem, please email me with the exact text of the error: I need all of the red text that appears in the console, in order to debug the problem.

Why am I getting StackOverflow errors?

Sat Mar 18 18:38:09 EDT 2017
As you work on the Forbidden Island assignment, you’re probably finding yourself encountering StackOverflowErrors in tester.Printer.makeString. You might also encounter them in tester.Inspector.isSamePrivate, and you might be thinking, "Since that isn’t my code, it must be a bug in the tester library!" Well, not quite. Think about what the tester library does for you: every time you call t.checkExpect(myThing, expectedThing), the library checks whether the two values are equal, which means it has to walk down that data all the way to the end, making sure that corresponding parts are the same. But what data do you have to deal with in this assignment? You’re building a massive (64 x 64 = 4096 element) IList<Cell>, and the tester library needs to recur down the whole thing. But Java doesn’t (by default) support recursion to such depths, and so you’ll get a stack-overflow error. If your data are not equal, then the Inspector will probably finish without a problem...but then the error report still needs to show you a chunk of text representing your data, and that does have to recur all the way down, again leading to an error.

I’m working on making the tester and javalib libraries more robust to these problems, but it still won’t address the underlying difficulty, which is part of the point of this assignment: your data is now too large for Java to handle via recursion; what do you do differently? You’ll encounter similar problems if you use an IListVisitor, or just write a recursive method on IList directly. (And the answer is not to say "then I won’t use IList at all" – many real-world data problems just require such deeply-nested data, and you have to deal with such cases when they arise.) I’ll give you one hint: the technique I’m using within the libraries to repair this error is (a more sophisticated version of) something we definitely teach you, and is described in the lecture notes right around where we currently are in class.

If I get the libraries to a point where they work better, I’ll update the blog again.

Leena’s office hours

Mon March 13 16:01:05 EST
Professor Razzaq’s office hours have been moved (just for this week) from 10-12 tomorrow to Wednesday (March 15th) 1:30-3:30pm. The google calendar has been updated accordingly. If you were planning to see Professor Razzaq during tomorrow’s office hours and cannot make it on Wednesday, feel free to contact her to set up an alternate time to meet.

Becca’s office hours

Sat March 11 10:55:12 EST
I (Rebecca MacKenzie) am moving my office hours (permanently) to Monday 3-5 pm and Thursday 1-3 pm effective immediately. If for some reason this means you cannot attend any office hours, please let me know so we can arrange another time to meet.

Teams are assigned

Fri March 3 12:04:08 EST
All teams have officially been assigned. If you feel that your team is incorrect on the handin server please send an email to Professor Benjamin Lerner AND Rebecca MacKenzie (emails on the General tab) to let us know and we will do our best to resolve it as soon as possible.

Editing teams

Fri March 3 09:00:00 EST
We are now editing the teams on the handin server to reflect the new team assignments from this past Monday and Tuesday. If you cannot submit for the next few hours that is why. If you already submitted your homework, please resubmit with your new team so that credit is given to the correct people.

Homework 8 Problem 2 Tests

Thurs March 2 20:19:20 EST
There was a problem in the homework 8 problem 2 automated tests. They were asking for "deleteNode" instead of "removeNode". This has been fixed and the tests have been re-run. Please make sure your code has the correct method name.

New partners!

Wed March 1 02:32:17 EST
Just a heads up that we re-arranged partners in lab on Monday and Tuesday. If you don’t have a partner from lab you will be randomly assigned a partner AFTER Thursday’s due date. If you were assigned a partner in lab you should work with them on Homework 8 and future assignments. Homework 7 problems (the ones due on Thursday) should still be completed with your previous partner.

Homework extension

Mon Feb 27 15:13:14
The staff has determined that you are not yet familiar enough with mutation to complete the homework due tonight. Therefore problems 2 and 3 (and 4 for accelerated) will be pushed to Thursday. Homework 8 will be due after spring break.

Mid-semester staff review

Mon Feb 27 13:18:16
There is now a mid-semester staff review form. It is completely anonymous so you can tell us what you think of the course and in particular the TAs and tutors this semester. Your feedback helps us to improve the course. Thank you.

Hw7-acc updated

Wed Feb 22 15:34:03 EST 2017
The wording of which problems were required for the accelerated homework was obscure. We’ve reworded the assignment to make it clearer; sorry for the confusion.

Yuvi’s Office Hours

Wed Feb 22 10:40:40 EST 2017
Yuvi Shatil has office hours today from 11:45am to 1:25pm. However, he will be stepping out for an interview around 12:25pm and coming back around 1:15pm. If you need help during this time there will be another TA available (Anya has office hours from 12-2pm).

Sokoban design

Mon Feb 20 17:30:03 EST 2017
You are required to support at least Classic mode with your design, and Modern levels that don’t require any special Objects. You are required to support at least one step of undo; if you can support unlimited undo, even better.

Homework 6, problem 2 autograder had bugs

Fri Feb 17 21:42:35 EST 2017
The autograder for homework 6, problem 2 had some mistakes in it, that were leading to incorrect test results. I’ve corrected the bugs and rerun the grader; for some of you, your grades have improved, while for others it’s gone down. Please double-check your current score and correct any new errors you see...

The server can’t find my classes! Why not?

Thu Feb 16 17:14:37 EST 2017
Many of you are having difficulty getting any of the unit tests to pass on problem 1 of the homework. This is because your zip files are not structured in a way the server expects. Specifically, you might be submitting a zip containing a folder containing your files. If your submitted files look like this:

where the first line is a directory name (ending in a forward-slash), the server will not understand this file structure, so it can’t find your classes. The correct thing to do here is to submit only the files that are needed: select the two files in Explorer (or Finder, or Nautilus), right-click (or option-click), and select "Send to zip" (or "Compress", or "Add to archive"). This should fix the problems you’re seeing.

Homework 6 extension

Thu Feb 16 13:52:59 EST 2017
Homework 6, problem 2, has been granted a 1-day extension. You should all have received an email explaining why.

Exam cover sheet

Wed Feb 15 15:14:00 EST 2017
Here is the exam cover sheet for tomorrow’s exam. Ignoring the score box, which isn’t saying how many questions there are or what their precise scores will be, it shows you what assumptions you may make on the exam. You’re encouraged to read through this in advance, so you’ll have fewer questions tomorrow. Good luck, everyone!

Exam rooms posted

Tues Feb 14 10:20:20 EST 2017
The rooms for the exams have been posted on the general information page in the "Exams" section. Please take a look so you know where to go on Thursday night.

Updated Javalib library

Mon Feb 13 18:48:05 EST 2017
At the request of one of your classmates, I’ve added new support for key-released events, as well as normal key events. Additionally, I’ve updated the documentation to explain the key namess.

No homework due Thursday

Mon Feb 13 16:53:20 EST 2017
There will be no assignment due Thursday, February 16th, since there is an exam that night.

Updated Javalib library

Mon Feb 13 14:50:58 EST 2017
Another minor bug was found in the javalib library, which prevented the end-of-world behavior from working intuitively. Please download the new version. The documentation for ending a world has been updated, too.

Updated Javalib Library

Fri Feb 10 20:54:40 EST 2017
Two of your classmates discovered a bug in the javalib library, particularly in how it treats certain images for equality with the tester library. I’ve corrected the bug, and uploaded a new version of the library. You’re encouraged to download the new version, though if you’re not currently having problems, you are not required to do so.

Asteroid Images

Wed Feb 8 4:30:30 EST 2017
If you would like to use some pre-defined images for asteroids and spaceships in your game (accelerated only) then you can now find them in the lab files for Lab 5 (Accelerated).

Homework 5 Update

Tues Feb 7 11:00:00 EST 2017
Homework 5 has had a slight update specifying when two Tags are equal. Please take a look to make sure you are correctly interpreting the problem.

Homework server is back up; long live the homework server

Mon Feb 6 20:38:54 EST 2017
Systems has restored access to the homework server, and I’ve extended the deadline until midnight tonight. If the server goes down again, I’ll extend the deadline until some time tomorrow, but things should be stable now.

Homework server down; homework 4 extended

Mon Feb 6 20:04:15 EST 2017
The homework server appears to be unresponsive at the moment, and even I can’t log in to fix it for you. I’ve emailed systems and they should be fixing it soon; in the meantime, assume that the homework deadline has been extended, at least until midnight and possibly later tomorrow, if the server doesn’t reboot soon. (In any case, it will take me a while to get home, and so I’ll update the blog and/or the server later tonight.)

Yuvi Shatil’s office hours

Thurs Feb 2 12:46:06 EST 2017
As you may have noticed, Yuvi Shatil will not be attending his office hours today due to a medical issue. We apologize for the inconvenience. If you were going to attend his hours and cannot meet with another staff member please send him an email to arrange another time to meet.

Hw4 submission on Bottlenose will open tomorrow

Tue Jan 31 21:26:35 EST 2017
For various reasons, Bottlenose is having some minor issues tonight, and I’m keeping submissions closed tonight while I work on debugging them. We will open the submissions for Hw4, problems 1-3, sometime tomorrow morning. Don’t panic if you can’t see them yet!

HW4acc Clarification

Tue Jan 31 19:43:30 EST 2017
My apologies; there was an error in the starter code described in problem 3 (accelerated) – it used an outdated version of the Javalib library. Please reread the assignment, and adjust your method signatures accordingly. (The changes should actually make it substantially easier to do the problem...)

HW4 posted

Tue Jan 31 19:43:30 EST 2017
We’ve posted problem 2 of this week’s homework.

About Office Hours

Tues Jan 31 17:37:07 EST 2017
In case you are looking for someone at office hours and can’t find them, please check the google calendar for their location. Our office hours are often in 108WVH in the evenings rather than in 102WVH as they are during the day. Also, please note that the google calendar has been updated to indicate which hours are frequently busy. The busy hours have an asterisk after the tutor or TA’s name so you can identify them easily.

HW4 posted – actually!

Tues Jan 31 17:24:31 EST 2017
Problem 2 of Homework 4 has been posted. The handin server will make this assignment available sometime tomorrow.

Hw4 posted – partially!

Mon Jan 30 17:37:31 EST 2017
Problem 1 of Homework 4 has been posted. Problem 2 will be posted tomorrow at some time. (The accelerated problem has been posted, also.)

Hw3 p2 clarification

Sat Jan 28 15:20:45 EST 2017
Problem 2 of the homework mentions a "given Posn" for where the mobile should hang from. This is a mistake; no Posn need be given, and the signature and example in the remainder of the assignment is correct.

The Handin Server

Tues Jan 24 16:08 EST 2017
The handin server should be back up now. We apologize for the inconvenience.

Assignment 3

Tues Jan 24 15:24:24 EST 2017
Assignment 3 (and the accelerated version) has been posted. Because of the delay in getting this out to you we have moved the due date of Problem 1 to Friday. We apologize for any inconvenience.

The Handin Server

Tues Jan 24 13:48:48 EST 2017
The handin server is experiencing technical difficulties and is down at the moment. We are working to resolve the issue and it will be back as soon as possible.

Office Hours Change

Tues Jan 24 9:10:10 EST 2017
Professor Razzaq has moved her office hours to tomorrow at 1 pm. Please note that this change is not permanent and the google calendar has been updated accordingly.

Homework 2 (Accelerated) Problem 3

Mon Jan 23 4:24:00 EST 2017
Some of the automatic tests for Homework 2 problem 3 were using an earlier version of the problem statement and therefore were causing errors in many students’ code. They have just now been updated and re-run. If this caused your code to be wrong please fix it. Just so you know the key phrase was "remove it (and all its descendants)". This should make your code easier if you were trying to remove the Tagged element but not its descendants.

Office hours change

Mon Jan 23 11:59:59 EST 2017
Some of the regularly scheduled office hours have shifted today. Logan Wells will hold his office hours on Thursday from 12:30-2:30 pm and I will hold my office hours today from 1-3 pm. Please take a look at the calendar to ensure you are attending office hours in the right time and place.

Hw2, problem 1 updated

Thurs Jan 19 14:22:43 EST 2017
I’ve slightly updated the wording in problem 1 to clarify the intent of several methods.

Hw2 acc, problem 3 updated

Tue Jan 17 22:49:14 EST 2017
I’ve slightly updated the wording in problem 3 to clarify the intent of one of the transformations. If you’ve started the assignment already, please double check that your interpretation of the problem matches mine.

Installing and using Eclipse on MacOS

Friday, Jan 13 16:02:03 EST 2017
If Eclipse is working, but using the wrong Java Runtime Environment, for example, if you are seeing JDK 1.6.x instead of 1.8.x:

Go to: Preferences > Java > Installed JREs > Add...

Choose Standard VM, then click the button Directory... in the upper right, next to JRE Home.

Find your JRE home in the file system:

/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home

Note: To find the Library directory, you will have to back up to the root directoy, usually called Macintosh HD in the pulldown.

Note2: Your precise JDK path will differ, so it won’t be jdk1.8.0_66.jdk, but something similar.

Fill in the other fields.

Now when you create a new project, you should be able to specify your new JRE for the project, from the pulldown in the project creation dialog.

Second case–if Eclipse won’t launch:

Download and install the latest Oracle JDK, such as via

Oracle Java web site

Make sure it’s the Java Development Kit (JDK) and not the Java Runtime Environment (JRE). The JDK contains tools for compiling and running Java programs; the JRE contains tools only for running Java software.

Download and install Eclipse

If you get a message saying your version of Java is out of date or otherwise too old to install Eclipse, you’ll need to remove your old JDK.

To remove your old JDK, do as follows:

1. Open the Terminal program. To find it, hit command-spacebar to bring up search and search for Terminal. At the prompt type the following commands. You will need to enter your Mac user password after each one.

% sudo rm -rf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

Remove any Java Developer Previews

% sudo rm -rf /Library/Java/JavaVirtualMachines/1.6.0*.jdk

(Excerpted from Superuser.com).

Now try reinstalling Eclipse. Provided your up-to-date JDK is properly installed, it will work now.

Welcome to CS2510

Tues Sept 6 11:00 EST 2016
Please, check this page daily for any last-minute announcements about the class, assignments, lectures, and other information.