Home Page

Assessment
Grading

Grading Circle

PieChart There are 3 ways of getting points in this course: Milestones (♦), Mentoring and completing the workbook. The first comprises 90% of the marks, the second 10%, and the third gives you bonus marks.

Milestones

Milestones are marked as Pass/Fail. Each of the 6 milestones is worth 15 points for a total of 90 points. You may only test the next milestone (go up a level) only after you pass previous milestone (level).

1 Tools

Write a simple program in Notepad++. Compile, link, and run the program. This includes downloading and installing the compiler and editor on your own computer (if you do not have a computer, you can request an alternate examination) and demonstrating the use of the debugger program.

2 UML (Universal Modelling Language)

Look a problem and write a possible solution to the problem using UML. Knowledge of the start symbol, activity symbol, flow symbol, comments, splitting, and parallel processing symbols is required.

3 Basic Program

Write a simple C language program making use of functions (written by himself, others and from the standard library).

4 VP-Diagrams

Draw VP diagrams for a short piece of ANSI-C code that makes use of functions, pointers, and variables.

5 Repetition and Decisions

Write a function that conditional, repetition, with sequential flow.

6 Structures (Arrays & Records)

Write programs using arrays or records. This is to prepare you for next C language course: Data Structures and Algorithms

Mentor

Once you pass a Milestone (♦) you can become a mentor to others who have not yet passed a milestone. When they pass, you receive 1 points!

If you have not yet passed a milestone you cannot be a mentor.

Bonus

At the end of the course, your books will be collected and based on the quality of your notes, bonus points will be rewarded.

C Code for Marking

struct DB{
  long int id;
  char nameZH[16];
  char nameEN[16];
  char country[16];
  int ms[6]; // set to 1 if pass
  int mentor; // # students
  int bonus;
};
struct db *readDB(char fname[]);
int mark(struct DB ss);
#define NSTUD 100
int main(void);
  int mark,id;
  struct DB *db;
  db=readDB("db.csv");
  mark=calcMark(db[id]);
}
int calcMark(struct DB rec){
  int sum=0;
  int iMS=0;
  while(rec.ms[iMS]==1 && iMS<6){
    sum+=15;
    iMS++;
  }
  if(rec.mentor>10)sum+=10;
  else sum+=rec.mentor;
  sum+=rec.bonus;
  return(sum);
}