Locked History Attachments


back to course homepage

Course Information - Comp1917

Overview of the first 3 courses

  • After taking...

    You become...


    You become a craftsman. Your programs and your approach to computing are professional and workman-like. You strive for clarity, simplicity, and beauty.


    You become a scientist. You understand how to analyse programs and algorithms. You master a broad range of important algorithms and data structures.


    You become a designer. You are familiar and practised in the process of design. You know how to approach the design of new data structures and algorithms appropriate for the problem at hand. You have an appreciation for the qualities of a good design.

Overview of COMP1917

This course consists of three strands: programming, systems, and general computer-science literacy.

The programming strand is further divided into two parts. For the first half of the course we cover small scale programming, in the second half we look at how to effectively use teams to produce more substantial software.

In the systems strand we will look at how computers work, concentrating on microprocessors, memory, and machine code.

In the literacy strand we will look at topics drawn from: computing history, algorithms, WWW programming, ethics and law, cryptography and security, and other topics of general interest.

The strands will be covered in an intermingled fashion.

A more detailed list of topics, readings, exercises, and assignments is available in the current session's course schedule. This is likely to change somewhat from year to year to keep the coverage interesting and up-to-date. Computing is still a rapidly evolving discipline!

The intention is to make this a highly enjoyable course. Computing is a great deal of fun with puzzles, cunning, craftsmanship, and a never ending supply of great stories. However it will not be an easy course - we expect you to master the underlying theory *and* to be able to apply it to real world situations. There is a lot to learn and we expect you to study and learn a lot of it in your own time. Non computing majors should consider these factors carefully before deciding to take this course rather than COMP1911. Read more about choosing between 1911 and 1917.

Information specific to the current session

This document contains general information about COMP1917 that applies every time it is taught. Information specific to a particular offering of the course such as:

  • A detailed list of topics covered
  • The course assessments and due dates
  • Teaching staff details
  • Lecture times and places

is available in the course information for that semester (click on the Current Session link at the top of the course homepage).


There are three or four hours of core (compulsory) lectures each week. In some weeks the 4th lecture (aka Lecture4) is instead an extension lecture. When there is demand we may instead sometimes run a remedial lecture in the lecture4 timeslot.

In this course the purpose of lectures is to introduce you to the concepts covered, show where they fit in the overall scheme of things and provide motivating examples to help you understand them. They will not be comprehensive. You will need to do additional work outside of lecture time to master the course.

Lecture notes are available via the course wiki. These are concise notes and do not contain excessive detail. They are designed to be printed out before the lecture to provide a framework for your note taking. You are free to add your own notes to the wiki to expand on interesting or cryptic points. You should use the wiki for your own notetaking, that way others will check, correct, expand, and proofread your notes for you. Sometimes the notes will be amended on the wiki to clarify or elaborate on something that wasn't explained well in the lecture or to fix a mistake in a student's notes.

However as the published notes only provide an outline of the material we cover, they are not an effective replacement for attending lectures or for making your own notes. You will need to see all lectures and make your own detailed lecture notes to do this course effectively.

To make those last points very clear. You will need to see all lectures, take notes, and do additional study in order to master this course. You will NOT be able to skip lectures and print out the lecture slides during stuvac and be able to pass the course.


Practical programming competency is an important objective of this course. The best way to learn programming skills is to practice programming - you do that in Tutorial-Labs and in your assignments.

Laboratories and tutorials are combined in this course. The first hour will be conducted in a tutorial room discussing set tutorial questions and preparing for the lab exercises. This will be followed by 2 hours in a laboratory.

The tutorial component will give you a chance to clarify ideas mentioned in lectures and to practice your problem-solving skills in a small, more personal, class with the assistance of a friendly tutor. Tutorials are designed to help you learn. They are your main forum for asking questions and getting personal assistance. You should make sure that you use them effectively by examining in advance the material to be covered, by asking questions, by offering suggestions and by generally participating.

