Computer Science

Faculty of Engineering, LTH

Denna sida på svenska This page in English

EDAG01 Effektiv C

EDAG01 Efficient C, 2021

Taking EDAG01 as a distance course 2021

  • The lectures will be in Matteannexet in MA:5 on Tuesdays and Thursdays at 10-12, but they are also at youtube from 2020. 
  • The labs will be online with Discord: sign up here.
  • Office hours (frågetid) will be online with Zoom and booked at calendly
  • It will be possible to take an oral exam instead of a written, and they are also booked at calendly. There are some major advantages with an oral exam. You select the day and time, you can reschedule any number of times, and if you would fail, you can retake it any number of times after studying at least one more week (but don't expect to fail it...), and you will get the result immediately. 


  • 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 automaticallysynced (to your laptop, desktop, tablet, phone and web browser) and of course encrypted.
  • 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



They will be put in a single pdf but are available here until then:


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: