Functional Problem Solving (CSC 151 2015S) : EBoards
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] - [FAQ] [Teaching & Learning] [Grading] [Taking Notes] [Rubric] - [Calendar]
Current: [Assignment] [EBoard am] [EBoard pm] [Lab] [Outline] [Reading]
Sections: [Assignments] [EBoards am] [EBoards pm] [Labs] [Outlines] [Readings] - [Examples] [Handouts]
Reference: [Setup] [VM] [Errors] - [Functions A-Z] [Functions By Topic] - [Racket] [Scheme Report (R5RS)] [R6RS] [TSPL4]
Related Courses: [Davis (2013F)] [Rebelsky (2014F)] [Weinman (2014F)]
Misc: [Submit Questions] - [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] - [Book Office Hours] - [Issue Tracker (Course)]
Overview
I've spent twenty minutes on one problem and haven't finished. Can I get partial credit?
I'm sorry that I have to do the demo.
I don't know whether or not I can ask you this question.
You can. I can choose whether or not to answer. Evidence is you'll get some kind of answer.
You have lots of bananas left over. Can I take them home and make banana bread or fried bananas or something?
Certainly.
What did you take as the main learning goals of this lab?
Fixing code to pass one test sometimes breaks other tests. Don't throw away tests!
Make good tests.
Test making can be a tedious process.
Subtle things can go wrong. You need to think about those subtleties.
Some errors are from programmers who have not completely thought through the problem.
Some are from people who have thought carefully but missed one model.
Some are from malicious instructors. (Or people who think very differently about the problem.)
If we want to be fairly comprehensive (for this example), what are some things we should check?
Different shapes: circle, square, non-square rectangle, non-circular ellipse, compound
Different sizes of shapes: unit, large, small
Different coordinates to shift to. Negative and positive, whole numbers vs. exact rationals vs. inexact reals, Zero
Different coordinates to shift from. See above.
Different directions: Left, up, right, down (all combinations?), not at all.
Make sure that you know where the starting object is.