In the laboratory component of the class you will work through set programming exercises. This will give you a chance to develop your programming skills on small, simple examples. The examples have been chosen to highlight particular aspects of programming, and are designed to assist you in your assignments. Your tutor will be there to assist you.

The tutorial questions and laboratory exercises relating to the work covered in lectures each week will be placed on the course web page before the following Monday.

Book your tutorial-lab time online using myUNSW. Check your tutorial times in O-Week even if you selected a time when you enrolled since some tutorials may have subsequently been cancelled and available times may have changed. There will be a warm up lab in Week 1. From Week 2 Tutorials and labs will run for three hours.

Programming Assignments

The assignments are an extremely important part of the course. They are an essential way of learning the practical skills you need to acquire. Any plagiarism in assignments will result in an automatic Fail for the whole course. Read the plagiarism warning below for more detail.

Some of the labs may have assignment related material in them worth additional lab marks.

The assignment specifications will be posted on the course web page closer to their release date.

In cases where a "beta" specification is provided before the official release you are welcome to start the assignment early - but be aware that the official release specification may differ from the beta specification and marking will be on the basis of the official specification. Unless otherwise stated a rapid completion ("earlybird") bonus of 1 mark will be awarded to assignment submissions made before the official assignment release and within 36 hours of the beta specification being provided.

Past students advise that assignments take far longer to complete than you at first estimate, so make sure you start them promptly and allow plenty of time. It is unlikely you will be able to complete a computing assignment in one week.

Assignment work can be completed on the workstations at Uni or on a PC at home. Your assignment must be able to run on the computers at Uni so test them here if you develop them at home. Unless otherwise stated assignments must be submitted on-line from a school terminal using the give command. It is in your best interest to make regular backup copies of your work and (because of machine loads on deadline days, for example) to complete assignments well before their deadlines.

Unless otherwise stated if you wish to submit an assignment late, you may do so but the late penalty is that the maximum available mark is reduced by 10% if it is one day late, by 25% if it is 2 days late and by 50% if it is 3 days late. Assignments that are late 4 days or more will be awarded zero marks. So if your assignment is worth 88% and you submit it one day late you still get 88%, but if you submit it two days late you get 75%, three days late 50%, and four days late zero.

Assignment extensions are only awarded for serious and unforeseeable events. Having the flu for a few days, deleting your assignment by mistake, going on holiday, work commitments, etc. do not qualify. Therefore aim to complete your assignments well before the due date in case of last minute illness, and make regular backups of your work.

Course Schedule

A preliminary schedule is available on the current session's wiki. Small modifications may be made to this schedule as we proceed through semester. You will find lecture notes, tutorial and lab questions, suggested readings and assignments on this page.


Your lecturer will discuss textbooks in week 1.

The textbook for the course is:

Copies are available at the university bookshop at quite a reasonable price.

Getting Help

If you need help speak to your tutor in the first instance. They are your point of contact with the course, and are there to help you.

If you can't wait till your tutorial then ask on the course forum. The course staff, and your fellow students all monitor the forum regularly and questions there usually get a prompt response.

If your tutor can't help you with an admin matter email the course account (cs1917@cse.unsw...) or attend an admin consultation. Admin matters include requests for extensions and special considerations and requests to change your tutorial class after the period when you can change them via myUNSW.

If you are having problems with understanding the course content, or if you are having problems with an assignment you can also attend a face-to-face remedial teaching consultations. These are run each week - times and places are listed on the information page for the current session.

If you wish to send email to the course account you must:

  1. Send your mail from your CSE or UNSW account (not from Yahoo! or Bigpond or ...),
  2. Include your student ID, your full name, your tute-lab class and
  3. Give a descriptive and meaningful subject title to your mail.

Here are some examples of good titles:

  • problem submitting ass1

  • need to change tutorial from wed09->thu17

  • week 10 lecture notes not accessible

and here are some bad titles:


  • question

  • comp1917

  • Re:


