Program(s): Undergraduate Courses, Summer College
*Taught Online for Summer 2021* 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.
While no prerequisite exists for this course, since it is a very intensive course (requiring 15-25 hours/week prep time outside of class), some prior exposure (formal or informal) is useful.
Current Grade / Education Level
Class Duration (CST)