Starts on the Date/Time - Jan 24 2017 - 12:00 pm - 1:00 pm
Many classes exist today in order to teach our gifted kids how to program. Most push for skill development in the language du jour, but very few teach our kids the computer science concepts that underlie all programming languages. In this class, we will work from the basics of “what is an algorithm?” moving to “how do I build a good one?” and even “how do I design an algorithm that utilizes Dijkstra’s Algorithm to traverse a web?” Don’t let the advanced concepts scare you away! Students can work in any language they choose; complete beginners can use Scratch to work on weekly problem sets. (See scratch.mit.edu for more information about this free and fun tool for programming with drag and drop tools.) Many assignments will require no coding at all, just a lot of thinking.
We will use Computational Fairy Tales, written by a former member of the Cornell Robotics Faculty and a current senior programmer at Google. The book is fun, using allegory to make the concepts memorable as we will follow Princess Ann on her quest to save her kingdom. This course will supplement the book with lectures, weekly thought and programming assignments, and added videos and materials. Some subject matter is taken from 6.001.x, a required computer science course for all MIT computer science graduates. In addition, the instructor will be available to help with the assignments during the week at online office hours.
Instructor: Andrea Whitson
5-10 students, 10 years and older
Time: Tuesday 12-1 pm Pacific.
Weekly. Jan 24 – May 9, 2017. Spring Break TBD
Weekly. Jan 23 - May 9, 2017. Spring Break TBD by instructor.
Class Registration Fee: $245.00 (GHF Members receive a $15 discount off of each class they sign up for)
GHF Members must be logged in to access the Member-only GHF Online registration form.
Week 1: Theoretically Possible things verses Things We Can Actually Do
Week 2: Review (Everyone should attend!) Big-O and Complexity from CF Recursion Graph Theory Basics
Week 3: Thinking Inside the Box: Constraints and How Origami Works
Week 4: Not Constrained Enough? What to do when there are too many possibilities.
Week 5: Greedy Algorithms and Satisficing
Week 6: Review of NP-hard problems and approaches to them.
Week 7: Expected Run Time– the heartbreak.
Week 8: Can we do two things at once? Concurrency Part 1
Week 9: A little more concurrency, a lot more Origami.
Week 10: Concurrency 3: Expected Run Time, Modular Origami in paper and in code.
Week 11: 3-d Programming: What’s under the hood?
Week 12: Moving around in a 3-d world, Planning a modular Origami design
Week 13: Packing Problems 1
Week 14: Packing Problems 2: Packing with Constraints
Week 15: More than 3-dimensions.
Week 16: More than 3-dimensions.