Computer Science

Faculty of Engineering, LTH

Denna sida på svenska This page in English

EDAG01 Effektiv C

EDAG01 Efficient C, 2020


  • Except for some mails in the beginning of the course, I will communicate most info using Discord and put relevant files in a Tresorit cloud directory that you will get a link to in an email. Tresorit is in a naive sense the opposite of GitHub: a distributed file system with everything automatically synced (to your laptop, desktop, tablet, phone and web browser) and of course encrypted.
  • You can sign up to a lab group here (please write you and your friend on the same line).
  • Welcome to this course!


About this course

  • This is a beginner's course in C and no previous knowledge about C or C++ is assumed.
  • You need to be familiar with e.g. lists and trees from courses in e.g. Java or Scala.
  • You will learn a lot about C so you will probably be more knowledgeable than most C programmers in industry (but atomic variables, the C/C++ memory model and multithreading are taught in EDAN26 instead).
  • In addition to the C language you will learn about computer architecture and a method to improve the performance of programs using various tools.
  • There are six compulsory labs in which you will write a program for optimizing integer linear programs using the simplex algorithm.
  • There are three compulsory assignments (same as previous years from EDAA25: rpn, word, poly)
  • You can win two coffee mugs.
  • There will be an oral exam in zoom (30 minutes but usually 20 is sufficient). You will be able to schedule (and reschedule your exam time if you think you need more time (or for any reason)).
  • The lectures will be published pdfs and youtube videos.
  • Labs will be done in groups of one or two and presented with discord.

Course book

  • It is this book, available from Amazon which also has pseudo code for the simplex algorithm.
  • You can use older editions without simplex since you will get a pdf with the pseudo code.

Oral exam

  • You are allowed to bring one book and four A4 papers (eight pages) with hand written notes, and you can use them during the exam to check up things before you answer (or take a pause when answering and then resume the answer).


Note! If there is an English language youtube playlist, then the pdf was modified for this course, and otherwise the pdf was for the spring 2020.

F01enseIntroduction to C
F02enseInteger linear programming
F03enseMore C
F04enseInstruction set architectures: IBM POWER
F06enseSuperscalar processors: POWER8
F07enseDeclarations and expressions
F08enseCache memories
F09enseStatements and the C Preprocessor
F10ensePerformance analysis
F11enseThe ISO C Standard Library
F12enseOptimizing compilers



The labs have temporarily been moved to my personal page


The three compulsory assignments RPN, WORD, and POLY are exercises 1.5, 1.8, and 1.7 in the course book. You can find a pdf with these pages in the Tresorit directory and also a directory there for each assignment. Note that at Forsete, there is in addition also secret input (huge for WORD and random for POLY).



Page Manager: