TDDB25 Programming: Abstraction and Modelling, 7,5 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:
None.

Supplementary courses:
TDDB 11 Imperative Programming Languages. TDDB 20 Programming - data structures and algorithms. TDDA 69 Data and program 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. Abstraction methods: data abstraction, procedure abstraction, standard interfaces, linguistic abstraction. Data and program structures. Recursive and Iterative Processes. Evaluation Models and Strategies. Overview of various Programming Paradigms: Functional Programming, Imperative Programming, Object Oriented Programming, Data-Driven Programming, Logic Programming. Models for program interpretation: Substitution Model, the Environment Model. Strategies for program interpretation: normal-order, applicative order, delayed (or lazy) evaluation.

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, 3 p.
LAB1Labratory work, 2 p.
Course language is swedish.