Programming Assignments

We will do eleven programming assignments. Each programming assignment takes up 9.09% of your total grade.

  • Assignment 1: Introduction to UNIX and C (due: 9/20 10:25am)
  • Assignment 2: Shells and Commands (due: 9/20 10:25am)
  • Assignment 3: Vscode (due: 9/27 10:25am)
  • Assignment 4: Compiler (due: 10/4 10:25am)
  • Assignment 5: TBD
  • Assignment 6: TBD
  • Assignment 7: TBD
  • Assignment 8: TBD
  • Assignment 9: TBD
  • Assignment 10: TBD
  • Assignment 11: TBD

Ethics Document (Important)


For every assignment submission, please fill out and submit the pdf version of this document that pledges your honor that you did not violate any ethics rules required by this course and KAIST. You can either scan a printed version into a pdf file or make the Word document into a pdf file after filling it out.

Please sign on the document and submit it along with your other assignment files, or we won't grade your assignment.

Collaboration Policy


Please refer to the course policy page.

Coding Style


Good coding style will be one criterion for grading each assignment. Please make sure your code has proper indentation and descriptive comments. At the start of each file, please add your name, student ID, and the description of the file. Make sure not to leak any memory and check/handle every return value of function calls.

Assignment Grading


Your submission will be graded on one of the Lab machines (eelabg1, 2) for the course. You are free to use other machines for coding and debugging, but please make sure to compile and test your final version on the Lab machines (eelabg1, 22). In a rare case, library mismatch or O/S stack difference (Solaris vs. Linux) can bypass some of your bugs, but they can actually show up on the Lab machines while grading. In order to avoid this last-minute surprise, please test on Lab machines before submitting your work.

gcc209


gcc209 is a special script made for EE209. Students need to use the script for assignments. How to make gcc209 is as follows.
1. Make the following script by yourself using editor

#!/bin/bash
gcc -Wall -Werror -ansi -pedantic -std=c99 "$@"


2. Make this script executable.
$ chmod +x gcc209

3. Move this file to folder that can be accessed globally
$ sudo mv gcc209 /usr/bin/gcc209