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 …?
- 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.
- 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
- Mini-project 1 redo
(due Saturday at 10:30 p.m. CST; note change)
- Mini-project 2
(due Wednesday at 10:30 p.m. CST)
- No reading for tomorrow!
- No quiz tomorrow!
- Readings for Wednesday (not yet written; ready by class Tuesday)
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”
- 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