Many students do not appear to understand what is regarded as plagiarism. This is no defence. Before submitting any work you should read and understand the following very useful guide by the Learning Centre [http://www.lc.unsw.edu.au/plagiarism/ How Not To Plagiarise].

All work submitted for assessment must be entirely your own work. We regard unacknowledged copying of material, in whole or part, as an extremely serious offence.

In this course submission of any work derived from another person, or solely or jointly written by and or with someone else, without clear and explicit acknowledgement, will at the very least result in automatic failure for the course and a mark of zero for the course. Note this includes including unreferenced work from books, the internet, etc.

Do not provide or show your assessable work to any other person. Allowing another student to copy from you will, at the very least, result in zero for that assessment. If you knowingly provide or show your assessment work to another person for any reason, and work derived from it is subsequently submitted you will be penalized, even if the work was submitted without your knowledge or consent. This will apply even if your work is submitted by a third party unknown to you. You should keep your work private until submissions have closed.

If you are unsure about whether certain activities would constitute plagiarism ask us before engaging in them(!)

Copying without consent, severe, or second offences will result in automatic failure, exclusion from the university, and possibly other academic discipline.

These are not idle threats, we search the internet and use plagiarism detection software and a range of search engines to hunt for non-original work.

See also the latest version of the Unix Primer and the Yellow Form and the school and the faculty and university plagiarism policies for additional information. If the penalties set out on this page, the Unix Primer, the Yellow Form, the school, faculty, or university plagiarism policies differ for any situation, the more severe penalty applies.

Note that we have experienced cases of plagiarism where the code has been copied from printouts or CDs/USB sticks that have been lost in the lab or stolen from the computer or printer. Generally it is your responsibility to prevent other students from accessing your files, but if you lose work in this way, email your tutor immediately.

-back to top-

Marking policy

Unless otherwise advised qualitatively assessed work is awarded grades as follows:


awarded for work which is...

is typically worth (/10)
indicative only, varies
by assessment item


Not seriously attempted



Unsatisfactory but non trivial






A clear pass



Satisfactory with one or two outstanding elements



Satisfactory with several outstanding elements



Outstanding in all respects


In this course non-exam assessment is intended to be formative (to help students learn material) rather than summative (give an objective benchmark measuring what has been learned)

When marking assignments we want tutors to build up an intimate model of what each of their students is up to, their strengths and weaknesses.

For this reason assignments are not marked anonymously. If you have concerns about non-anonymous assignment marking please discuss them with us in advance of submitting.

-back to top-

Intellectual Property

You waive your copyright and IP in any material you submit to the extent possible under law and agree to release it into the public domain under Creative Commons CC0. Submitting any material means you accept this condition for that material and so release it. If you have special circumstances and wish to negotiate variations to this condition you must do so before submitting.

This applies to any material you submit, including but not limited to assignments, reports, papers, presentation handouts, seminar material, videos, wiki content attachments and comments, lab solutions, emails and forum content.

Submitting material includes but is not limited to physical submission, submission via give, posting material on the forum or wiki or OL site, sending email to the teaching staff or course account, etc.

-back to top-


In this course we publicly release graded examples of student work wherever possible. One of the reasons we do this is so we can share your work with students in this and future sessions and openly demonstrate our marking practices. If you have concerns about your work and its grade being released publicly please discuss this with us in advance of submitting.

In some cases we try to keep student material anonymous unless we are praising it. To enable your work to remain anonymous in such cases do not identify yourself in assessment submissions (except in the header section of a report, or the header comment in source files). However if you would like to be identified as the author of a work even if we are not praising it, then clearly include the following comment at the start of the file:

  • Please identify me as the author whenever referring to this

-back to top-

Final Examination

The final examination in this course will be held during the end of session examination period; it may examine any material covered in core lectures, tut-labs, tasks, the project, and any reading you have been given.

The exam will have a practical part and a theory part. The practical exam is a hurdle, you must pass the practical exam to pass the course.

Special Consideration

Students whose exam performance is affected by serious and unforeseeable events outside their control can apply at the student centre for special consideration. If special consideration is granted you will be able to sit the supplementary exam.

Special consideration does not mean we adjust your marks, it means that we permit you to sit the supplementary examination. If you apply for special consideration after the cut-off date set by the university or after the supplementary exam has been held then it will not be granted. Furthermore, special consideration will only be granted when each and every other component of the course (eg assignments, tutorial participation, tasks, wikinotes, etc) has been attempted and satisfactorily completed (ie passed).

Supplementary Exam

A supplementary examination will be held soon after the results have been released. If you think that you may be eligible for the Supplementary Examination, make sure you are available around that time. Be careful not to plan any overseas travel at that time. If you can't attend the sup exam you will not be offered a second chance.

It is your responsibility to check your email, the CSE website, and to contact the CSE school office for details of Supplementary Examinations. If you think there is any chance you might be eligible for a Supplementary Exam then you should prepare for it. Requests such as "I didn't find out until the day before the sup exam that I could sit the sup exam, so I need more time to study" or "I have to go overseas at that time and I have already purchased the tickets so can you write and administer a special sup sup exam just for me?" will not be granted.

-back to top-

Check Your Marks

You can inspect the current state of your mark record by using the command

  • 1917 classrun -sturec

You could also try this website

This will show your your tutorial attendance, your lab marks, your assignment marks and so on.

Check regularly. Alert your tutor within two weeks of the event and before the end of stuvac if there is a mistake in your tute attendance or any course marks. We lock the marks down at the end of stuvac so make sure you resolve any problems before then.

Policies and Rules

No abuse or flaming in the forum or wiki.

Try to keep the wiki for data, the forum for opinions and discussion.

No language feature may be used in assessable work unless it has been officially covered in the course. If you are unsure ask.

All C code must comply with the C Style Guide.

The university has a number of rules and policies which affect you (see myUnsw, the university handbook, and the university home page), additionally the school of CSE has a number of rules and policies (eg see the "Yellow form"), and this course has a number of rules and policies (see this page). Where there is a conflict between these sets of rules and policies the most strict shall apply. Where there is ambiguity in the interpretation of any rule of policy the most strict interpretation shall apply. If you are in any doubt as to the meaning, interpretation, or effect of any rule or policy please ask the course administrator or the lecturer in charge. Some of the policies which apply to you can be accessed from the course home page. Be aware that this list may not be definitive or up-to-date.

Keeping Informed

Important notices related to this course will be displayed on the StopPress section of the course home page from time to time. It is your responsibility to check this page regularly.

Sometimes urgent information may also be sent to you by email. Make sure you pay careful attention to any email you receive.

All official email will be sent to your cse email address. If you prefer to read your mail at some other address you will need to redirect your mail using mlalias. Ask your tutor if you need help doing this.

Additional information will be provided in the Course Forum and elsewhere on the 1917 site for the current offering as the session progresses. Lecture notes and supporting material will be made available via the course wiki.

You should explore the course web site, and read the StopPress, wiki, forums, and this page regularly for updates.


Please provide any feedback or suggestions to your class reps who will raise all matters with me confidentially. We do collect end of session feedback but by then it is obviously too late to change things for you (though such feedback still benefits the way we teach future students) so please alert us quickly if you have any concerns or suggestions. We appreciate you taking the time to give feedback and take it very seriously.

Tips from previous students

When we ask students at the end of session to think about what they wished they had done differently and come up with some advice they would give themselves if they could travel back in time two categories of advice are very common:

  • start the assignments early, earlier than you think you need to
  • do ALL the labs, even if you don't get them finished in time to be marked, still get them finished, as you need that material in following weeks.

We'll ask you the same question at the end of this semester in our own post mortem session, so you might want to think, as you are doing the course, about any bad things you do or problems you fall into which you wish that someone had warned you about in advance.

-back to top-