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.
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.
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.
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
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.
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.
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).
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
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
The server can’t find my classes! Why not?
Thu Feb 16 17:14:37 EST
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
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
Here is the exam cover sheet
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
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.
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
Homework server down; homework 4 extended
Mon Feb 6 20:04:15 EST
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
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
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!
Tue Jan 31 19:43:30 EST 2017
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...)
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
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.
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
slightly updated the wording in problem 1 to clarify the intent of several
Hw2 acc, problem 3 updated
Tue Jan 17 22:49:14 EST 2017
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:
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