Programming Assignments

We will do five programming assignments. Each programming assignment takes up 10% of your total grade.

Grading Policy of Assignments


10% Assignment #1
10% Assignment #2
10% Assignment #3
10% Assignment #4
15% Assignment #5

Assignment Submission (Important)


Use the KLMS to submit your assignments. (Link will be announced at KLMS.) Your submission should be one gzipped tar file whose name is YourStudentID_assign#.tar.gz. For example, if your student ID is 20241234, and it is for assignment #1, please name the file as 20241234_assign1.tar.gz.

To create the .tar.gz, first move all your files to the directory (20241234_assign1).

mkdir 20241234_assign1
mv all_your_files 20241234_assign1

Create a .tar.gz file by the 'tar' command like

tar zcf 20241234_assign1.tar.gz 20241234_assign1

Then, you'll see 20241234_assign1.tar.gz. If you want to decompress and release the files in it (in a different directory),

tar zxf 20241234_assign1.tar.gz

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.

Late Submission


Students can use two late submission tokens which can be late up to one day with penalty for the programming assignments. That is, you can use your tokens for a total of two assignments. Your token will be used automatically, i.e., the token is applied to the first two assignments you submit late. With your tokens, you can submit your assignment with the following penalty.

  • 95% of the full credit up to 1 hour late,
  • 80% of the full credit up to 24 hours late,
  • 0% of the full credit beyond 24 hours late.

Important:

  • Any late submission without token will result in zero credit.
  • Note that we do not accept late submission for the last assignment (assignment 5).

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 (eelabg11 or eelabg12) 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 (eelabg11 or eelabg12). 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.

We will use an automated program for scoring. And it works similar below practice in assignments. So you can check your functionality using diff command.

./samplewc209 < somefile > output1 2> errors1
./wc209 < somefile > output2 2> errors2
diff output1 output2
diff errors1 errors2
rm output1 errors1 output2 errors2

Fix a small mistake


Because we used an automatic grading system, trivial mistake in your submission may cause huge amount of deduction in your assignment score. For such exceptional circumstances, you can request changes and get modified grading at the TA's discretion. You will get 15% amount of deduction from your total score. Note that once submitted no algorithm change to the code is allowed and you cannot propose any changes to the submitted code.

Extra point


Some programming assignments provide extra points. These extra points cannot exceed the total score (50% of final score) that you can obtain from assignments. But, within the total score, the extra points will affect your final score.

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