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: Information Systems and Technology
  • Approved: 2010-03-10
  • Date of change: 2017-10-03
  • Version valid from: 2017-07-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 completion of the course, the student should have the following knowledge and skills:
- notion about paradigms and fundamental concepts of programming languages, about various language constructs, and ability of critically comparing design alternatives;
- understanding formal methods for describing syntax and semantics of languages, as well as algorithms of lexical and syntax analysis;
- good knowledge and practical skills on applying fundamental tools of imperative programming from primitive types, loops and arrays to pointers and subroutines;
- good understanding of object-oriented specifics and ability to apply the object-oriented issues like operator overloading and inheritance in practical coding;
- understanding specifics of alternative paradigms - functional and logical programming, concepts and structures comprising their backgrounds;
- basic knowledge concerning language-related tools for supporting concurrency

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

L101: Lab and Assignment, 2.5 Credits
Grade scale: Fail (U) or Pass (G)

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

5.0 hp, T101: Exam
Grade: A, B, C, D, E, Fx and F. A-E are passing grades, Fx and F are failing grades.

2.5 hp, L101: Laboratory Exercises and Assignments.
Grade: Pass or Fail

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