Computer Engineering BA (C), Theory of Programming Languages, 7.5 Credits

Please note that the literature can be changed/revised until: 
• June 1 for a course that starts in the autumn semester
• November 15 for a course that starts in the spring semester
• April 1 for a course that starts in the summer 


Print or save the syllabus as a PDF

You can easily print a syllabus from the website. Use the keyboard shortcut ctrl+p (Windows) or command+p (Mac). In the next step, you choose whether you want to print or save the course plan as a PDF.


Versions:

Syllabus:
Datateknik GR (C), Programspråksteori, 7,5 hp
Computer Engineering BA (C), Theory of Programming Languages, 7.5 Credits

General data

  • Code: DT096G
  • Subject/Main field: Computer Engineering
  • Cycle: First cycle
  • Progression: (C)
  • Credits: 7,5
  • Progressive specialization: G1F - First cycle, has less than 60 credits in first-cycle course/s as entry requirements
  • Education area: Teknik 100%
  • Answerable faculty: Faculty of Science, Technology and Media
  • Answerable department: Computer and Electrical Engineering
  • Approved: 2010-03-10
  • Date of change: 2022-11-14
  • Version valid from: 2023-01-01

Aim

The main purpose of the course is to provide students with the theoretically sound “guide” in the programming languages domain. It means, first of all, introducing the main constructs of contemporary programming languages and providing students with the tools necessary for critical evaluation of different programming languages and their applicability in certain domains.

Course objectives

After completing the course, you should be able to:
- describe different paradigms, basic concepts, and constructions for different programming languages and critically compare alternatives,
- apply formal methods for syntax and semantics of languages,
- create algorithms for lexical and syntactic analysis,
- relate general tools for imperative programming including atomic data types, loops and fields as well as pointers and subroutines,
- apply object-oriented properties, such as operator overloading and inheritance,
- explain characteristics of alternative paradigms, functional and logical programming as well as concepts and structures on which these are based.

Content

- Evolution of programming languages and programming paradigms.
- Formal grammars, syntax and semantics, lexical and syntax analysis, parsing.
- Imperative programming. Names, variables, types, statements, expressions, control structures. Their usage in Fortran, Pascal, C.
- Data types and structures: arrays, records, unions, pointer and reference types.
- Procedures/subprograms, blocks, scopes, parameter passing, nested and recursive procedures, overloading.
- Object-oriented and generic programming. Classes, encapsulation, run-time polymorphism, inheritance, templates. Coverage of Smalltalk, C++, Java.
- Functional programming. Functions and notion of lambda calculus. Functional programming for typeless and typed languages. Overview of Lisp, Scheme, and ML.
- Logic programming. A brief introduction to predicate calculus and proving theorems. Basics of Prolog.
- Introduction to concurrency. Processes and threads. Safe access to shared data. Language support for concurrency: semaphores, monitors, and message passing.

Entry requirements

Computer Engineering BA (AB), 30 Credits including Computer Engineering BA (A). Operating System, 6 Credits and Computer Engineering BA (B), Programming Methodology, 6 Credits. Mathematics BA (A), 15 Credits, including Discrete Mathematics, 6 Credits.

Selection rules and procedures

The selection process is in accordance with the Higher Education Ordinance and the local order of admission.

Teaching form

Approximately 24 hours of lectures, 16 hours of laboratory work, and 12 hours of
exercises.

Examination form

L105: Laboratory work, with report, 2.5 Credits
Grade scale: Fail (U) or Pass (G)

M105: Oral examination, 5 Credits
Grade scale: Seven-grade scale, A, B, C, D, E, Fx and F. Fx and F represent fail levels.

Grading criteria for the subject can be found at www.miun.se/gradingcriteria.

The examiner has the right to offer alternative examination arrangements to students who have been granted the right to special support by Mid Sweden University’s disabilities adviser.

Grading system

Seven-grade scale, A, B, C, D, E, Fx and F. Fx and F represent fail levels.

Course reading

Select litterature list:

Required literature

  • Author: R. W. Sebesta
  • Title: Concepts of Programming Languages
  • Edition: 7th ed
  • Publisher: Pearson Education

Check if the literature is available in the library

The page was updated 10/14/2024