Computer Science

Faculty of Engineering, LTH

Denna sida på svenska This page in English

EDAA25 - C Programming

Programming assignments

    • Due to a bug somewhere, the links to the left only work sometimes. An expert on typo3 will look into this, or the pages will move to a different platform. In the mean time, please use the following pure file
    • Course responsible: Jonas Skeppstedt
    • Literature: Jonas Skeppstedt/Christian Söderberg: Writing Efficient C Code. For more information about the course book, see its site here.
    • 2016-09-08: The course book is again available at KFS.
    • Kursombud: TBD.
    • When you need help in the course, you should use your lecturer's office hours, which are 12.30 - 13.00 every week day during the course.
    • Note that you are not permitted to write the exam before you have passed all three assignments. 
    • If you would like to join the course after it has started, just make a solution to any of the assignments below (rpn, word, or poly) and send a mail to with a subject line such as "assignment rpn by your_stil_id" and attach a program in a file rpn.c --- and note that you need to have passed all assignments before you are allowed to write the exam!
    • Schedule

    Programming in C is easiest on UNIX (such as Linux or MacOS X), and if you are using a non-UNIX operating system some options to access UNIX are:

    • Use the PuTTY program to login remote to the Linux computers at the university: connect to
    • Install VirtualBox (from Oracle) and then install for instance Ubuntu there. 
    • Use dual booting so that you select operating system when you start the computer --- probably easiest with Ubuntu.
    • Switch to Linux and install your non-UNIX operating system in VirtualBox instead =)


    ContentsPages (LTH printing)
    F1 Introduction to C41-80 (37-74)
    F2 malloc/free, strings, lists80 - 111 (74 - 100)
    F3 Types, conversions, linkage261 - 302 (243 - 282)
    F4 Declarations325 - 382 (305 - 359)
    F5 Expressions and the C preprocessor383 - 438 (361 - 415)
    F6 Statements and more about the C library413 - 420, 439 - 616 (391 - 398, 417-580)
    F7 More library functions and old exam


    There will be a written exam. See the reading advice on the left!


    Programming assignments

    The three programming assignments are compulsory and the deadlines are strict. You must email your code to  If you miss a deadline you are invited to take the course next year. See the detailed rules to the left!

    It is especially important that you use the correct Subject line when you email your solutions! It should be of the following form: assignment rpn by stil

    You should NOT hand in a paper version since the assignments are graded by a program (actually several programs).

    About 5 minutes after you have mailed your code, you should get a reply!

    See the menu to the left where a PDF with the exercises can be found under Programming Assignments!

    The full scores you can see in the table below, is last year's score (for you to compare with). These tables will be updated after the deadline. 

    The up-to-date high schore lists are here.

    AssignmentDeadlineExercise in the book Winner 2016Results
    rpn16/9 at 15.001.5scores
    word23/9 at 15.001.8scores
    poly30/9 at 15.00 1.7



    Memory Efficient C Code Programming Competition 2015

    • A big congratulations to Anton Klarén, D09, for winning the first competition in this course! 
    • During the tests, first the input in the downloadable makefiles is used and then a trivial but random or secret input is also used for checking correctness. Secret for word and random for rpn and poly.
    • It is not possible to use only a local array allocated on the stack for the word assignment. Your program will crash when it sees the secret input (which is too large to mail back --- it's trivial but large).