Unit convenor and teaching staff |
Unit convenor and teaching staff
Unit Convenor
Len Hamey
Contact via len.hamey@mq.edu.au
E6A327
Consultation after lectures or request an appointment by email
|
---|---|
Credit points |
Credit points
4
|
Prerequisites |
Prerequisites
|
Corequisites |
Corequisites
|
Co-badged status |
Co-badged status
COMP202
|
Unit description |
Unit description
This unit studies the boundary between software and the systems on which software executes. It considers the impact of constraints imposed by operating systems and hardware systems on the design and performance of computer software. Students will learn how to operate within these constraints to build effective systems software. The unit studies these issues by looking below the abstractions provided by high-level programming languages.
The unit is an introduction to systems programming and related issues. It provides an entry point into more advanced study of computer systems in the following areas: hardware implementation, operating systems, network design and programming, and programming language design and implementation.
|
Information about important academic dates including deadlines for withdrawing from units are available at https://www.mq.edu.au/study/calendar-of-dates
On successful completion of this unit, you will be able to:
The assessment has three components: the practical tasks, the report and the final exam. In order to pass this unit, you must perform satisfactorily in each component separately and also achieve a total mark that represents a pass grade.
You must make a significant attempt at each of the practical tasks and the report. If you do not meet this requirement, we may require you to perform additional work in order to complete the unit.
Submission instructions for practical tasks will be provided on iLearn. The tasks contain differing forms of automatic assessment and feedback tools that will assist you during the task and contribute to our understanding of your performance in the task.
We will determine the date of submission of your assignment by the last time that you submitted your solution. This means that if you submit the assignment, then discover that you have made a mistake and resubmit it after the due time, your submission will be late.
Each task will specify a particular due date. The due time will be 11:00:00pm on the due date. If the time of your submission shown on the system is after 11:00:00pm then you will be considered late. In order to allow time for marking, we will not accept any submission that is more than two days late except in cases of severe disruption.
The penalty for late submission is 20% of your mark per day for up to two days; after that, submissions will be closed. A submission that is 5 minutes late will be considered to be 1 day late and incur a penalty of 20% unless you have free late days remaining (see below).
If your performance in a practical task is severely affected by disruption, please (1) notify us as soon as possible by email, (2) submit whatever work you have accomplished as soon as possible after the due date and (3) submit a formal disruption request. A disruption of one or two days' duration, even if it falls at the due date, is not severe because we offer you free late days that you can use in such circumstances.
Throughout the semester we offer you three free late days. This means that we will remove the penalty that would normally apply to each of the first three days of late practical submission. For example, if you submit each of the first three practicals two days late, then we would apply two free late days to the first practical so there would be no late penalty, one free late day to the second practical so the penalty would be 20% and you would have no free late days for the third practical so the penalty would be 40%. We encourage you to preserve your free late days (by submitting on time) in case you need them later in the semester.
Name | Weighting | Due |
---|---|---|
Practical | 45% | As specified in each task |
Role of Operating Systems | 10% | Week 12 |
Quizzes | 0% | Weeks 7, 12 |
Examination | 45% | Final examination |
Due: As specified in each task
Weighting: 45%
Throughout the semester you will engage in three practical tasks that are assessed individual work. These tasks develop your skills and assess your progress. They are due as specified in each task. There are progress marks associated with each practical. You gain the progress mark each week either by achieving a milestone in the practical work, or by showing the lab demonstrator that you are engaging with the practical work during the practical session. Ican earn the progress marks in advance by achieving the milestones early, but you cannot gain the progress marks by completing the work late in a hurry.
Due: Week 12
Weighting: 10%
A written report discussing the role of operating systems. The detailed question will be posted on iLearn early in the semester.
Due: Weeks 7, 12
Weighting: 0%
Two in-class quizzes will be held to help you monitor your progress in the unit. Quizzes will be held in tutorial classes. Details will be announced on iLearn.
For ITEC692 students, these quizzes do NOT contribute to the final grade, although they are still offered and will be marked.
Due: Final examination
Weighting: 45%
The final examination will assess your understanding of the unit content and your ability to integrate concepts learned throughout the unit to solve problems.
"Computer Systems: A Programmer's Perspective" 2nd edition, R.E. Bryant and D.R. O'Hallaron, Pearson 2011.
You are required to purchase a copy of the unit text and read the set sections each week.
"The C Programming Language" 2nd edition, Brian W Kernighan and Dennis M Ritchie, Prentice-Hall 1988.
This small book is the classic reference on C programming.
All learning materials will be published on iLearn including lecture slides, practical tasks and tutorial questions.
You are required to check the iLearn website at least once a week to ensure that you are aware of the latest materials available there.
Lectures are a core learning experience where we will discuss the theoretical underpinnings and concepts that are essential to this unit. Attendance at lectures will be taken from time to time as an indicator of your engagement. Attendance at lectures is not required but is highly recommended. Lectures will be recorded on echo360 but some lectures will include interactive components that may not be adequately captured by a recording.
Each week you should prepare your solutions to the set tutorial questions and attend your enrolled tutorial session. Tutorials are an opportunity to ask specific questions related to any aspect of the unit: the lecture content, the practical tasks and the set tutorial questions.
Practical sessions provide an opportunity for you to develop your skills in systems programming and your understanding of the key concepts of the unit. Practical work will consist of set tasks, each of 4 weeks duration, which are assessed and contribute to your final mark. The assessment criteria for each practical task will be explained in the task specification along with the due date. The tasks will be posted on iLearn.
Your practical demonstrator will provide you with individual assistance and may also from time to time address the entire class to provide useful information to assist with the practical task.
The practical tasks are set as individual work and each one is personalised for a particular student. The University's academic honesty policy will be enforced. You may assist your fellow students with general concepts, pointers to resources and useful tools or commands. You may not become involved in any way in helping a fellow student to find the solution to their particular task, nor may you share with them any aspect of the solution of your particular task. Each practical task will include specific instructions to help you understand what is acceptable and what is not.
Each lab assignment must be the sole work of the student turning it in. Any cheating will be handled under the University's Academic Honesty Policy.
The following are guidelines on what collaboration is allowed for laboratory exercises and what is not [adapted from CS:APP website]
Be sure to store your work in protected directories, and log off when you leave any lab computer, to prevent others from copying your work without your explicit assistance.
A forum for unit discussions is provided on iLearn. Students are free to post questions, comments or hints in relation to any aspect of the unit, except that you should avoid posting any questions, hints, comments or solutions that could be interpreted as cheating (see Practicals, above).
If you see a post fom another student that appears to be cheating, please notify your demonstrator, tutor or the lecturer as soon as possible and we will remove the offending post.
The detailed unit schedule will be available on iLearn. The following is an approximate schedule and is subject to change. In all cases, refer to iLearn for up-to-date information.
Week |
Topic |
Practical |
Quizz |
---|---|---|---|
1 |
Module 1: C & Data Unit outline, C Programming introduction |
intro | |
2 | Arrays, structs, malloc, printf | 1: C & Data | |
3 | Bits, Bytes and Integers | ||
4 | Floating point, bit fields | ||
5 |
Module 2: Machine Programming Machine programming basics |
2: Debugging | |
6 | Machine programming procedures & data | ||
7 | Data structures in the machine | 3: System | Q1 |
break 1 | |||
break 2 | |||
8 | Software security issues and memory allocation | ||
9 |
Module 3: System Level Memory hierarchy, cache |
Monday is Labour Day - no practical sessions | |
10 | Virtual memory, Exceptional control flow | ||
11 | Signals, I/O | ||
12 | Compilation and linking, Threads and synchronisation | Q2 | |
13 | Revision and examination preparation |
Macquarie University policies and procedures are accessible from Policy Central. Students should be aware of the following policies in particular with regard to Learning and Teaching:
Academic Honesty Policy http://mq.edu.au/policy/docs/academic_honesty/policy.html
Assessment Policy http://mq.edu.au/policy/docs/assessment/policy.html
Grading Policy http://mq.edu.au/policy/docs/grading/policy.html
Grade Appeal Policy http://mq.edu.au/policy/docs/gradeappeal/policy.html
Grievance Management Policy http://mq.edu.au/policy/docs/grievance_management/policy.html
Disruption to Studies Policy http://www.mq.edu.au/policy/docs/disruption_studies/policy.html The Disruption to Studies Policy is effective from March 3 2014 and replaces the Special Consideration Policy.
In addition, a number of other policies can be found in the Learning and Teaching Category of Policy Central.
Macquarie University students have a responsibility to be familiar with the Student Code of Conduct: https://students.mq.edu.au/support/student_conduct/
Results shown in iLearn, or released directly by your Unit Convenor, are not confirmed as they are subject to final approval by the University. Once approved, final results will be sent to your student email address and will be made available in eStudent. For more information visit ask.mq.edu.au.
The practical tasks in this unit are used at other Universities internationally. You must not publish your solutions on the Internet in any form.
You must carefully follow the guidelines laid out above and in each practical task concerning what are and are not acceptable ways to interact with other students.
Macquarie University provides a range of support services for students. For details, visit http://students.mq.edu.au/support/
Learning Skills (mq.edu.au/learningskills) provides academic writing resources and study strategies to improve your marks and take control of your study.
Students with a disability are encouraged to contact the Disability Service who can provide appropriate help with any issues that arise during their studies.
For all student enquiries, visit Student Connect at ask.mq.edu.au
For help with University computer systems and technology, visit http://informatics.mq.edu.au/help/.
When using the University's IT, you must adhere to the Acceptable Use Policy. The policy applies to all who connect to the MQ network including students.
Our graduates will also be capable of creative thinking and of creating knowledge. They will be imaginative and open to experience and capable of innovation at work and in the community. We want them to be engaged in applying their critical, creative thinking.
This graduate capability is supported by:
We want our graduates to have emotional intelligence and sound interpersonal skills and to demonstrate discernment and common sense in their professional and personal judgement. They will exercise initiative as needed. They will be capable of risk assessment, and be able to handle ambiguity and complexity, enabling them to be adaptable in diverse and changing environments.
This graduate capability is supported by:
Our graduates will have enquiring minds and a literate curiosity which will lead them to pursue knowledge for its own sake. They will continue to pursue learning in their careers and as they participate in the world. They will be capable of reflecting on their experiences and relationships with others and the environment, learning from them, and growing - personally, professionally and socially.
This graduate capability is supported by:
Our graduates will take with them the intellectual development, depth and breadth of knowledge, scholarly understanding, and specific subject content in their chosen fields to make them competent and confident in their subject or profession. They will be able to demonstrate, where relevant, professional technical competence and meet professional standards. They will be able to articulate the structure of knowledge of their discipline, be able to adapt discipline-specific knowledge to novel situations, and be able to contribute from their discipline to inter-disciplinary solutions to problems.
This graduate capability is supported by:
We want our graduates to be capable of reasoning, questioning and analysing, and to integrate and synthesise learning and knowledge from a range of sources and environments; to be able to critique constraints, assumptions and limitations; to be able to think independently and systemically in relation to scholarly activity, in the workplace, and in the world. We want them to have a level of scientific and information technology literacy.
This graduate capability is supported by:
Our graduates should be capable of researching; of analysing, and interpreting and assessing data and information in various forms; of drawing connections across fields of knowledge; and they should be able to relate their knowledge to complex situations at work or in the world, in order to diagnose and solve problems. We want them to have the confidence to take the initiative in doing so, within an awareness of their own limitations.
This graduate capability is supported by:
We want to develop in our students the ability to communicate and convey their views in forms effective with different audiences. We want our graduates to take with them the capability to read, listen, question, gather and evaluate information resources in a variety of formats, assess, write clearly, speak effectively, and to use visual communication and communication technologies as appropriate.
This graduate capability is supported by:
See also the section General Assessment Information, above.
This unit will be graded Fail, Pass, Credit, Distinction or High Distinction as defined in the Macquarie University Grading Policy.
Detailed achievement levels for each learning outcome are described as follows.
Criteria | Developing | Functional | Proficient | Advanced |
LO#1. Use of system/library calls in program code | Inappropriate or inadequate use of system/library calls in program code | Uses system/library calls where required | Takes opportunities to use system/library calls in preference to writing their own code | Uses system/library calls consistently in preference to writing their own code |
Knowledge of system/library interface | Unaware of appropriate system/library facilities | Can identify relevant system/library facilities | Can describe application of system/library facilities | Can describe operation/implementation of system/library facilities |
LO#2. Explain software directly interacting with hardware | Inability to explain or inaccurate explanation | Explanation at a superficial level | Explanation demonstrates understanding of hardware capabilities used by software | Explanation demonstrates deep understanding of hardware/software interface |
LO#3. Software meeting performance expectations | Unable to identifty performance-related software design issues | Identification of performance-related software design issues | Modifies software design to improve performance | Can discuss performance issues in depth |
LO#4. Analysis of machine code | Unable to identify key features of machine code | Explains/reverse engineers key structures in machine code but some identification is incorrect or partial | Accurately identifies structures in machine code and able to explain/reverse engineer short pieces of code | Able to interpret/reverse engineer significant pieces of machine code |
LO#5. Identify security flaws | Unable to recognise common security flaws; incorrectly identifies security flaws | Able to identify common security flaws such as buffer overflow opportunity | Able to identify security flaws and explain problem | Able to identify security flaws, explain problem and offer solution |
LO#6. Evaluate role of Operating System | Unclear differentiation between operating system and hardware roles in a system architecture | Able to discuss role of operating system in a system architecture | Able to discuss differences in role of operating system in different system architectures | Able to identify and explain key issues in implementation of system features via hardware vs operating system |
Date | Description |
---|---|
23/07/2015 | Added Grading section describing achievement levels relative to learning outcomes. |