Computer Science

Faculty of Engineering, LTH

Denna sida på svenska This page in English

EDAA25 - C Programming

Programming assignments

    • 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. The book may still be available at KFS but all distribution will be moved to print-on-demand through Amazon (for a European site, it is printed in Europe and the German site has free shipping to Sweden starting at EUR 39).
    • 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 such as rpn.c --- the file must have the same name as the assignment.
    • 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.
    • Use the Ubuntu package available from Microsoft's app store
    • 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)
      F7More 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. 


    AssignmentDeadlineExercise in the book Winner 2017Results
    rpn15/9 at 15.001.5scores
    word22/9 at 15.001.8scores
    poly29/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).