On this page:
Design problem survey
Honors make-up lecture
Lab 11 is fixed!
Homework 9 is posted
Second midterm
Homework 8 (honors):   update 2
Homework 8 (honors):   update
Homework 8 Buddy Lists:   update
Homework 8 (regular) is available on Web  CAT
Checking for exceptions when passing null as arguments
Web  CAT outage should now be fully fixed
Web  CAT outage not-quite-fixed
Web  CAT outage fixed
Moving office hours today
Naming error on Hw6, problem 1
Subtleties with generics
Fishy images
Midterm exam dates
ROOM CHANGE
Hw4 extended
Classes cancelled again tomorrow
Homework 4 will be posted late tonight
Mobiles problem is fixed
Correction to Mobiles problem
Correction
Homework 2 extension
Homework 2 is posted
Homework 1 Honors is up on Web  CAT
Homework 1 is up on Web  CAT
Welcome to CS2510
6.2.1

Blog

Design problem survey

Wed Apr 15 21:08:23 EST 2015
As we mentioned in class today (or will mention tomorrow), a colleague of ours teaches Fundies at another school, and is conducting a survey to see which of several solutions you prefer to a small selection of programming problems. Each problem is described, and solutions are given. You are just asked to rank each of the solutions to each problem, and explain why you prefer the solutions you chose over the others. If you are interested in completing this survey, the files can be found here, and you can submit your answers via WebCAT as a plain text file. This survey is entirely optional, and will have absolutely no bearing on your grade for the course, but we would appreciate it if you did choose to participate.

Honors make-up lecture

Mon Apr 13 16:32:45 EST 2015
We we hold our final makeup lecture for the honors section next Monday (Patriots’ day) at our usual 11:45 time, in the lab (210 WVH).

Lab 11 is fixed!

Mon Apr 6 20:01:00 EST 2015
Mere moments after lab completed tonight, I was able to repair the lab in time for tomorrow. So, honors students, you are welcome to come to lab tomorrow and work through it yourselves, or you can do it next week (Monday or Tuesday, if you have a Logic&Comp midterm) instead.

Homework 9 is posted

Sat Mar 28 14:05:32 EST 2015
Homework 9 is now posted. The honors supplement will be posted soon. Note the due date is the day before the next midterm — I strongly recommend you start early!

Second midterm

Sat Mar 28 14:05:32 EST 2015
The second midterm will be Thursday, April 9th, 6–9pm, in the same rooms as the first midterm was. (If the room assignments change unexpectedly, I’ll update the blog accordingly.)

Homework 8 (honors): update 2

Thu Mar 26 22:06:14 EST 2015
I am cancelling the Tries problem as a required submission for homework 8; you will only have to submit the first TreeDicts problem. If you are curious about the tries problem, however, we can discuss it a bit further in class on Monday.

Homework 8 (honors): update

Wed Mar 25 22:34:45 EST 2015
Writing automated tests for the Tries problem is challenging, given the way the problem is worded. I will enable submissions for the first honors problem tonight; I will update the wording of the Tries problem tomorrow, and will extend the due date for that problem alone until Saturday. Apologies for the confusion; I’ll explain this more in class tomorrow.

Homework 8 Buddy Lists: update

Wed Mar 25 22:11:48 EST 2015
I’ve updated the wording of the BuddyList problem to indicate explicitly that for partyCount, the party organizer should be counted as attending the party. Configuring WebCAT to accept both kinds of answers unambiguously was not feasible.

Homework 8 (regular) is available on WebCAT

Wed Mar 25 20:40:23 EST 2015
I’ve created submissions for the regular problems on Hw8. There may be some minor problems with the WebCAT reference tests; if you encounter them, email me directly — don’t bother with Piazza, as I won’t be checking that as frequently.

The submissions for the honors problems will be available a little later, and I’m still tweaking the reference tests for them.

Checking for exceptions when passing null as arguments

Tue Mar 24 20:03:50 EST 2015
On the latest homework, you might be inclined to test that your Node constructors properly throw an exception when given a null argument. To do that, you might want to use t.checkConstructorException. Unfortunately if you do that, the tester library itself will give you a NullPointerException. The workaround for this is simple, but subtle. The tester library has to inspect each of the arguments you pass it to find out their types, so it can determine which constructor to invoke. If you pass it a null value, it cannot find out their types. The solution is to not let the tester library see the null values:
class ExamplesNode {
// NOTE: This should fail ANode<String> constructNullNode() {
return new Node<String>(null, null, "Oops");
}
void testConstructNullNode(Tester t) {
t.checkException(new InvalidArgumentException(), this, "constructNullNode");
}
}
Because there are no arguments for constructNullNode, there are no null arguments for the tester library to get tripped up over, so it can successfully call constructNullNode, and successfully observe that it successfully fails with the intended error.

WebCAT outage should now be fully fixed

Thur Mar 19 11:33:40 EST 2015
WebCAT should be working again.

WebCAT outage not-quite-fixed

Thur Mar 19 10:33:40 EST 2015
Students who are submitting homeworks right now are getting errors when WebCAT tries to build their homeworks. We’re aware of the problem; we’ll fix it shortly. In the meantime, please do not keep endlessly re-submitting homeworks; it’ll just overwhelm the server again.

WebCAT outage fixed

Thur Mar 19 10:06:40 EST 2015
WebCAT crashed last night around 11:05pm, leading to some students being unable to submit their homework. Additionally, there may be some database corruption, and so some submissions right near that time may have been lost. Submissions have been extended until 5:00pm today. Everyone should double-check that their homework is properly submitted, and (re-)submit if necessary.

