NWEN241 (2019) - Systems Programming


This course considers the issues raised when programming at a low-level, for example in embedded systems, OS system level, or network protocol stacks. It includes an introduction to C language programming and motivating examples related to a wide variety of applications of system programming.

Course learning objectives

Students who pass this course should be able to:

  1. Use appropriate tools compiling/debugging C/C++ programs.
  2. Write C programs using pointers and arrays, user-defined data types, input/output operations, bit-level operations, and user-defined and library routines.
  3. Understand the differences between C and C++, and write C++ programs using stream input/output, classes, vectors and templates.
  4. Use or understand the main techniques of dynamic memory management in C and C++.
  5. Structure larger programs in multiple files.
  6. Understand the differences between application software and system software.

Withdrawal from Course

Withdrawal dates and process:


Alvin Valera (Coordinator)

Teaching Format

During the trimester there will be two lectures and one tutorial per week. There are practical lab (programming) assignments that require students to apply the concepts taught during the lectures.

Student feedback

A summary of the course feedback provided by students previously for this course is available at http://www.cad.vuw.ac.nz/feedback/feedback_display.php.

Dates (trimester, teaching & break dates)

  • Teaching: 04 March 2019 - 09 June 2019
  • Break: 15 April 2019 - 28 April 2019
  • Study period: 10 June 2019 - 13 June 2019
  • Exam period: 14 June 2019 - 29 June 2019

Class Times and Room Numbers

04 March 2019 - 14 April 2019

  • Monday 09:00 - 09:50 – LT101, Maclaurin, Kelburn
  • Wednesday 09:00 - 09:50 – LT101, Maclaurin, Kelburn
  • Friday 09:00 - 09:50 – MT228, Student Union, Kelburn
29 April 2019 - 09 June 2019

  • Monday 09:00 - 09:50 – LT101, Maclaurin, Kelburn
  • Wednesday 09:00 - 09:50 – LT101, Maclaurin, Kelburn
  • Friday 09:00 - 09:50 – MT228, Student Union, Kelburn

Other Classes

There will be optional 1-hour computer lab sessions in CO246 on Week 2 to introduce the programming environment and development tools. Sign-up sheet (online) will released on Week 1.
From Weeks 2-12, CO246 is reserved for use by NWEN 241 students to work on their practical assignments on the following days/time:
Mondays: 15:00-17:00
Tuesdays: 12:00-14:00
Wednesdays: 15:00-17:00
Thursdays: 10:00-12:00
Fridays: 15:00-17:00
During these times, there will be tutor(s) present to assist students who have questions and need help.


There are no required texts for this offering.

There are many good C/C++ programming books available.
We shall be referring to the following textbooks:

  • Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language [2nd Edition], Prentice Hall, 1988.
  • Al Kelley and Ira Pohl, A Book on C [4th Edition], Addison-Wesley, 1998.
  • D.S. Malik, C++ Programming [8th Edition], Cengage, 2017.



Other recommended books:
  • Stephen G. Kochan, Programming in C: A complete introduction to the C programming language [3rd Edition], Sams Publishing, 2005
  • K. N. King, C Programming: A Modern Approach [2nd Edition], W. W. Norton & Company, 2008.
  • Stephen Prata, C Primer Plus [5th Edition], Sams Publishing, 2005.
  • Paul Deitel and Harvey Deitel, C How to Program [6th Edition], Pearson Education, 2010.
  • Adam Hoover, System Programming [1st Edition], Pearson Education, 2010

Mandatory Course Requirements

In addition to achieving an overall pass mark of at least 50%, students must:

  • Obtain a D grade or better in the final exam.

If you believe that exceptional circumstances may prevent you from meeting the mandatory course requirements, contact the Course Coordinator for advice as soon as possible.


This course will be assessed through programming assignments, Blackboard quizzes, mid-term test, and a final examination.

Assessment ItemDue Date or Test DateCLO(s)Percentage
Programming Assignments - 5 in totalAs stated in the respective assignment handouts.CLO: 1,2,3,4,525%
Blackboard Quizzes - 5 in totalAs stated in the respective quizzes.CLO: 1,2,3,4,5,65%
Mid-Term Test (45 minutes)11 April 2019 18:00-18:45CLO: 1,2,315%
Examination (2 hours)Refer to university examination schedule.CLO: 2,3,4,5,655%


  1. Each programming assignment that is late (i.e., submitted on the submission system after the deadline) will be penalised by 20% of the achieved marks if it is up to 24 hours late, and penalised by 40% if it is between 24 hours and 48 hours late. Any work submitted more than 48 hours after the deadline will receive 0 marks.
  2. Each student will have 3 "late days" which you may choose to use for any programming assignment(s) during the course. There will be no penalty applied for these late days. You do not need to apply for these - any late days you have left will be automatically applied to lab assignments that you submit late.
  3. The late days are intended to cover minor illnesses or other personal reasons for being late. You should only ask for extensions in the case of more significant or longer lasting problems (and you may need documentation). Do not waste "late days" on procrastination.


Requests for programming assignment deadline extensions must be sent in writing (email) to the course coordinator, attaching any relevant supporting documents, e.g. medical certificate from doctor. 
No extensions will be granted for Blackboard quizzes.

Submission & Return

  1. Instructions on submission of programming assignments and return of work are available on the course Wiki at https://ecs.victoria.ac.nz/Courses/NWEN241_2019T1/.

Marking Criteria

As stated in the respective assignment handouts.

Group Work

There is no group work.

Peer Assessment

There will be no peer assessment.

Required Equipment

Refer to https://ecs.victoria.ac.nz/Courses/NWEN241_2019T1/ for details.


The total workload for NWEN 241 is 150 hours. In order to maintain satisfactory progress in NWEN 241, you should plan to spend an average of 10 hours per week on this course.

Teaching Plan

See https://ecs.victoria.ac.nz/Courses/NWEN241_2019T1/LectureSchedule

Communication of Additional Information

You must regularly check the course Wiki page at https://ecs.victoria.ac.nz/Courses/NWEN241_2019T1/ for the latest information on the course, e.g. lecture schedule, assignments, reading materials, etc.

Offering CRN: 18315

Points: 15
Prerequisites: COMP 103
Duration: 04 March 2019 - 30 June 2019
Starts: Trimester 1
Campus: Kelburn