TDDB80 Computer Programming and Languages, 19,5 ECTS-points
/Programmering och datorspråk/

Advancement level:
B

Aim:
The course will provide - knowledge of concepts in computer science related to computer languages, such as command lan guages, query languages, description languages, embedded languages, document languages and programming languages, and the construction and usage of such computer languages - basic knowledge regarding formal languages, syntax and semantics - knowledge regarding concepts about programming languages, such as compiling, interpretation, data types, data structures, control structures, modules, parameters and other program units - knowledge regarding the functional and the imperative programming paradigms. - ability to formulate algorithms, iterative and recursive, and ability to solve simple problems. - abilities in programming,in the use of the programming language LISP, and the use of an incremental programming system. Emphasis will be made on an interactive methodology when programming. - - abilities in programming, in the use of the imperative programming language Ada, and orientation of other such languages, C, Java and Pascal.

Prerequisites:
Elementary computer usage. Concepts (sets, relations and graphs) from TDDB90 Discrete mathematics and logic.

Supplementary courses:
TDDA69 Data and programming structures, TDDB34 Object-Oriented Development of Usable Systems and all other programming courses.

Course content:
- Introduction to actual computer systems. - Study of different kinds of computer languages, such as query languages (i.e. SQL), command lan guages (i.e. Unix), document languages (i.e. RTF, MIF), description languages (i.e. HTML), printer languages (i.e Postscript), embedded languages (i.e in Excel). Group work and written assignments. - Functional programming. Recursion, higher order functions. Data and procedure abstraction, abstract data types. Data driven programming. - The programming language Common Lisp. Basic functions applied to numbers, symbols, lists and other data types. Macro functions and functions that changes the structure of data. - Laboratory and project work in Common Lisp. - Imperative programming. Concepts, such as variables, data types, control structures, modularisation, program units, error handling. - The programming language Ada. Laboratory and project work in Ada. - Orientation of programming languages as C, C++, Java and Pascal and older languages as Fortran, Cobol, Algol and Simula.

Course literature:
Course materials from the department of Computer and Information science. Haraldsson, Anders, Programmering i Lisp. Studentlitteratur, 1993 (Swedish) Barnes, J G P, Programming in Ada95, Addison-Wesley, 1995 Sebesta, Concepts of Programming Languages, Benjamin Cummings 1995

TEN1Written examination, 2 p.
LAB1Laboratory and project work in Lisp, 4 p.
LAB2Laboratory and project work in Ada, 4 p.
UPG1Oral and written group assignments, 3 p.
Course language is Swedish.