CSC 151.01, Class 42: Wrap Up
- Sit where you would like (within reason).
- Feel free to take Chocolate Candy, a Clementine, and/or an oatmeal Creme pie.
Overview
- Preliminaries
- Notes and news
- Upcoming work
- Extra credit
- Questions
- Project presentations
- The subject matter(s) of the course
- Course evaluation
- Concluding comments
- Final Friday PSA
- Comments on the final (optional)
News / Etc.
- Don’t forget that epilogues are due tonight!
- I don’t have office hours next week, but I should be in my office at assorted times on Monday and Tuesday. I’ll also be in 3815 from 9-noon on Wednesday.
Upcoming work
- Cover sheets for exam 4 due NOW!
- Epilogues due TONIGHT!
- Optional final during finals week (Wed 2pm, Thu 9am, or Fri 9am).
Extra credit (Peer)
- Musical: Next to Normal Friday at 7:30, Saturday and Sunday at 2:30. Arrive early and put your name on a waiting list.
Extra credit (Misc)
Other good things
- Stay healthy and sane during finals week.
Questions
- When will we get our grades?
- Monday, I plan.
Presentations
The subject matter(s) of the course
Problem solving
- Draw it out.
- Break a big problem down into smaller problems.
- Work in a pair (or group): It’s helpful to bounce ideas off of someone else.
- Work the algorithm by hand, or try to observe the solution in action, so as to understand what it’s doing.
- Understand the problem well before trying to develop a solution.
The core of computer science: Algorithms and data structures
- Core algorithms
- filter
- sort - merge, insertion, selection
- search - linear and binary
- Core data structures
- lists
- queues
- trees
- binary search trees
- files - persistent data
- Algorithms and data structures interact. The data structure limits your operations but also encourages you to think in different ways.
- Recursion: Solve problems by breaking them down into smaller versions of the same problem.
- Core components of algorithms
- Built-in operations and types
- Sequence operations
- Make choices - conditionals
- Repeat operations - map, recursion
- Input and output
- Name values
- “That one other thing.”
Functional programming
- Higher-order procedures - functions as first class values
mapsection,l-s,r-s-> Fill in some parameters of a procedure to create a new procedure.applycomposefilter- …
- Anonymous procedures (in Scheme, use lambda to do that)
- “Pure” procedures - Don’t modify their input (or the world around
them); always return the same value given the same input.
- Contrast with (a) the things that end in !, (b)
random,read, that give different values with the same input
- Contrast with (a) the things that end in !, (b)
Program and software design
- Documentation
- Debugging
- Make your code readable to others (format, variable names)
Scheme
- (P (a ren) (the (s ((((((is)))))))))
- lambda for procedure (and anonymous procedure definition)
Data science
- Clean data.
- Files.
- Use helpers
General thinking skills
- Responding to unexpected Q’s. (This situation.)
- Problem solving (beyond CS)
- Ask for help, don’t hit your head against the board (too much)
- Work with others
- Take a break from your work; trust your subconscious.
- Know when to walk away
And beyond
- “Uh” and “um” always works as answers, as long as you can figure out what they stand for.
- There’s more to life then
- Have fun
- You have amazing peers, support them in their activites (or just in themselves)
- Take care of yourselves and others; you’re worth it
- Don’t swear.