Syllabus for Program Design



  • 10 credits
  • Course code: 1DL200
  • Education cycle: First cycle
  • Main field(s) of study and in-depth level: Computer Science G1F, Technology G1F
  • Grading system: Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
  • Established: 2007-03-19
  • Established by: The Faculty Board of Science and Technology
  • Applies from: week 27, 2007
  • Entry requirements: Introduction to Computer Science, or Information technology.
  • Responsible department: Department of Information Technology

Learning outcomes

In order to pass, it is required that the students

  • can analyse simple problems and design solutions using algorithms and programming;
  • can describe the algorithm concept and can construct algorithms with
    sequential and alternative composition and repetition (iteration/recursion);
  • can construct simple data structures;
  • know basic syntax and semantics for a functional programming language such as Standard ML;
  • can code and document programs for simple problems;
  • can describe - independently of the code - the task that a program performs and the preconditions that it requires;
  • can motivate that a program (or algorithm) with repetition terminates;
  • can carry out code inspection, testing and debugging for simple programs;
  • know basic concepts of programming languages, such as
    expression, value, type, function, binding, recursion, pointer, side-effect etc.


Introduction to programming: the purpose of programming,
the phases of the programming process, programming in its context exemplified by applications, short history of programming, computer systems from the programmer's point of view, programming environments.

Algorithms: what is an algorithm, the program as algorithm, difference in precision between everyday algorithms and programs.

Basic functional programming in Standard ML or another functional language: function calls, values and types, function abstraction, definition abstraction.

Basic data structures: simple data types, lists, trees, fields. Data abstraction.

Basic programming structures: sequence, alternative, repetition (recursion).

Side-effects: assignment, basic input/output.

Basic programming techniques: systematic routine of requirements specification, problem analysis, program design, coding, code review, testing, debugging and documentation.

Basic web programming.


Lectures, lessons, computer labs and exercises.

Reading list

Reading list

Applies from: week 27, 2007