CS Lab
Helsinki University of Technology
Suomeksi

In English


T-93.210

Basic Course in Programming T1

Home page

Information Assignments Studying Tools Miscellaneous

Basic course in Programming T1 is the first programming course of the study program of Computer Science and Engineering at Helsinki University of Technology. It is both a relatively ambitious elementary programming course, and an introduction to further studies in computer science.

Since the students are talented and they should in due time represent the best available understanding of computer science, the course is different from typical elementary programming courses. Instead of spending time in learning the structures and special features of a large and complicated programming language, the course uses a simple programming language Scheme that is based on a small set of powerful key concepts. The language itself does not require a long time to learn and it can therefore be used to present several models of the operation of a computer that are useful for a programmer. In addition, light can be shed on different approaches to programming (functional programming, sequence processing, object-oriented programming, and logic programming) and interesting applications can be presented (for example, data compression, simulation, constraint propagation, generic arithmetics, and symbolic derivation).

The course will touch some central themes of computer science that the students will encounter in their subsequent studies: computational complexity, concurrency, non-deterministic computation, the concept of a unicersal machine, and so on. Towards the end of the course the focus shifts on how to build an interpreter, that is, a program that executes other programs. Various interpreter are presented in order to demonstrate how the changes in the interpreter affect the interpreted language.

The course can be considered successful if a student achieves an independent programming skill and an initial understanding of what is possible with programming and what kinds of constraints are associated with it.



 

This page maintained by Seppo Törmä (email: seppo.torma@hut.fi).