CS 135: Designing Functional Programs

Course Philosophy

CS 135 is in part inspired by Math 135, a course that does not simply seek to teach facts about a list of topics, but instead introduces ways of thinking about mathematics. The goal of CS 135 is to introduce ways of thinking about computation, and ways of learning in a university environment. This course will not tell students how to do any given task in a rote fashion; it will try to show students how they can figure out possible means of accomplishing tasks. Thus, though students may not be programming in the specific language and environment of this course in the future, the skills they have learned will be applicable to new languages and environments. This also means that the same course can effectively serve both students intending to major in CS and students who will later use computers in their chosen areas of study.

The course is built around a strong textbook, so lectures will elaborate on the framework provided by the text, giving an overview of topics enriched by additional examples and explanations. We have deliberately chosen a "lightweight implementation", avoiding excessive structuring and interdependencies in course activities and materials. This will allow students to develop their own strategies for approaching and mastering concepts, and will let future instructors and tutors tailor their delivery to their own particular strengths while remaining consistent with the central themes of the course. In this respect, CS 135 resembles many upper-year CS courses, and we hope it will provide a representative look at the process of studying computer science.

Course Descriptions

External Links

Last modified on Friday, 07 September 2018, at 19:00 hours.