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.
- 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.
- 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.
|F01||en||se||Introduction to C|
|F02||en||se||Integer linear programming|
|F04||en||se||Instruction set architectures: IBM POWER|
|F06||en||se||Superscalar processors: POWER8|
|F07||en||se||Declarations and expressions|
|F09||en||se||Statements and the C Preprocessor|
|F11||en||se||The ISO C Standard Library|
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).