6W1 Summer 2016

Class Notes     What's Due?

Mon May 29
Memorial Day today, no classes.

If you want to meet with me today please e-mail me.

Sat-Sun May 27-28
I am in Ann Arbor, MI, accessible by e-mail, returning Sunday night.

Fri May 26
Exam 03 as administered in class today.

Weekly survey of thoughts collected yesterday in class.

Thu May 25
Starting today (effectively replacing his office hours)
  • Jeremiah will hold a help/PLTL session
  • in LH125 from 7-8pm (every Tue and Thu).

The notes as we wrote them in class today.

No new lab assignment today. Review for Exam, work on homework.

We will still take attendance in lab. Lecture notes contain review problems.

Here's a simple exercise worked out with Yibo after class yesterday.

As always with .rkt files right click, save file as..., then open with DrRacket.

Wed May 24
We don't have class on Monday 5/29 (Memorial Day).

Exam 02 stats:

  • Overall average: 85.93
  • Problem 1 average: 81.17
  • Problem 2 average: 93.61
  • Problem 3 average: 83.00

Individual grades have been posted in Canvas.

Notes as we wrote them in class today.

Tue May 23
Seating for today please. Notes as written in class.

Here are the answers we collected last Thu in class (anonymous survey).

Here's the board from yesterday:

I'll post all answers to all questions in that set (and more) soon.

Also, remember: Homework 05 is in many regards very much like Lecture 08 (05/18).

The videos from YouTube that Jeremiah pointed in Canvas:

These are all that I could find, for a total of about 80 minutes, and in order of their upload.

Mon May 22
Here are solutions to Homework 04 (click link, see code).

Here are solutions to Homework 03 (click link, see code).

Here are solutions to Lab 07 (right click, save link as...).

Here are solutions to Lab 08 (right click, save link as...).

For those who tried to solve the first problem in Lab 08 directly:

; avg is the solution posted using sum and number 
; average : ManyString -> Number
; calculates the average word length with just one helped
; wishlist: number : ManyString -> Number
; this function (number) already provided
; same template as number and sum (but not avg!)
(define (average los)
  (cond ((bottom? los) (error "No data."))
        ((bottom? (many-rest los)) (string-length (many-first los)))
        ((many? los) (/ (+ (string-length (many-first los))
                        (* (number (many-rest los))
                           (average (many-rest los))))
                        (number los)))
        (else (error "Bad data."))))

; again avg is provided in the posted .rkt file
(check-expect (avg e02) (average e02)) 
(check-expect (avg e03) (average e03))
(check-expect (avg e04) (average e04))
(check-expect (avg e05) (average e05))
(check-expect (avg e06) (average e06))
(check-expect (avg e07) (average e07))
(check-expect (avg e08) (average e08))
average is the most direct solution and even it uses a helper (number).

A very similar problem is in the synopsis posted 10 days ago.

Sun May 21
Here's the seating for tomorrow, please.

Here are the answers to Lab 06.

Resources page, grades updated.

Sat May 20
The reading assignment for this coming week: Abstraction.

There will be plenty of opportunities to practice the structural recursion template.

Fri May 19
Exam 02 as administered this morning in class.

Solutions to Lab 03 to be posted soon (as we catch up with grading).

