EBoard 08: Pair programming and other positives

This class will be recorded! Its use is limited to members of the class. Please do not share with others.

Approximate overview

  • General administrative stuff [~10 min]
  • About grading and tomorrow’s learning assessments [~10 min]
  • Q&A [~10 min]
  • Quiz on lists [~10 min]
  • Pair programming discussion [~50 min]
    • TPS
    • Some statements
    • Debrief
    • TPS, continued

Administrative stuff

Notes and News

  • Evening tutoring will be available 3-5 p.m. Sundays and 8-10 p.m. Sundays through Thursdays in the tutoring channel on the CS team.
  • Individual tutors are also available, but we prefer that you try the evening tutors first.
  • Mentor sessions tonight at …?
    • You’ll get an email.
  • Makeup quizzes will generally be available at 7:30 am before the next-next class. Please finish them before that class.
    • The makeup quiz for today’s class will be Wednesday.
  • The time between 7am and 8am is usually reserved for class prep. I’m working frantically and won’t normally answer questions.
  • For clarity: You can use your labs and such when you do quizzes.

Comments from the graders

  • Remind students to carefully read and follow assignment instructions as there were many solutions that just didn’t quite line up with the instructions (extra parameters, solid shapes instead of outlines and vice versa, etc.)
  • Remind students to use the the provided procedure stubs (hopefully it will help with some of the problem from above with mismatching params, extra params, missing params, etc.)
  • Remind students that when they are copy-pasting code they need to rerun their code and verify that all procedures work as expected – there were too many errors that were caused purely by not checking that their code worked after copy-pasting (extra or missing parenthesis, undefined procedures, sections of code that didn’t even compile, etc.)
    • This is important. If your code won’t run, we can’t grade it.
  • Remind students that we will only grade procedures that they have not commented out – they are welcome to leave their previous attempts in the comments if they are worried about not showing enough work.

Upcoming activities

Attend (or watch recording) and send a one-paragraph reflection.

  • Noon, TODAY, CS Table Some Interesting Discussions (+1 token)
  • 5pm, TODAY, Education Picnic (+1 token)
  • Noon, Thursday, Convocation (+1 token, more details Wednesday)

Upcoming work

Grading

Please ask questions as I go.

  • A variant of “mastery grading”; you get graded on what you master, not *when you master it.
  • Five components:
    • Three “minor”
      • Readings
      • Labs
      • Quizzes
    • Two “major”
      • Mini-Projects
      • Learning Assessments
  • Learning Assessments have free re-dos.
  • Everything else: Tokens as a way of encouraging you to keep up.
  • Readings, labs, and quizzes generally graded S(1)/U(0) on “Did you make an appropriately good attempt?”
    • Quizzes may be graded a little more harshly on the S(1)/U(0) scale.
  • Learning assessments are a more strict Correct(1)/Not Correct(0).
  • Projects are the E(3)/M(2)/R(1)/N(0).
  • You need to reach a minimum level on all categories for each grade level. Those are specified on the syllabus page.
  • A magic algorithm is used for pluses and minuses.

Learning assessments

Please ask questions as I go.

  • Open “book” (class Web), open notes, open DrRacket, closed other people, closed broader Web.
  • Assigned in groups of seven.
  • You get twenty minutes for each assessment. (I’d hope you could do most of them in less.)
  • You can do them any time between the start of class and the start of the next class.
  • You don’t need to do all of them at once.
  • If you don’t pass a learning assessment, you can try a new version of it in the next group. (That does give you more learning assessments the next time.)
  • Sorry, I don’t have data on re-dos from last term.
  • Yes, you can do none of the learning assessments until the final and try all twenty-eight on the final. I would not recommend that strategy.
  • For fairness, I will not answer questions about the LAs.

Q&A

Mini-project 2

Are ISBNs entered strings?

Yes. They might start with a 0 or contain an X.

How do I check if a string represents a non-negative integer?

Use string->number. It returns false (#f) if the input cannot be converted to a number. You should also verify that the result is a non-negative integer.

I can’t reach the Wikipedia page.

Whoops.

When will we get grades for first mini-project?

I don’t know.

Can we redo mini-projects?

Yes. The assumption is that you will generally need to redo mini-projects in order to get an A.

What is required in documentation and testing in mini-project two?

Document your procedures

    ;;; (PROC PARAM PARAM) -> TYPE-PREDICATE?
    ;;;   PARAM : TYPE-PREDICATE?
    ;;;   PARAM : TYPE-PREDICATE?
    ;;; EXPLANATION

    ;;; (circle radius type color) -> image?
    ;;;   radius : positive-integer?
    ;;;   type : symbol? ('outline or 'solid)
    ;;;   color : string? (describing a color)
    ;;; Creates a circle with the given characteristics

Testing

    (check-equal? #t (valid-isbn? "0062669613"))
    (check-equal? #f (valid-isbn? "0062669614"))

We’ll also do more testing in the coming days.

Where does documentation go?

Traditionally, you put the documentation for each procedure immediately before the procedure.

What are good practices of code formatting in Racket?

Hit Ctrl-I before submitting.

Formal params on the same line as the lambda.

Actual params either (a) all on the same line or (b) all on separate lines.

When I write “ugh” on your code, don’t do it again.

Grading and Learning Assessments

Is a sample set of LAs available?

Yes. In the Handouts section of the site.

Did you finish the list of procedures?

No. Check at 5pm today.

Why 5pm?

Why not?

Explain the relationship between twenty minutes and 24 hours.

Each LA gives you twenty minutes once you open it. But you can open it any time in a twenty-four-hour window. You can take breaks between LAs, but not within LAs. Twenty minutes per problem.

Will the first seven questions on the second set of LAs be the same?

They will be different, but will cover the same topic.

Do we have class tomorrow?

I’ll do announcements and answer questions at the start of class. You need not attend.

Quiz

Yay! A chance to demo our knowledge.

Pull up DrRacket, your list lab, references on lists.

Pair Programming: TPS

Think, Pair, Share

In the lab room, form groups of three or four and come up with a set of answers to “What are the most important points from the reading (or thinks I’ve taken from pair programming in 151) that I’d want to share with someone who did not do the reading (or not in 151)?”

While you are chatting, I will be sending you quotes to read aloud.

Pair Programming: Detour

Read the quotes aloud.

Pair Programming: Debrief + TPS Resumes

  • Goal: Working together helps the two of you learn.
  • It should be more than “Let’s just get it done.” Need to recognize the value.
  • Lots of benefits
    • Catch errors earlier
    • Learn from explaining to others
    • Meet people [+1]
    • Potted plants
    • Sharing diverse skills (and learning diverse skills)
    • Increases legibility
    • Learning to work with others different than you.
  • It never stops; you will pair throughout 151. (You will also pair throughout life)
  • “I heard someone call their partner the B word. I hope I never get them as a partner.”
    • Don’t escalate. Consider hanging up. Get a mentor or teacher.
    • Let your partner know that it is offensive.
  • What if the instructor does something like that?
    • A loud “Ouch” always helps.
  • “I’ve had positive experiences.”
  • How do we make pair programming go better?
    • That’s part of what today is.
    • Quick chats when you start. “How do we make this work well? What are some of your strengths?” Maybe a bit of social stuff.
    • Communicate openly: Keep talking through it.
    • Do not dictate what the other person should do.
    • Remember that it’s a conversation!
    • Be positive about everything