IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Funktionelt design og programmering 
Kursusnavn (engelsk):Functional design and programming 
Semester:Efterår 2000 
Udbydes under:cand. it, softwareudvikling (swu) 
Omfang i ECTS:0,00 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:10 
Forventet antal deltagere:
Maks. antal deltagere:
Formelle forudsætninger:Introductory programming (Grundlæggende programmering); or a mathematical, science or engineering bachelor's degree. 
Læringsmål:Functional programming is a way of modeling, designing and implementing solutions to information processing problems in a safe, compact and programmer-effective fashion. This course introduces function-oriented computing concepts as well as programming and design techniques for small-scale applications.



At the end of this course you will be able to:


  • Understand and design small-scale applications in a function-oriented fashion, and program them using the functional programming language Standard ML.

  • Understand and program with: recursive data types and function definitions; higher-order functions (functions as data values); atomic data types such as boolean truth values, integers, characters, strings; compound data types such as records, tuples, lists, trees and vectors and their associated operations; imperative control and data structures, including references and input/output operations.

  • Understand regular expressions and context-free grammars (though not their theory), and program with finite state machines and combinatory parsers.

  • Understand programming language concepts such as binding, environment, evaluation, type, type inference.

  • Understand and perform basic reasoning about program correctness using transformation and induction.

  • Apply a number of functional program design techniques and patterns, and recognize opportunities for their application.

  • Understand the basic architecture of the World-Wide Web (WWW) and construct server side WWW-applications via the Common Gateway Interface (CGI), specifically ML Server Pages.

  • Understand the goals and basics of the document markup language Extended Markup Language (XML) and associated technologies, and construct simple XML processing programs.

 
Fagligt indhold:Topics:

  • Principles of functional modeling, design and programming

  • Simple data types and functions

  • Recursive function definitions

  • Programming language concepts

  • List processing (incl. sorting and introduction to computational complexity)

  • Tree-based data structures (incl. search trees, priority queues)

  • Higher order functions as values (incl. list combinators, stream processing and exploratory searching)

  • Imperative programming (incl. input/output, refererences, imperative data structures)

  • Context-free languages and combinatory parsing

  • Regular expressions and finite state machines

  • Functional reasoning (incl. induction)



Mini-projects:


  • Programming WWW-based servlets using ML Server Pages

  • XML processing

 
Læringsaktiviteter:

lectures, exercise sessions, homework assignments, miniprojects 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 13-skala, Intern censur

written exam (4 hours)  

Litteratur udover forskningsartikler:NULL