Thu May 18
Consider the following data:
(define jungle-patrol
  (cons (make-elephant "Babar")
    (cons (make-elephant "Tantor")
      (cons (make-elephant "Horton")

Here's an illustration according to Aining:

Notice that Horton is holding (that's a cons) onto empty's tail!

Jeremiah's Cheat Sheet for Exam 02 (right-click, save link as...).

Here's our seating for the day. Notes as we wrote them in class today.

Wed May 17
Here's our seating for the day.

Notes as we wrote them in class today.

Here's the Racket file from class today (right click link, then save link as...).

I've updated lecture notes 05/16 with Stepper snapshots to trace the function behavior.

Tue May 16
Here's our seating for the day.

Reading assignment for the week: Arbitrarily Large Data.

Notes as we wrote them in class today.

Sent to the class distribution list just now:

regarding: c211 updates
sent by: german, dan-adrian
when: tue 5/16/2017 9:22 pm

Homework 03 has been posted. It will be discussed in class tomorrow (you need to at 
least do the reading assignment for tomorrow to get started on it). Both Lab 07 and 
Homework 04 to follow shortly. Please read (look through) sections 5.1, 5.2, 5.3, 5.4 from 
Part I: Fixed-Size Data and 8. Lists from Part II: Arbitrary-Sized Data for tomorrow's lecture. 
Also review this program for tomorrow's class (we developed it in class today, I will ask you to 
recreate it in class (in less than five minutes) to earn your attendance points):

; A String is one of:
;   -- ""
;   -- (string-append Letter String)
; We defined Letter earlier.
; Examples: ...
; lengde : String -> Number
; does what string-length does
; (define (lengde word)
;   (cond ((string=? word "") ...)
;         (else ( ... (string-ith 0 word) ... (lengde (substring word 1)) ... ))))
(define (lengde word)
  (cond ((string=? word "") 0)
        (else (+ 1 (lengde (substring word 1))))))
(check-expect (lengde "") 0)
(check-expect (lengde "john") 4)
(check-expect (lengde "alexandra") 9)
(check-expect (lengde "nicholas") 8)

Let me know if you have any questions or need any help. 

Adrian German


Mon May 15
Some stats about the first exam:
Average: 84.94
Standard Deviation: 16.70
Highest Score: 99.71
Lowest Score: 30
Per problem averages were:
Problem 01: 97.50
Problem 02: 89.11
Problem 03: 90.54
Problem 04: 64.04
(60.71 / 61.96 / 55.00 / 79.64 / 78.21 / 52.71 / 60.00)
Problem 05: 83.54
Grades will be posted in Canvas later today.

Notes as we wrote them in class today.

Sun May 14
Here are the solutions to problems on the first exam.

Sat May 13
Schedule of office hours for the TAs:
Jeremiah Mondays 3-5pm LH125
Topher Thursdays 1-2pm BH107 (lab)
Ruifeng Wednesdays 1-2pm BH108 (lab)
Here's also the logistics info regarding lecture teams.

Access is restricted to those enrolled in the class per FERPA regulations.

Fri May 12
Exam today is over sections 1.1 through 1.7, and 2.1, 3.1, 3.2 in Fixed-Size Data.

Sent last night to the class distribution list:

regarding: c211 notes updated
sent by: german, dan-adrian
when: thu 5/11/2017 11:31 pm
to: c211 6w1 summer 2017 distribution list 

I wrote and posted the notes for today (available under May 11 in Class Notes):


There are two examples in it, with a variation on the second example towards the end. 

A link to a .rkt file from Jeremiah's lab is also included. I hope all of this is useful. 

We will see you in class at 10:20am tomorrow for the first exam. I'm sure you will do well.

In the meantime if you have any questions or need any help please let us know. 

Adrian German
Here's the text of the exam administered earlier today.

Thu May 11
Exam One in class tomorrow continues in lab.

Here's Exam One as administered last year.

Notes as we wrote them in class today.

Wed May 10
This class is about systematic design.

There is only one design recipe and it looks like this:

(a) choose a data definition/representation
(b) give examples (you need to build some data by hand)
(c) choose the name of your function
(d) write the signature of your function
(e) write the purpose statement of your function
(f) give some examples (you will write check-expect-like statements)
(g) now write the header of your function and the function template
(h) fill in the template by actually completing the function
(i) actually write the check-expects for testing your function
There are many data representation choices and templates but only one design recipe.

Here's a synopsis of templates originally prepared for H211 Fall 2015.

Notes as we wrote them in class today.

Tue May 09
Notes as we wrote them in class today.

Mon May 08
6W1 Summer Session starts tomorrow, here's our class.

Updated by © Adrian German for C211/A591