EBoard 34: Project Prep
Approximate overview
- Admin
- Quick notes on the project
- Team and project formation, phase 1
- Team and project formation, phase 2
- More notes from yesterday
- Fun with patterns
- Project work (I hope)
Administrative stuff
Introductory notes
- MPs 3-5 returned. Makeups will be posted soon.
- Our graders seem to be making good progress on other things.
- If you have questions, contact me.
- The autograder for MP7 will be minimalist.
- The autograder for MP8 will be even more minimalist.
- Don’t forget, if Sam doesn’t respond in 24 hours, feel free to
contact him again.
Friday PSA
- I care about you. I want to see you be safe and healthy.
- So please take care of yourself. If you consume substances that
may affect you, like sugar, please do so in moderation.
- Respect the people you are with! Consent is essential.
- Do what is right for you.
Upcoming activities
Token Events
- Mentor Session Friday at 4:30, there’s a sign somewhere. It’s
probably in 3821.
- Collegium Sunday the 21st at 2pm.
- Mentor Session Sunday at 4pm.
- Finding Jobs & Internships, Part 2, Tuesday Nov. 23 at 7pm
- Finding Jobs & Internships, Part 3, Tuesday Nov. 30 at 7pm
- Debate far in the future: Young Adult Dystopias.
Other good things
- Play this weekend!
- Applications are open for CSC-151 tutors and graders. Due
Sunday at 10pm.
Upcoming work
Q&A
Do I get to choose my team for this assignment?
Nope, unless your team is “Just me.”
Do you have the same expectation for groups of 1 and groups of 4?
Nope. More work / larger projects from groups of 4.
Do you have any idea what the rubric will look like?
Nope. Can you tell that there’s a pattern here?
How do mini-project redos work?
Sam will post a place on gradescope, “MP3 Redo”. Fix the things
that are wrong, post there. Let’s hope you earn an E. If not,
there will be a second chance for a redo.
My grade look wrong.
DM me. When I fail to respond, DM me again.
Will Sam adjust expectations about the number of E’s you reach?
Perhaps. We will see.
Project introduction
- It’s nice to apply your learning to something new that’s (kind of)
your own.
- Limited to “relevant to the class
- Working with a group/team.
- We end the semester with an open-ended project.
- Time-boxed. Four hours per person (plus presentation).
- Encourage a gradual (MVP) development cycle. Start small and
build upon it, so that after the first short amount of time,
you always have something working.
- It’s important to show it off (Monday of week 14).
- We need to decide on projects and form teams.
Today’s question: What skills do you need from group members to
help ensure a successful project?
- Presenter - Someone who can stand in front of the room confidently
and talk about project and code.
- Presentation Designer - Someone who can put the presentation together
so that everyone, even those less confident, can do well presenting.
- Creative - Someone who can help come up with new ways to push the
project so that you’re not reinventing old projects.
- Organized - Can keep the materials together so that we don’t get
a morass of assorted stuff that looks like Sam’s office.
- Leader - Keeps the group on task, helps assign roles. (But not
a control freak.)
- Energizer Bunny - Brings energy to the group through enthusiasm
- Checker - Pays attention to details
- Part Wizard - Particularly good at some part (e.g., regex, Web
pages).
- Explainers - Documentation, instructions, etc.
- Linguist - Understanding of language
- Tester - Someone who is good at saying “Will this work?” and
“Where will this break?”
- Researcher - Someone good at finding additional info.
Five roles
- Leader: Blue
- Tester: Purple
- Visionary (Creative): Green
- Documenter: Yellow
- Presenter: Red
Broad characteristics
- No control freaks
- No minions
- Communication skills
- Programming
- Collaborative
- Reliable; we want to be able to trust our teammates
- Committed
- Good attitude
- Be a decent human being; show up and be there and respond to email.
- Timely
- Self aware
- Respectful
Now, form a group with all five colors.
Brainstorm ideas for the project.
Post to the appropriate Teams channel.
Remember: Projects should be relevant to the themes of the class: Text
analysis and generation (including fancy HTML).
Failed algorithm
- Grab three white cards and a red card.
- Write your name at the top of each.
- On the red card, write any restrictions (e.g., “I won’t work with Sam”
or “I”d really like to work with Eamon”)
- On the white cards, write your three favorite projects (number them
1, 2, and 3 and you skills).
On the white card
E.g.,
Name: SamR
Mad Skills: Leader, Disorganizer, Anger
Preferences: I'd like to work on the page that randomly
replaces words with foreign language words. I won't
work with Eamon. I'd like to work with Prof. J.
Fun with patterns
;;; (add-to-body xml addme) -> sxml?
;;; xml : sxml?
;;; addme : sxml?
;;; Adds addme to the start of the body.
(define add-to-body
(lambda (xml addme)
(match xml
[(cons 'body (cons (cons '@ attributes) rest))
(cons 'body (cons (cons '@ attributes) (cons addme rest)))]
[(cons 'body rest)
(cons 'body (cons addme rest))]
[(cons head tail)
(cons head (map (section add-to-body <> addme) tail))]
[anything-else
anything-else])))
More notes from yesterday
Recall this pattern
(define basic-recursive
(lambda (params)
(if (base-case-test params)
(default-value params)
(combine params (basic-recursive (simplify params))))))
For each of the following, what are base-case-test, default-value,
combine, and simplify?
- Express them as procedures
- Approximate Scheme is okay.
(length lst)
base-case-test: null?
base-case-value: (lambda (anything) 0) (We want to just say “0”,
but we’re phrasing it as a procedure.)
combine: + (well, (lambda (this that) (+ 1 that)))
simplify: cdr
(last lst)
base-case-test: Is the cdr null? (lambda (lst) (null? (cdr lst)))
(o null? cdr)
base-case-value: car
combine: Just return the recursive result .
(lambda (this that) that)
simplify: cdr
(factorial n)
base-case-test:
base-case-value:
combine:
simplify:
(select-odds lst)
base-case-test:
base-case-value:
combine:
simplify:
(product lst)