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:
- Use appropriate tools compiling/debugging C/C++ programs.
- Write C programs using pointers and arrays, user-defined data types, input/output operations, bit-level operations, and user-defined and library routines.
- Understand the differences between C and C++, and write C++ programs using stream input/output, classes, vectors and templates.
- Use or understand the main techniques of dynamic memory management in C and C++.
- Structure larger programs in multiple files.
- Understand the differences between application software and system software.
Withdrawal from Course
Withdrawal dates and process:
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.
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
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:
During these times, there will be tutor(s) present to assist students who have questions and need help.
Set Texts and Recommended Readings
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 Item||Due Date or Test Date||CLO(s)||Percentage|
|Programming Assignments - 5 in total||As stated in the respective assignment handouts.||CLO: 1,2,3,4,5||25%|
|Blackboard Quizzes - 5 in total||As stated in the respective quizzes.||CLO: 1,2,3,4,5,6||5%|
|Mid-Term Test (45 minutes)||11 April 2019 18:00-18:45||CLO: 1,2,3||15%|
|Examination (2 hours)||Refer to university examination schedule.||CLO: 2,3,4,5,6||55%|
- 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.
- 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.
- 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
- 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/.
As stated in the respective assignment handouts.
There is no group work.
There will be no peer assessment.
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.
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.
Links to General Course Information
- Academic Integrity and Plagiarism: https://www.victoria.ac.nz/students/study/exams/integrity-plagiarism
- Academic Progress: https://www.victoria.ac.nz/students/study/progress/academic-progess (including restrictions and non-engagement)
- Dates and deadlines: https://www.victoria.ac.nz/students/study/dates
- Grades: https://www.victoria.ac.nz/students/study/progress/grades
- Special passes: Refer to the Assessment Handbook, at https://www.victoria.ac.nz/documents/policy/staff-policy/assessment-handbook.pdf
- Statutes and policies, e.g. Student Conduct Statute: https://www.victoria.ac.nz/about/governance/strategy
- Student support: https://www.victoria.ac.nz/students/support
- Students with disabilities: https://www.victoria.ac.nz/st_services/disability/
- Student Charter: https://www.victoria.ac.nz/learning-teaching/learning-partnerships/student-charter
- Terms and Conditions: https://www.victoria.ac.nz/study/apply-enrol/terms-conditions/student-contract
- Turnitin: http://www.cad.vuw.ac.nz/wiki/index.php/Turnitin
- University structure: https://www.victoria.ac.nz/about/governance/structure
- VUWSA: http://www.vuwsa.org.nz
Offering CRN: 18315
Prerequisites: COMP 103
Duration: 04 March 2019 - 30 June 2019
Starts: Trimester 1