CSC151.01 2014F, Class 56: Wrapup
- Preliminaries. [10:00-10:05]
- Upcoming Work.
- Extra Credit.
- The subject matter(s) of the course.
- Review broad topics [10:05-10:10]
- Contribute [10:10-10:30]
- Sam comments [10:30-10:35]
- Course evaluation. [10:35-10:45]
- Final comments. [10:45-10:50]
- Thanks to our mentors!
- Final PSA for this class.
- I need a volunteer to take EOCEs to Science Division Office.
- Continued MathLAN problems mean that most, but not all, grades are
entered. For those receiving grades after class, your ultimate grade
will not be lower.
- Course evaluation (last part of class)
- Optional final (Tuesday at 9 or Friday at 9; Food!)
Extra Credit Opportunities
- Evan's radio show 5pm Friday nights on KDIC
- Donna's radio show Sunday midnight on KDIC (maybe)
- Jazz Band, Dec. 13, 8pm Gardner
- Monday night "With Toy Trains" study break with Noteworthy
- Looking ahead: We do not have classes on MLK day, but we do have
campus events. You should consider participating in those events.
The subject matter(s) of the course
We're talking about these issues because five of the six questions
ask you to think about "the subject matter of the course". I think it's
worthwhile to talk to you a bit about how you might describe such a thing.
Review broad topics [10:05-10:10]
Scheme is a language for expressing programs/algorithms.
- Local bindings and let
- Ways to sequence values
- A sequence of expressions in the body of a procedure or
- How to do recursion in Scheme
- Boolean values are cool (George Boole rocks!)
- Higher-order procedures
- You can take procedures as parameters or return procedures
- "The one on the quiz"
- Constructing other procedures
- We learned like 2000 different procedures. yay vocab!
- You can learn a whole lot of CS with just one language.
When we think about software design, we think about how to write better
- Identify preconditions and postconditions.
- Check preconditions.
- Test your programs using a testing framework, like Rackunit.
- Be concise.
- We are sometimes more efficient coders if we write helper functions
to do some of the work. Helpers also make our code more readable.
- Creativity - There's more than one way to make a sandwich.
- Efficiency - Bad design means that programs run a long time. The
folks who built our Web advisor software need to learn that.
- Ordering is important.
- Be careful.
- Scope: Limit how data can be accessed
CS is the study of algorithms and data structures.
- The components of an algorithm
- Variables and Parameters (two kinds of named things)
- Subroutines (another kind of named things)
- (Input and output)
- one more that you should think about
- Recursion - We can define a procedure in terms of itself.
- Ethics of building software and computing: Roles of free software.
- Relationships between iteration and recursion as ways to repeat.
- The power of randomness.
- "Great ideas in CS"
- Data structures: Linked lists
- Algorithms: Sorting algorithms (insertion, selection, merge)
- Searching algorithms (binary, sequential)
- Not all problems can be solved algorithmically
We tried to help you think differently on what goes on "under the surface"
of an image.
- Turtles are a really slow model. (So is image-compute!)
- By hand
- It's possible to design really cool software that's really not
- There are many ways to achieve the same result; think about which
one is likely to work best.
General Skills / Ideas
- Group work - How to interact with other people when working on projects.
- Thinking on your feet.
- Careful reading/editing.
- Benefits of reflecting in advance and retrospectively.
- Time management (aka "how to deal with way too much work and an
expectation that you can fit meetings with other people into a Grinnellian's
- Know about laws, such as academic honesty standards.
My turn [10:30-10:35]
- Course evaluation. [10:35-10:45]
- Final comments. [10:45-10:55]
Course evaluation [10:35-10:45]
Final comments [10:45-10:50]