CSC 151.01, Class 31: Project introduction
Overview
- Preliminaries
- Notes and news
- Upcoming work
- Extra credit
- Questions
- Debrief on analysis lab
- About the project
- Group composition and construction
- Playing and brainstorming
Preliminaries
News / Etc.
- I brought strange food to try to try to remind us of spring during the return of winter.
- Quiz 10 returned.
- I am about 2/3 done with grading exam 3. Barring unforeseen circumstances, I expect to have it returned by Wednesday.
- I was glad to see a few of you at the Medieval Improv concert.
- I am glad to hear the many positive experiences people had at Drag.
- Sorry that the link to the project description was not obvious.
- Yay! It’s prereg week.
- If you’re having fun in CSC 151, you should consider 161. It has robots!
- Some of you were asking about which Math to take for CS
- If you are good at math, and can spare the courses in yuour schedule, I recommend 131-133-215-218. Linear algebra is increasingly important.
- If you are a bit more math phobic, 131-208-209 is often a good approach.
Upcoming work
- No lab writeup.
- Assignment 7 due Tuesday at 10:30 p.m.
- Are folks using the evening tutors?
- Reading for Wednesday
- Flash Cards due Wednesday at 9pm.
- Optional.
- Grade is percent of eight flashcard assignments you complete (capped at 100%).
- Project Proposal due Monday at 10:30 p.m.
- Due early to give me time to react.
Extra credit (Academic/Artistic)
- Any one activity in the student research symposium this week.
- Convo Thursday. Mary Katherine Nagle.
- CS Table Tuesday: TBD
- CS Extras: Programming Languages Research Group, 4:15 p.m. Thursday.
Extra credit (Peer)
- Play presentation Friday at 4pm. In the Wall Theatre (154).
- The 25th: Mellon Mays Project introductions, 4:15 to 6:30 p.m.
- ISO Cultural Evening Saturday night in Harris Cinema (time forthcoming)
Extra credit (Recurring peer)
- Listen to KDIC Wednesdays at 6pm - Witty banter with other
personalities and/or co-host. Also Indian, Arabic, and Farsi music.
(Up to two units of extra credit.) - Peer editing with SS. Talk to SS about the details. Make your English Lit more literate.
Extra credit (Misc)
- Host one or more prospective students. (I think there’s one main visit weekend left.)
Other good things
Questions
What documentation on assignment 7?
- 6Ps. What else?
If we do part 1 of the homework, most of our tasks are to change code. What else do we have to do?
- Change documentation.
What’s the difference between apply and reduce.
reducerequires a binary procedure and a list of values. It then “reduces” the list to a single value by repeatedly applying the procedure to neighboring values.- The order in which it applys the procedure is unspecified.
applywill take any kind of procedure and a list, and treat the list as the arguments for the procedure.- I could write
(apply substring (list "rebelsky" 2 5)) - You would not likely write that exact command.
- However, you might have somehow generated the list ‘(“rebelsky” 2 5)
We can just useapply`.
- I could write
- For the quiz, if we have
(apply - '(1 2 3 4)). That’s really just a long way to write(- 1 2 3 4).- The
-operator is left-associative, so it ends up being(- (- (- 1 2) 3) 4)
- The
Debrief on analysis lab
(define list-reverse
(lambda (lst)
(if (null? lst)
null
(list-append (list-reverse (cdr lst)) (list (car lst))))))
We found that this did about 28 calls to list-append for a list of length 7.
Why? (It’s clearly a problem, but what leads to the bad behavior?)
(list-append lst1 lst2)requires about(length lst1)calls tolist-append.
Can we generalize? Yes. For a list of size n, this takes about
(n*(n+1))/2. (No, that’s not Scheme.)
About the project
- Do something interesting of your choice within constraints
- New and different data set
- Requires some processing/munging/whatever you want to call
- With a novel algorithm that does something to help you understand the data
- Examples
- Literature classifier
- Text generation (better than what we just did, perhaps based on word frequencies rather than letter frequencies)
- A more complicated neural net (e.g., two levels, rather than one)
- A set of tools for dealing with a data set. (E.g., …)
- Goals
- Apply what you’ve learned this semester
- To something new and interesting
- Including at least one substantive algorithm
- Constraints
- Time-boxed: 8-10 hours per person over two weeks
- You will get to use about one hour of class time on Friday, April 20.
- You will get about the same amount of time on Friday, April 27.
- Plus 3-to-4 hours outside of class each week. (Half your designated out-of-class time.)
- Ideal group size: 3
- 2, or 4, or 1 is also okay
- Time-boxed: 8-10 hours per person over two weeks
- For a week from today: Find the data set and write a proposal
- Describe set
- Describe your intended goals with the data set
- What you think you can do
- What would satisfice
- Reach goal
- Describe the algorithm(s) you will be writing
- Additional work
- Do the project (probably started while writing the proposal). Due Tuesday, May 1st.
- Present! (Friday, May 4 and Monday, May 7)
- There’s a draft rubric
Group composition and construction
With your partner, identify three to five skill sets that you think would be particularly important for your project to succeed.
- “Big picture thinker” = Someone who can conceptualize the overall project and how we should approach it.
- “Internet researcher” - Someone who can find data sets or interesting
algorithms.
- Note: You might outsource some of this to DASIL in ARH.
- “Dedication” - Will put in the work to get it done.
- “Writer” - Someone who can English.
- “Communicator” - Someone who can present, recap what we’ve done so far with the group.
- “Manager” - Time management, planning, leadership. The person who makes sure that we don’t go off on wild tangents.
- “Coder” - Someone who can write the code that the BPT comes up with and that the Writer will write about.
- “Creative” - Someone who can come up with a good project idea. (Might also help design an awesome presentation.)
- “Devil’s Advocate” - Someone who asks the simple (but hard) questions.
Sam’s selection of skills
- Yellow - Coder
- Pink - Writers
- Blue - Managers
- Green - Creative or Big Picture
- Purple - Devil’s advocate
Good approaches
- Understand the limitations of Scheme
Playing and brainstorming
Start thinking about possible projects. We’ll look at project topics on Wednesday and try to pair them with people. (I’ll figure out a strategy for presenting topics by Wednesday.)
Text stuff
- Poetry generation, using knowledge of syllables in words (and rhymes and …)
- Using phonemes, rather than letters, for text generation. (Sam would call this the ghoti project.)
- TED talks. (Generate, understand topic, ….)
Visualization
- Visualizations of health care disparity.
- Visualization of cancer rates.
- Visualization of prison locations and populations.
Neural net
- Cat (or LOLcat) identification.
- CSC 151 grade predictor. [Data would be hard to gather.]
- Language determination.
Things that always scare Sam
- Will this student graduate from Grinnell? (What if we want to apply this to who we accept because the administration wants to increase our retention rate?)