A balanced approach to first-year computer science

We describe a first-year course sequence for computer science majors that covers most of the traditional first-year concepts, providing a balance between formal analysis and software synthesis, with examples and assignments in three high-level programming languages: Pascal, Scheme (a lexically scoped dialect of Lisp), and C. We argue that this balanced, tri-lingual approach promotes more effective pedagogy and provides students with a broader foundation than does an all-formal, all-programming, or single-language focus.