Computers are extremely helpful at solving computational problems: problems involving numbers, counting, logic, arranging things, ordering things, manipulating images, solving puzzles, developing game strategies, and so on. This course examines a rich assortment of interesting and increasingly challenging topics, and explores what computer science has discovered about them, and what is yet to be discovered. Our main activity will be programming, and no prior experience in programming will be assumed. We will follow the methodology from the text How to Design Programs and use Scheme as our programming language. Topics will include compound and self-referential data structures, first-order and higher-order functions, trees, graphs, fractal graphics, and some classic algorithms. This course meets the general education requirement in the mathematical sciences and is recommended for all students planning to take more advanced courses in computer science.
We are no longer admitting high school students to the 2018 Summer Session. Visiting undergraduate students are welcome to apply.
High School Students
Mon Wed Fri