TDDB27 Programming: Abstraction and Modelling, 6 ECTS-points
/Programmering-abstraktion och modellering/

Advancement level:
B

Aim:
The aim of this course is to give a modern introduction to computer science in general and programming in particular. The structure of the course is partially based on MIT's introductory computer science course. The emphasis is on introducing various abstraction techniques as a basis for problem decomposition and program design.

Prerequisites:
Some acquaintance with programming

Supplementary courses:
TDDA 29 Data Structures TDDA 11 Ada and Programming Languages TDDA 47 Real Time and Concurrent Programming TDDB 21 Programming and Data Structures

Course content:
Introduction to the programming environment used during the labs. The programming language SCHEME (a dialect of LISP): Procedures, Symbols, Lambda-notation, Expression, Lists, Higher-Order Procedures, Names and Environments. Data and Procedure Abstraction. Data and program structures. Recursive and Iterative Processes. Evaluation Models and Strategies. Overview of various Programming Paradigms. Models for program interpretation: Substitution Model, the Environment Model.

Course literature:
Abelson, H, Sussman, G, J, Structure and Interpretation of Computer Programs. MIT Press. Compendium compiled at the Department of Computer and Information Science (IDA). Further references: Aho A, Hopcroft, J, E, Ullman, J, D, Data Structures and Algorithms, Addison-Wesley, 1987. Haraldsson, A, Programmering i Lisp, (Swedish) Studentlitteratur, 1993. Harel, D, Algorithmics, Addison Wesley, 1992. Lunell, H, Datalogi, en inledande översikt, (Swedish) Studentlitteratur, 1991. Goldschlager, L, Lister, A, Computer Science - A Modern Introduction, 2nd edition, Prentice Hall, 1988.

TEN1Written examination, 2 p.
LAB1Labratory work, 2 p.
Course language is swedish.