| 
   M 5/2/011 
   | 
  
   No class. 
   | 
  
     
   | 
 
 
  | 
   T 5/3/011 
   | 
  
   HW due: 
   
  1. Read Chapters 7, 8, and 9 (pp. 63-86). Although this is a long reading
  assignment, please note that most of the material is review, since most of it
  describes language features you have already worked with in Java, Python, or
  both. 
   
  2. Reread §7.6 (pp. 67-68), paying special attention to what the author has
  to say about memorized knowledge versus algorithmic knowledge. Do you agree
  with what he has to say about the pointlessness of spending years in school
  learning to execute algorithms? Write a thoughtful, original paragraph. If
  you feel that the study of algorithms is pointless (for example, learning how
  to add fractions, or learning how to perform long division), what would you
  propose as an alternative? 
   
  3. Write Exercise 7.2 on p. 67. You cannot use the math.sqrt function for
  this exercise, nor can you use the ** operator, which performs
  exponentiation, since if you could, the square root of 7 would be easily
  found by typing either 
   
       import
  math 
       print math.sqrt(7) 
   
  or 
   
       print
  7**.5 
   
  4. Save the file mobylist.txt to
  your hard drive, and make sure it is in the same folder that you are using to
  save your Python programs. 
   
  5. Create a new Python source file (File / New command on the menu), and
  enter the following lines in it: 
   
       myfi=open('mobylist.txt') 
       print myfi 
   
  When you press F5 to run your program, the result should be a line similar to
  the gobbledygook shown in the middle of p. 81. Then issue the line 
   
       print
  myfi.readline() 
   
  several times. If you count the line for aa
  (a type of lava) as line 1, then on what line does the word aardvark appear in the Moby word list? 
   
  6. Write Exercise 9.1 on p. 82, using mobylist.txt instead of words.txt. If
  you wish, you can use the snippet 
   
       k=myfi.readline() 
       if
  len(k)==0: 
           print
  '--END OF FILE--' 
           break 
   
  so that your loop exits cleanly when the end of file is reached. (Otherwise,
  your program may hang, requiring you to press CTRL+C to terminate it.) 
   | 
  
     
   | 
 
 
  | 
   W 5/4/011 
   | 
  
   HW due: Write Exercise 9.5. This is a
  medium-difficult exercise. If you cannot solve it, you will be expected to
  show at least some pseudocode and/or a flowchart to document the ideas that
  you explored. Steps must be clearly described. For example, you will earn no
  credit with a flowchart like this one: 
   
     
   
  Why not? Why does this flowchart not qualify for points? The reason is that
  it has not added any value. It would be like saying, “I have an idea for a
  great app to run on the web. It would be really cool, and everyone would want
  to join it. The steps are (1) I write the app, (2) everybody signs up, and
  (3) I become as rich as Mark Zuckerberg.” Unless you flesh out the idea a lot
  more than that, you don’t really have an idea that is worth anything, do you? 
   | 
  
     
   | 
 
 
  | 
   Th 5/5/011 
   | 
  
   Test (100
  pts.) on all recent material. Test will be held in LJ-302, not our usual
  classroom. 
   
  Format of the test will be as follows: 
   
  60 pts. for vocabulary (similar to last week’s quiz) and facts from class
  discussion 
  40 pts. for 4 code snippets (10 pts. each) 
   
  At least one of the code snippets will be a translation from Java to Python,
  and at least one will be a translation from Python to Java. You can practice
  by reviewing your old HW and simply translating from one language to the
  other. 
   
  The remaining code snippets will be in Python. When writing your Python code,
  you must show indentation clearly. Minor syntax errors, as long as there are
  not an excessive number of them, will not count against you. 
   
  One code snippet will probably consist of either an obfuscated block of
  Python code or an awkwardly or inefficiently written block of Python code,
  and your task will be to rewrite the same functionality in a better way. 
   | 
  
     
   | 
 
 
  | 
   F 5/6/011 
   | 
  
   HW due: Redo yesterday’s
  test (the entire test, even the parts that you know you did correctly). You
  may consult Internet resources, your textbooks, and the Java and Python
  compilers. You may even consult other people, provided you document that
  interaction. A score of 100% correct is expected for the HW assignment. You
  may write directly on a printed copy of the test. 
   | 
  
     
   | 
 
 
  | 
   M 5/9/011 
   | 
  
   No class. 
   | 
  
     
   | 
 
 
  | 
   T 5/10/011 
   | 
  
   Class held
  in LJ-302 again today (last-minute switch). 
   
  No additional HW due. That’s right! You have a rare weekend with no IPL
  assignment. Yippee! 
   
  In class: Moore’s Law, logistic growth (“S” curve), exponential growth (“J”
  curve), exponential decay (“L” curve), ICs, LSI, VLSI, and much more. If you
  missed class, be sure to get notes from someone who attended. 
   | 
  
     
   | 
 
 
  | 
   W 5/11/011 
   | 
  
   HW due: 
   
  1. Skim this
  helpful blog on the subject of getting started with Objective-C. Do not
  install anything just yet. 
   
  2. Next, visit the GNUstep
  download page and download the following 3 packages in the order listed: 
          GNUstep MSYS System, version
  0.28.1 
          GNUstep Core, version 0.28.0 
          GNUstep Devel, version 1.3.0 
   
  3. Install those 3 packages, in the order listed, by running the .exe
  programs that you downloaded. Accept all the default settings (installation
  directory of C:\GNUstep, etc.), except that you should click the checkbox to
  choose the “Windows theme” at the end of the second installation, the GNUstep
  Core. 
   
  4. After installing those 3 packages, in the order listed, go back to the
  blog (step 1). Try to create and run the “hello world” program, main.m, using
  the instructions provided. This is a little bit tricky, but please give it a
  good try, since following instructions like this is part of what Real
  Computer Guys (RCGs?) have to do all the time. If you fail, don’t worry too
  much, since this is where we will start at the beginning of class Wednesday. 
   | 
  
     
   | 
 
 
  | 
   Th 5/12/011 
   | 
  
   HW due: 
   
  1. Follow the instructions in the technical blog (see yesterday’s calendar
  entry) and the instructions given in class yesterday in order to get your
  helloworld.exe program to run. Note that helloworld.exe is a Windows
  executable file that lives in the /mingw/emh_sw directory (or
  /mingw/chase_programs, or /mingw/tommy_programs, or whatever you called your
  playpen directory). 
   
  Helpful hint: Yesterday, we deduced
  that /mingw in the GNUstep shell is equivalent to C:\GNUstep in Windows, but
  not C:\GNUstep\GNUstep, which is something else. 
   
  2. Then, go back to the blog and follow the instructions to revise main.m and
  create the GNUmakefile (note that there is no extension). 
   
  Important notes: 
   
  If you use Notepad as your editor, you will need to remove the .txt from the
  file name. 
   
  Be sure to save GNUmakefile in the same directory in which you saved main.m. 
   
  3. From the shell, use the cd /mingw/chase_programs command (or whatever you called
  your playpen directory), and then issue the 
   
  make 
   
  command. You may have to do this more than once. If all goes well, an obj
  subdirectory will be created (in the shell, use the cd obj command to get there). Then type 
   
  TestApp 
   
  to run your first Objective-C application. Good luck! Keep tinkering and
  trying if the first try fails (as it probably will)! 
   | 
  
     
   | 
 
 
  | 
   F 5/13/011 
   | 
  
   HW due: 
   
  1. Please finish yesterday’s assignment. Send e-mail to Mr. Hansen if you are
  still stuck. 
   
  2. Set aside at least 35 minutes to start reading the following documents
  from the Apple developer library: 
          Object-Oriented
  Programming with Objective-C 
          The
  Objective-C Programming Language 
   
  3. In your reading notes, focus on jotting down new terminology and questions
  you have for Mr. Hansen. This is difficult material (despite the claim
  that Objective-C is a “simple” language, asserted in the introductory
  paragraphs of both documents), and it is intended for professional developers
  who are contemplating writing apps for Apple’s platforms (e.g., iPhone,
  iPad). 
   | 
  
     
   | 
 
 
  | 
   M 5/16/011 
   | 
  
   No class. 
   | 
  
     
   | 
 
 
  | 
   T 5/17/011 
   | 
  
   No additional HW due. 
   
  In class: Guest speaker, Mr. Ron Packard
  of K12.com, will discuss the future of education in America. 
   | 
  
     
   | 
 
 
  | 
   W 5/18/011 
   | 
  
   Before school: JBAM
  competition. 
   
  HW due: Skim §01 and §02 of this online document;
  then read §03 and §04 with more care and attention. Reading notes are
  required, as always. 
   | 
  
     
   | 
 
 
  | 
   Th 5/19/011 
   | 
  
   Save the
  date! Field trip to the NSA’s National Cryptologic Museum, Fort Meade, MD.
  Bus will depart at 8:00 a.m. and will return shortly before 1:00 p.m. If you attend, you will be excused from periods A-E
  and the first half of F period. If you do not attend, there will be a
  worksheet for you to work on. (See 5/20 calendar entry below.) 
   
  School dress is required, but you may leave your blazer on the bus during the
  tour if you wish. Snacks are available from vending machines at the museum,
  and a few snacks will be provided by Mr. Hansen. 
   
  Schedule at the museum: 
   
    0900-1020 Museum tour 
    1020-1040 Snack break 
    1045-1155 Lecture/workshop conducted by a mathematician from the
  NSA (“MAGIC” conference room) 
    1200 Bus returns to STA 
   | 
  
     
   | 
 
 
  | 
   F 5/20/011 
   | 
  
   Before school: BIG
  TRIG competition. 
   
  HW due (only for those who did not attend the field trip): Answer ANY FOUR QUESTIONS from this scavenger hunt. Ignore the Form
  III/IV/V/VI markings. 
   
  In class: The Chasm Problem. 
   
  Chasm Problem (adapted from various
  sources): Tim, Fred, Twiggy, and Warren are members of a band. (In the
  original problem, the band was U2, and the members were Bono, the Edge, etc.)
  The objective is to cross a dangerous chasm at night on a rickety suspension
  bridge that will support no more than 2 people at a time. Because the bridge
  is so rickety, a flashlight is required at all times by people on the bridge.
  There is only one flashlight, and the flashlight may not be shared by more
  than 2 people. When 2 people travel together, their time to cross the chasm
  is determined by the slower person. Travel times are as follows: 
   
  Tim = 10 minutes 
  Fred = 5 minutes 
  Twiggy = 2 minutes 
  Warren = 1 minute 
   
  Objective of the Problem: Find a
  way to get all 4 band members to the opposite side of the chasm in 17 minutes
  or less. This can be done, but you have to be systematic in your problem
  solving. There are no “tricks” like juggling, splitting people in half,
  throwing the flashlight, etc. This is a straightforward problem that many if
  not most “muggles” cannot solve, because they are unwilling to invest the
  systematic effort in evaluating all the possible solution candidates. 
   | 
  
     
   | 
 
 
  | 
   M 5/23/011 
   | 
  
   No class. 
   | 
  
     
   | 
 
 
  | 
   T 5/24/011 
   | 
  
   HW due: First, read this handout on forward and backward chaining.
  Then, show how backward chaining and
  general problem solving strategies can explain the process of finding a
  solution to last Friday’s chasm problem. Your writeup should satisfy the
  following requirements: 
   
  1. Develop a notational system for showing clearly what occurs during a chasm
  crossing and for keeping track of the cumulative time spent. Do not assume
  that your notation is clear to other readers! Many of the notational systems
  students used on Friday were so cryptic that they would have been
  intelligible only to the student who made the markings. A compact notation is
  desirable, but clarity is also required. Some words of explanation are
  probably going to be necessary for your notation. 
   
  2. Complete sentences and a neat presentation are expected. 
   
  3. There is no credit for excessive verbosity, but be sure to write enough
  words to make the meaning clear. 
   
  4. Be sure to explain exactly why it is that Tim and Fred must make a trip
  together. (Hint: Think of proof by
  contradiction, which you learned in geometry class.) 
   
  5. Then, explain how to use backward chaining to leverage the “theorem” in #4
  into a full solution to the problem. 
   
  6. Be sure to prove that your claimed solution actually works. 
   
  7. A correct solution that is lacking in clarity will not earn full credit. 
   | 
  
     
   |