CIS 554 Previous Announcements
Fall 2011, David Matuszek

Date Announcements
December 11, 2011 Classes are over, and I'm no longer holding regular office hours. I expect to be in my office and available Monday after lunch, and Thursday between about noon and 2:30.
December 5, 2011 I've decided not to give a Scala quiz this Wednesday. It will instead be part of the final exam.
November 30, 2011

I've posted three articles today, for your reading enjoyment.

November 28, 2011

I've posted a list of words that might be worth indexing in a Scala book. This list contains all the reserved words (keywords). It was mechanically generated, so there are probably numerous imperfections.

1:30pm: Replaced the word list with a somewhat better one.

November 18, 2011 As noted in class, the first Scala assignment will receive only a 5 point penalty if submitted by 6am Friday, or 10 points if submitted by 6am Monday. After that, the usual 5 points per day penalty will apply, starting from the Wednesday 16 due date.
November 13, 2011 In case you aren't paying any attention to Piazza, the due date for the Scala encode/decode assignment has been changed to 6am Wednesday, November 16.
November 1, 2011 Tomorrow we start Scala!
October 29, 2011

I've made substantial revisions to the schedule, in order to accomodate a third Clojure assignment.

If you have not already done so, I would strongly recommend downloading and installing Scala, and getting the Scala plugin for Eclipse. You could use other IDEs, but this one is by far the best developed. Also, you should get the book.

October 11, 2011

I've posted the grades for the REBOL quiz and for the Prolog quiz #2.

Prolog quiz #2 is a maximum of six points, not ten. Since I don't want Prolog to count more than the other languages, in the final scoring I will add the two Prolog quizzes together and divide by 1.6.

September 28, 2011

I've posted some Prolog Practice Problems.

It's been pointed out that the REBOL assignment is due Monday, and I said I would give the Prolog makeup quiz Monday. Since this is kind of a conflict, I'm moving the due date for the REBOL program to 6am Wednesday. This doesn't really give us time for a second REBOL program; given the fact that their website is in disarray, this is probably for the best. Too, bad, I really liked the language....

September 27, 2011 If you would like to try running the code in my Concise Guide to REBOL/View page, I've zipped up the program and all the necessary images in a downloadable file.
September 22, 2011

How to Crack the Coding Interview:  Skills and Strategies for Software Engineers

Speaker: Gayle Laakmann McDowell, Founder / CEO of and Author of The Google Resume and Cracking the Coding Interview.

Monday, September 26, 2011 , 6:00pm
Heilmeier Hall Auditorium (100 Towne Building)

CS interviews are a different breed from other interviews and, as such, require specialized skills and techniques. This talk will teach you how to prepare for coding interviews, what top companies like Google, Amazon, and Microsoft really look for, and how to tackle the toughest programming and algorithm problems. This talk will be a deeply technical and will include stories from the speaker's extensive interviewing experience as well as a live "demo" of how to tackle a technical problem.
Signed copies of McDowell's Cracking the Coding Interview and The Google Resume will be on sale after the talk for $20. Cracking the Coding Interview is the #1 interview prep book for software engineers and the 5th edition, just released in Aug 2011, is nearly double the size of the previous edition (see changes). The Google Resume is a broader book to teach people what they need to do to position themselves for a tech job, starting from early in college up through the offer and job performance itself. The books are rated 5 and 4.5 stars respectively on Amazon.

Gayle Laakmann McDowell is the founder and CEO of and the author of Cracking the Coding Interview and The Google Resume . CareerCup is the leading source of technical interview preparation and provides a free forum with 3000+ technical interview questions, a book, a video, and mock interviews.
Gayle has worked as a Software Engineer for Google, Microsoft and Apple and has extensive interviewing experience on both sides of the table. She has interviewed and received offers from Google, Microsoft, Apple, Amazon, IBM, Goldman Sachs and a variety of other firms, and she has interviewed over 120 candidates at Google and served on its hiring committee.
Gayle holds a BSE and MSE from UPenn in Computer Science, and an MBA from the Wharton School.

I highly recommend this talk. --Dave

September 21, 2011 I've posted makeup work for the Prolog quiz.
September 14, 2011 consult is broken! Correct behavior is as I described in class (or see if you don't believe me), and I've been getting behavior like this:
8 ?- consult('e:/teaching/cis554-2011/examples/'), listing(i_am_at).
% e:/teaching/cis554-2011/examples/ compiled 0.00 sec, 124 bytes
:- dynamic i_am_at/1.

That wasn't such a problem in the previous assignment, but it is in this one. As a workaround, I added the following line to , right after the dynamic clause:
:- retractall(at(_, _)), retractall(i_am_at(_)), retractall(alive(_)).
I have updated both example files and added cuts in (hopefully) all the correct places.
September 14, 2011 I will add "cuts" (!) to the two sample programs. If you download them before I get to it, feel free to add them yourself.
September 14, 2011

Short homework extension: Because some people have had trouble submitting their assignments to Blackboard, the due date for the first assignment is extended to midnight tonight. I will not accept email submissions.

Also, note that I require either a plain text file (in the case of a single file) or zipped files. Zip files are universal; rar files are proprietary, and require special software to unpack on a Macintosh; tar files are just a pain.

September 14, 2011 I found another good site for learning Prolog:
mber 13, 2011 Late getting in today. I should be in my office by 3:00 or so.
September 12, 2011

Please join us for pizza!

Tuesday, September 13, 6pm, Levine 307.