Skip to main content

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
    • map
    • section, l-s, r-s -> Fill in some parameters of a procedure to create a new procedure.
    • apply
    • compose
    • filter
  • 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

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.

Course evaluation

Concluding comments

Final Friday PSA

Comments on the final