Moving office hours today

Thur Mar 5 8:04:10 EST 2015
Prof Lerner’s office hours are moved today to 10:30AM.

Naming error on Hw6, problem 1

Tues Mar 3 8:34:15 EST 2015
I forgot that problem 1 on the homework asks you to submit both the generic and the non-generic files in one .zip submission. As a result, WebCAT will be unhappy if your code contains two classes with the same name, such as the generic and non-generic implementations of the string comparators. So I have revised the assignment slightly, to specify new names for the generic versions of the comparators. Please take a look there, if you find yourself with an annoying WebCAT error about duplicate names.

Subtleties with generics

Wed Feb 25 19:29:32 EST 2015
In class today someone asked a fairly tricky question about implementing specific-purpose methods on generic types. The example given was, if we have an IList<Integer>, how could we implement a method sum() that adds them all up? We didn’t have enough time in class today to answer that well, so I’ve added a section in the Lecture 15 notes to address this question more fully. Note that this isn’t the final answer on this question; we’ll see another approach tomorrow.

Fishy images

Wed Feb 18 10:37:52 EST 2015
One of the characteristics of the original Fishy game that you’re implementing is that fish come in different sizes. If you’re drawing fish by using a FromFileImage object, you’ll be stuck at the exact image size of the source file. Remember that realistic graphics aren’t the essence of the assignment, but behavior is: it will suffice to draw a fish as just an oval (for the body) plus a triangle (for the tail), if you can make that scale to different sizes more easily.

Midterm exam dates

Sat Feb 14 10:13:27 EST 2015
The first midterm is scheduled for Monday, Feb 23 at 6–9pm, in Snell Engineering rooms 108 (for Prof. Razzaq’s students) and 168 (for Prof. Lerner’s students).

ROOM CHANGE

Wed Feb 11 16:07:15 EST 2015
As of tomorrow, February 12th, Prof. Lerner’s 1:35 section of Fundies 2 will be moving to Shillman Hall 105. This move is permanent for the rest of the semester.

Hw4 extended

Wed Feb 11 10:25:30 EST 2015
Homework 4 is extended until Friday night at 11:59pm. Another announcement will be made about homework 5.

Classes cancelled again tomorrow

Sun Feb 8 21:28:36 EST 2015
Due to another snowstorm, classes tomorrow are cancelled. Tomorrow’s lecture was intended to be Lecture 10, and it will likely help you with the homework. You are recommended to read it yourself, in advance of when lectures resume. There will likely be an extension on the homework (again), but until we know whether Tuesday’s labs are cancelled too or not, I won’t know how long the extension will be.

Honors students: we’ve only had one class per week the past few weeks, and next week will be no different, so these snow days have been particularly difficult on our schedule. I will be looking into ways for us to make up at least some of the missed classes, and will hopefully have some information by Thursday’s lecture.

Homework 4 will be posted late tonight

Thu Feb 5 17:25:13 EST 2015
I will be posting homework 4 late tonight; it will be due on our regularly-scheduled Wednesday night deadline. The honors supplement will not be ready tonight, and will be posted sometime tomorrow. (Honors students will have time in lab on Monday to work on that problem, too.) WebCAT submissions for all homework 4 problems will be enabled over the weekend.

Mobiles problem is fixed

Wed Feb 4 17:49:32 EST 2015
The Mobiles problem is now corrected, and valid data is now posted in Lab 3. Please revisit your submission to ensure you have the correct data!

Correction to Mobiles problem

Wed Feb 4 13:10:25 EST 2015
There is an error in the reference solution (and tests) of curWidth. The correct thing to implement is the description in the problem statement. The mistake is in the complex example mobile, for which a simple weight of size 45 does not have a width that works correctly as an integer.

I am updating the reference tests, and temporarily suspending submission of this problem until they are fixed.

Correction

Thu Jan 29 21:27:18 EST 2015
In lecture today, I said the appropriate way to combine two strings was via the append method, namely string1.append(string2). That is incorrect. The method is properly named concat. My apologies for any confusion.

Homework 2 extension

Wed Jan 28 14:17:37 EST 2015
Due to the two successive snow days, we’ve lost most of the office hours scheduled for this week. Accordingly, we’re extending the due date for homework 2 until Friday night at 11:59pm. So that the regular homework schedule isn’t too disrupted, homework 3 will go out on Friday and be due next Thursday (i.e., one day later than usual), and homework 4 will go out next Thursday and be due as usual on Wednesday night.

Homework 2 is posted

Thu Jan 20:02:15 EST 2015
Homework 2 and 2h have been posted to the assignments page. WebCAT submissions will be enabled over the weekend.

Homework 1 Honors is up on WebCAT

Mon Jan 18 18:05:00 EST 2015
The honors problems for homework 1 have now been posted.

Homework 1 is up on WebCAT

Sun Jan 18 12:05:00 EST 2015
The three problems for homework 1 have been posted to WebCAT, and everyone who has emailed us their CCS account information should now be able to log in. The honors problems have not yet been posted, and will be made available by Monday evening.

If you have not yet emailed Deepen your CCS username, you will not be able to access WebCAT. Do so as soon as possible. If you have emailed him your username, try to log in, and you still cannot access the assignments, email Prof. Lerner.

Welcome to CS2510

Mon Jan 12 11:00 EST 2015
Please, check this page daily for any last-minute announcements about the class, assignments, lectures, and other information.