Skip to main content
Till KTH:s startsida Till KTH:s startsida

ID1218 Applied Programming 7.5 credits

Course offerings are missing for current or upcoming semesters.
Headings with content from the Course syllabus ID1218 (Autumn 2008–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

  - Programming models and languages: imperative programming,   object-oriented programming, functional programming,   concurrent programming. Introduction to key properties, benefits,   and application areas.  

- Programming in C++: differential approach to Java. Key   differences. Relation to C. Basics: data types, control   structures, objects, classes, inheritance, object-based   polymorphism. Advanced: parameter passing, references, pointers   and explicit memory management, parametric polymorphism with   templates.  

- Concurrent programming: paradigms (shared data structures   versus message passing), techniques and concepts (safety,   liveness, concurrency control, services).  

- Functional and concurrent programming in Erlang: recursion,   list processing, pattern matching, message sending, safety   (mutual exclusion), liveness (concurrency adaptors, message   ordering).  

- Pragmatics: development tools and environments, testing,   debugging, profiling.

Intended learning outcomes

The overall aim of the course is to provide the necessary knowledge in programming models, concepts, languages, and environments used in today's software construction such as in web-based systems, embedded systems, communication systems, distributed systems, just to name a few.

More specifically, after reading the course, students should be able to:

  • know basic characteristics and key concepts of common programming models (object-oriented, imperative, functional, and concurrent programming models) and know about common programming languages that implement these models.
  • analyze programming tasks and identify aspects of these tasks that make them suited for the above mentioned programming models.
  • apply object-oriented programming concepts from Java in C++: classes, inheritance, object-based polymorphism, and exceptions.
  • understand and apply the concepts of C++ as a language following the object-oriented and imperative programming model: parameter passing, pointers and references, explicit memory management, overloading, parametric polymorphism through templates.
  • configure, compile, and interface to software libraries in C++.
  • design, structure, debug, test, and profile medium-sized programs in C++.
  • apply basic functional programming techniques in Erlang: recursion, pattern matching, list processing.
  • understand and identify safety and liveness properties of concurrent programs.
  • apply mutual exclusion, message ordering, and concurrency adaptors as common synchronization patterns in concurrent programs.
  • structure concurrent applications into communicating and cooperating concurrent abstractions.

Literature and preparations

Specific prerequisites

Completed upper secondary education including documented proficiency in Swedish corresponding to Swedish B and English corresponding to English A. For students who received/will receive their final school grades after 31 December 2009, there is an additional entry requirement for mathematics as follows: documented proficiency in mathematics corresponding to Mathematics A. And the specific requirements of mathematics, physics and chemistry corresponding to Mathematics D, Physics B and Chemistry A.

Recommended prerequisites

 ID1004, ID1005

Equipment

No information inserted

Literature

Mark Allen Weiss, C++ for Java Programmers, Prentice Hall, 2004.

Concurrent Programming in Erlang, Prentice Hall, 2001 (elektronisk version).

Examination and completion

If the course is discontinued, students may request to be examined during the following two academic years.

Grading scale

A, B, C, D, E, FX, F

Examination

  • LAB1 - Laboratory Work, 3.0 credits, grading scale: P, F
  • TEN1 - Examination, 4.5 credits, grading scale: A, B, C, D, E, FX, F

Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

The examiner may apply another examination format when re-examining individual students.

Other requirements for final grade

Examination (TEN1; 4.5 hp)
Laboratory course (LAB1; 3 hp)

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted

Examiner

Ethical approach

  • All members of a group are responsible for the group's work.
  • In any assessment, every student shall honestly disclose any help received and sources used.
  • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

Further information

Course room in Canvas

Registered students find further information about the implementation of the course in the course room in Canvas. A link to the course room can be found under the tab Studies in the Personal menu at the start of the course.

Offered by

Main field of study

Technology

Education cycle

First cycle

Add-on studies

No information inserted