DD1361 Programming Paradigms 7.5 credits
Education cycleFirst cycle
Main field of studyTechnology
Grading scaleA, B, C, D, E, FX, F
At present this course is not scheduled to be offered.
Intended learning outcomes
After the course the student should be able to
- apply and explain common concepts in programming: recursion, control flow, interpreting, paradigms
- apply and explain basic concepts of functional programming: higher-order functions, currying, lazy evaluation, pattern matching, types and classes
- apply and explain basic concepts of logic programming: unification, backtracking, cuts, negation and different programming techniques such as generate-test
- apply and explain basic concepts in formal languages and syntax analysis: automata, regular expressions, grammars, lexical analysis, and recursive descent
- write their own client-server and use protocols and explain how they are interpreted and written
in order to
- get a broader perspective on programming,
- judge which paradigm and which programming language that is appropriate for solving a specific task,
- use the appropriate style of programming in the selected programming paradigm,
- actively participate in discussions about programming paradigms, programming language history, language definition, properties of type systems, principles of language design, language translation, programming principles and programming concepts.
Course main content
Functional programming: concept of function, higher-order functions, currying, strategies of evaluation, streams, pattern matching, overloading, polymorphism, interpreting, types and classes.
Logic programming: unification, backtracking, negation and cuts as well as non-deterministic programming and block diagram.
Formal languages and syntax analysis: automata, regular expressions, grammars, lexical analysis, recursive descent, language classes.
Language Translation: interpreting, compilation and linking.
For single course students: completed upper secondary education including documented proficiency in Swedish corresponding to Swedish B, English corresponding to English A. Furthermore: 7,5 hp in mathematics and 6 hp in computer science or programming technics.
For those studying at KTH: DD1337, DD1338 and DD1350 Logic for Computer Science (can be taken in parallell) or equivalent.
To be announced at least 4 weeks before course start at the web page for the course. Last year material produced at the department was used.
- LAB2 - Laboratory Work, 4.5, grading scale: A, B, C, D, E, FX, F
- TEN2 - Examination, 3.0, grading scale: P, F
In this course all the regulations of the code of honor at the School of Computer science and Communication apply, see: http://www.kth.se/csc/student/hederskodex/1.17237?l=en_UK.
Marcus Dicander, e-post: firstname.lastname@example.org
Per Austrin <email@example.com>
DD2481 Principles of Programming Languages, DD2372 Automata and Languages, DD2457 Program Semantics and Analysis, ID2213 Logic Programming
Course syllabus valid from: Autumn 2014.
Examination information valid from: Spring 2019.