CIT 591 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 7, 2011

The final word on tabs:

For Wrap Text, Flow Text, and Fix Indentation, just replace every tab with four spaces. Then do the rest of the work. I wrote these translators not thinking about tabs, which I rarely use, and didn't mean to make a lot of work with special cases.

No other translators are affected by this statement, only the three named above.

November 29, 2011 The final exam for this course is December 21, not (as originally scheduled) December 15.
November 21, 2011 The Jigsaw Puzzle assignment says to make the findPiece method private. It also says to unit test this method. These are incompatible. Do not make this method private.
November 21, 2011 The UNcorrected grades for 03 Opening Bid in Bridge have been added to Sakai. Thanks to those people who have pointed this out. Corrected grades should be posted sometime tomorrow.
November 11, 2011 The latest evaluation form, for 08 Saddle Points, has now been posted.
October 28, 2011 I have posted the Evaluation Form for 06 Readability Measures. Let me remind everyone: This is required, not optional!
October 21, 2011

By popular demand, I have now posted a copy of last year's midterm exam. I will not provide correct answers, so don't ask.

October 20, 2011

My basic principles for grading are:

  • If the posted assignment clearly says to do something, do it.
  • If the posted assignment doesn't say what to do in some cases, do something reasonable.
  • If the posted assignment is ambiguous or contradictory, that's my problem, and I try to allow any reasonable interpretation.

Here are some observations about the Readability assignment:

  • The posted assignment is very clear about the fact that digits are not letters; treat them as whitespace.
  • Also very clear: Every sentence has at least one word. Every word has at least on syllable.
  • We said in class that "ado" had two syllables; but the posted assignment clearly says that "Words of three or fewer letters count as one syllable." So that's the rule.
  • The posted assignment does not specify whether apostrophes are vowels. I do not think it is reasonable to call them vowels. They are consonants.
  • The description of getLetterCount says "apostrophes do not count as letters." It is not clear whether this also applies to getLongWordCount (I think it should, but it is ambiguous, so I should accept it either way).
  • Floating point numbers should never be tested for exact equality, in Python or any other language. There is more to unit testing than assertEqual. You can write your own comparisons and use assertTrue, or you might look at http://docs.python.org/release/3.2/library/unittest.html and discover many other useful methods, such as assertAlmostEqual.
October 20, 2011

I have now posted a corrected version of opening_bridge_bid_test.py. Due to the nature of the corrections, I believe that these corrections will affect only a few people.

If you lost more than 2 points for testOpeningBid1S, testOpeningBidLowerRankingSuit, and/or testNoOpeningBid, you may want to run the tests yourself and, if your score would be more than 2 points higher, mail me the results; I'll check them and update your grade.

By my computation, 2 points is approximately 1/1000 of the total points. You and I have better things to do than worry about that amount.

October 19, 2011 I have posted opening_bridge_bid_test.py and sudoku-test.py.
October 18, 2011

 

The midterm will be 3:00 t0 4:30 on Wednesday, October 26, in Annenberg 110.

There will be no lab this Friday.

annenberg

 

 

October 14, 2011

At the beginning of the semester, I said that you would be required to evaluate each of your partners. This information is completely confidential--no one but me will ever see what you said about your partners. Please try to get these done before Wednesday!

Here are the first three evaluation forms:

Please fill out these forms completely. There is an odd bug that I haven't been able to track down yet: If the form isn't completely filled out, you will still be told that it has been sent, but I don't always receive it. So, if you are one of the unlucky people who didn't get a partner, just indicate that on the form and fill out the rest of the fields with nonsense. Thanks.

October 12, 2011

Corrections and clarifications for Fraction Calculator assignment:

  • I said that dividing by zero should raise a ZeroDivideException. That's the wrong name; it should be ZeroDivisionError.
  • FractionCalculator does not need to be a class. It's easier to write as a plain module; that way you don't have to say self all over the place. Fraction, FractionTest, and FractionCalculatorTest should all be classes.
October 7, 2011

Clarifications for Fraction Calculator assignment:

  • When an error occurs, clear everything. Reset the calculator to zero, throw away any "remembered" operations, and discard the rest of the input line.
  • Operations are performed left to right. There is no precedence, no parentheses.
  • All arithmentic is done in the Fraction class, which knows how to create, add, subtract, multiply, divide, negate, and take the absolute value of fractions. The FractionCalculator just tells the Fraction class what to do, and reports the results.
  • Lines have no significance. It doesn't matter whether the user types in one line or twenty. The only difference is, at the end of each line of input, the user gets to see the current value in the calculator.
    The value of the fraction is printed after each line is processed, and is used as the starting value for the next line. Any "remembered" operation is discarded. See Piazza for a longer explanation of the reason for this change.
  • As a fraction, the number zero should be represented with a numerator of 0 and a denominator of 1.

I have added an example to the assignment page.

October 7, 2011

At the beginning of the semester, I said that you would be required to evaluate each of your partners. This information is completely confidential--no one but me will ever see what you said about your partners.

Here are the first two evaluation forms:

Please fill out these forms completely. There is an odd bug that I haven't been able to track down yet: If the form isn't completely filled out, you will still be told that it has been sent, but I don't always receive it. So, if you are one of the unlucky people who didn't get a partner, just indicate that on the form and fill out the rest of the fields with nonsense. Thanks.

October 2, 2011 I have added (in green) some minor clarifications to the Sudoku assignment. These are clarifications only, there are no changes in the requirements.
September 28, 2011 If you are using Python 3.2.1, it's a very good idea to upgrade to 3.2.2. Python 3.2.1 has a bug in it where it leaves a new pythonw process running every time you reload your program.
September 27, 2011 Posted: A very basic opening_bid_bridge_test.py.
September 26, 2011

I've updated (in green) the Opening Bridge Bid assignment.

Although this was not my intent, I think that those of you who actually began by writing tests first (TDD) will find it much easier to make any necessary changes in your program.

September 22, 2011

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

Speaker: Gayle Laakmann McDowell, Founder / CEO of CareerCup.com 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.

Bio:
Gayle Laakmann McDowell is the founder and CEO of CareerCup.com 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 18, 2011 Also available free online is An Introduction to Python. This is a very good, very condensed book, suitable for experienced programmers. If you are more of a beginner, you may find it too condensed.
September 17, 2011 The very highly regarded book Dive Into Python 3 is available online. I didn't choose it for this course because it's a lot more than we need, but you may find it useful.
September 15, 2011 I have posted a Concise Guide to Python. This is intended just as a quick reference; I hope you find it useful. Please let me know about any errors or serious omissions you find!
September 13, 2011 Late getting in today. I should be in my office by 3:00 or so.

September 12, 2011

pizza

Please join us for pizza!

Tuesday, September 13, 6pm, Levine 307.

September 7, 2011

Forgot to mention: Before Fridays lab, please go to Moore 207 and attempt to log in on one of the computers nearer the front of the room. If you can, great; if you are registered for this course but cannot log in, contact CETS. You will be at a disadvantage if you can't use a computer during lab!

Please explore the Links below, especially regarding the textbook, Sakai, and Piazza. I have temporarily marked these in yellow to make them more noticeable.