Course Details

Course Code COMP1511
Course Title Programming Fundamentals
Lecturer/Convenor Marc Chee
Admin Tom Kunc
Lectures Wednesday 11am-1pm AEDST online
Friday 4pm-6pm AEDST online
Details for online lectures are below
Tutorials and Labs Timetable for all classes
Help Sessions Face to Face Help Sessions will be timetabled soon . . .
Course Contact Email
Units of Credit 6
Course Website
Handbook Entry

Course Summary

This course is an introductory course into the basics of Computer Programming and Computer Science. It is intended as an introduction to studying further in Computer Science or related fields. Topics include:

  • Fundamental programming concepts
  • Introduction to Computer Science
  • The C programming language and use of a C compiler
  • Programming style
  • Program design and organisation concepts
  • Program testing and debugging

Assumed Knowledge

Before commencing this course, students should:

  • Have basic computer literacy (not necessarily have programmed before)

Otherwise COMP1511 assumes no background knowledge.

Student Learning Outcomes

This course aims for students to become proficient in a high level programming language, C. It also focuses on mental preparedness for programming long term, including problem solving, debugging and testing.

After completing this course, students will:

  • Have basic proficiency with the C programming language
  • Have the ability to analyse a problem and solve it using programming
  • Have learnt some techniques for debugging and testing code and programs
  • Understand how to use basic data structures like arrays and linked lists
  • be able to use the basics of a Linux-like, command line driven operating system

Teaching Strategies

This course has a heavy practical orientation. Lectures will revolve around live demonstrations of programming and use of tools. Labs and assignments are also highly practical.

On top of this, the course is not just about the specific technical aspects of Programming, but also a preparation for studying Computer Science and the thought processes and skills necessary for a career in the field.

Class Activities


Lectures will be used to present the theory and practice of the techniques and tools in this course. There will be extensive use of practical demonstrations during lectures. Lecture notes will be available on the course web pages before each lecture. Lectures are delivered entirely via YouTube Live, with links being provided each week alongside slides.

All lectures will be recorded. For anyone who cannot access the live stream or who cannot access YouTube, lecture recordings will be made available via Moodle.

Lectures in Week 6 are optional.

Live Streaming and Videos
In addition to scheduled lectures, there will be some more informal streams and pre-recorded videos to give students a chance to ask questions directly as well as cover content that is not "official" course content, but still might be very useful.

Tutorial/Lab Sessions

From week 1 you will also be expected to attend a three hour tutorial/laboratory session to clarify ideas from lectures and work through exercises based on the lecture material. You should make sure that you use them effectively by examining in advance the material to be covered in each week's tutorial, by asking questions, by offering suggestions and by generally participating. The tutorial questions will be linked to on WebCMS3 in the week before each tutorial. There are no marks for tutorial attendance.

Tutorial/Labs will be run in two different formats:

  • For classes with codes ending in an "A" (for example: T09A or F12A): classes will be face-to-face at UNSW's Kensington Campus. These classes will be held under strict COVID-safe rules. They are only open to students officially enrolled in them via myUNSW. They may be cancelled at any time. Students who feel unwell must not attend these classes.
  • For classes with codes ending in "B" or "C" (for example: T09B or F12C): classes will be held online via a system called Blackboard Collaborate. Links for Tutorial/Lab sessions will be available on Moodle. Students in face-to-face classes may attend online classes if they are unable to attend in person, or if they feel unwell.

The format of online and face-to-face tutorial/lab sessions will be identical, only the method of delivery will be different.

Following the theoretical section of the Tutorial/Lab session, there will be time to work on practical exercises as well as have some time to have one on one conversations with your tutors to get specific help.

Because this course is practical in nature, laboratory classes are a very important component. If you do not put a great deal of effort into the lab classes you risk failing the final exam.

Most lab exercises will be done in pairs or small groups, and you and other students can work through them together, learning from each other. Tutors will facilitate you forming pairs/groups during Laboratory Sessions.

There are also some Challenge Exercises for anyone looking to push beyond the course content or see some interesting continuation of the content in the course. They are not necessary to complete.

Lab Submission and Marking
Each lab exercise will be submitted using the "give" system. All students will need to submit solutions, even if they've worked in a group and have the same solution as someone else.

If you cannot complete any exercises by the end of the lab you may complete them in your own time and submit them using the "give" command before 8pm Monday (Monday 20:00) in the week after a lab ( an previous version of the outline said they were due on Fridays, this is incorrect and has been updated ). Where students are unable to complete the exercises, they will be encouraged to seek an extension from their tutors. Work submitted after the due date (and without an extension) will be subject to a 25% mark reduction.

Labs will be marked automatically around a week after the due date.

When marking is complete you can see marks online here or by running this command on a CSE machine:

1511 classrun -collect exercise_name

There are no marks for Lab 1, it's there to help you get started. Your total mark will be made up of the best 7 out of 8 of the labs from weeks 2-10 (there is no lab in week 6).

Challenge Exercises in labs are not necessary to complete and it is possible to obtain full marks without attempting any Challenges. Any marks from Challenge exercises will only be added to your marks if they are below the maximum total for labs.

Help Sessions

There will be consultation sessions starting in week 2 where tutors will be available for one on one help with specific problems and assignment clarification. These sessions are optional and will run at different times during the week, with more sessions available around assignment deadlines and in later weeks of the term. Check the course timetable for what Help Sessions have been scheduled.

Help Sessions will be held online through Blackboard Collaborate. Students will still be able to receive one on one help in these sessions, but Help Sessions will not be held on campus at UNSW.


There are some Achievements to be gained in the course. They are optional and do not have any marks attached to them, but they are often either activities that the course staff think are useful or fun to do. An example of an achievement is: "i_read_the_course_outline" (which you can now put into your achievements page).

Assessable Activities


Students will be asked to write personal reflections on what they have been learning as well as how they would like to improve and learn more about the content in the course. As non-technical communication is seen as a necessary skill for technical professionals, this exercise gives students some practice in this.

Over the term, the Reflections component of the course is worth 10% of the course marks.

Note (added on Wednesday Feb 17th): While it is possible to get more than 10 marks in reflections, reflection marks are capped at 10 -- they don't make up for other course marks (similarly to labs).


There are two assessable programming assignments. Assignments give you the chance to practice what you have learned on relatively large problems (compared to the small exercises in the labs). Assignments are a very important part of this course, therefore it is essential that you attempt them yourself. Collaboration with other students is limited to discussion of fundamentals, not any discussion of assignment specifics.

  • Assignment 1 (Submission, Week 6) 15%
  • Assignment 2 (Submission, Week 10) 25%

The assignment weighting and deadlines may change a little when the assignment designs are complete.

Late assignments submissions will be penalized. The exact penalty will be specified in the assignment specification - typically it is 1% reduction in maximum possible mark for every hour late.

Final Exam

In 2021 Term 1, the Exam will be a take-home exam (exact length of the exam is yet to be determined). The actual working time of the exam is only expected to be around 3 hours, but due to time zone differences for current students, all students will be given a longer time window to complete the exam.

It will contain implementation tasks which will require you to write C programs. It will also contain sections which require you to read code or answer questions to show your knowledge of programming.

During this exam you will be able to execute, debug and test your answers. The implementation tasks will be similar to those encountered in lab exercises and Weekly Tests.

Special Exam Requirements
COMP1511 has two requirements on the final exam.

Requirement#1: on the final exam you must solve a task by writing a program that uses an array. The final exam will contain multiple questions (clearly marked) which if answered successfully will meet this requirement. Answering any one of these questions will meet this requirement.

Requirement#2: on the final exam you must solve a task by writing a program that uses a linked list. The final exam will contain multiple questions (clearly marked) which if answered successfully meet this requirement. Answering any one of these questions will meet this requirement.

You can not pass COMP1511 unless you achieve both the above requirements.

Student Conduct

The Student Code of Conduct ( Information , Policy ) sets out what the University expects from students as members of the UNSW community. As well as the learning, teaching and research environment, the University aims to provide an environment that enables students to achieve their full potential and to provide an experience consistent with the University's values and guiding principles. A condition of enrolment is that students inform themselves of the University's rules and policies affecting them, and conduct themselves accordingly.

In particular, students have the responsibility to observe standards of equity and respect in dealing with every member of the University community. This applies to all activities on UNSW premises and all external activities related to study and research. This includes behaviour in person as well as behaviour on social media, for example Facebook groups set up for the purpose of discussing UNSW courses or course work. Behaviour that is considered in breach of the Student Code Policy as discriminatory, sexually inappropriate, bullying, harassing, invading another's privacy or causing any person to fear for their personal safety is serious misconduct and can lead to severe penalties, including suspension or exclusion from UNSW.

If you have any concerns, you may raise them with your lecturer, or approach the School Ethics Officer , Grievance Officer , or one of the student representatives.

Plagiarism is defined as using the words or ideas of others and presenting them as your own. UNSW and CSE treat plagiarism as academic misconduct, which means that it carries penalties as severe as being excluded from further study at UNSW. There are several on-line sources to help you understand what plagiarism is and how it is dealt with at UNSW:

Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism. In particular, you are also responsible that your assignment files are not accessible by anyone but you by setting the correct permissions in your CSE directory and code repository, if using. Note also that plagiarism includes paying or asking another person to do a piece of work for you and then submitting it as your own work.

UNSW has an ongoing commitment to fostering a culture of learning informed by academic integrity. All UNSW staff and students have a responsibility to adhere to this principle of academic integrity. Plagiarism undermines academic integrity and is not tolerated at UNSW. Plagiarism at UNSW is defined as using the words or ideas of others and passing them off as your own.

If you haven't done so yet, please take the time to read the full text of

The pages below describe the policies and procedures in more detail:

You should also read the following page which describes your rights and responsibilities in the CSE context:


Item Topics Due Marks
Lab Exercises All topics Weeks 2-10 10%
Reflections All topics Weeks 2, 4, 6, 8, 10 10%
Assignment 1 Looping and Arrays Week 6 15%
Assignment 2 Linked Lists Week 10 25%
Final Exam All topics Exam period 40%

Course Schedule

Week Lectures Tutes Labs Live Streams Assignments Reflections
1 Course intro, Our First C Program (variables and if statements) Welcome, What is programming? Lab familiarization, Setting up working from home (VLAB), Basic Input/Output - -
2 Problem Solving and Looping Variables and If Statements Variables and If Statements
- - Reflection 0 Due
3 Code Style, Code Reviews, Functions and Arrays Looping Looping
- -
4 Functions, Arrays, Memory and Pointers Code Reviews, Functions and Arrays Code Reviews, Functions and Arrays
Assignment 1 overview Assignment 1 released Reflection 1 Due
5 Debugging, Characters, Strings and Structs Functions, Arrays and Pointers Functions, Arrays and Pointers
- -
6 Flexibility Week. Guest Lectures, Halfway Course recap. Professionalism No Tutorials No Labs - Assignment 1 due Reflection 2 Due
7 Memory Allocation, Multi-file projects and Linked Lists Characters, Strings and Structs Characters, Strings and Structs
- -
8 Linked Lists Memory Allocation and Linked Lists Memory Allocation and Linked Lists
Assignment 2 overview Assignment 2 released Reflection 3 Due
9 Abstract Data Types, Recursion Linked Lists Linked Lists
- -
10 Exam prep and Course recap Abstract Data Types Exam practice (past exam questions) - Assignment 2 due Reflection 4 Due
11 Revision and study for the exam (no formal lectures) Revision Tutorial for any that were missed due to Public Holidays Revision Lab for any that were missed due to Public Holidays Revision stream -

Resources for Students

There is no requirement for a text book for COMP1511.

The optional textbook for the course is: Programming, Problem Solving, and Abstraction with C by Alistair Moffat , ISBN 978 1 74103 080 3, which can be purchased from the UNSW Bookshop.

Course Evaluation and Development

Every term, COMP1511 student feedback is requested in a survey at the end of this course using UNSW's myExperience online survey system.

This feedback is used to improve the course materials and their delivery.

2020 provided a very unique opportunity to test online teaching for COMP1511. In general, we found that Live Streaming was a much more favourable format than live lectures, so we'll definitely be continuing that, even potentially focusing more on that style of interactive teaching than the old fashioned lectures.

We still have some work to do on more interactive teaching in labs, which have seen the most change in the switch to online teaching. Luckily, we've received a lot of useful feedback that we're hoping to put into effect. This term there will be a combination of in-person and online tutorials, so we will hopefully learn something useful from that combination.

Students are also encouraged to provide informal feedback during the session, and to let the course staff know of any problems, as soon as they arise.

CSE may also run its own survey, midway through the term, to ellicit feedback while courses are still running. This course improves only because we see the difficulties that students have and try to adjust things so that you get to learn what you need. If anything's not working for you, please let us know and we'll do whatever we can to help and hopefully help students in later cohorts as well.

Resource created Wednesday 27 January 2021, 01:16:14 PM, last modified Friday 19 February 2021, 05:08:43 PM.

Back to top

COMP1511 21T1 (Programming Fundamentals) is powered by WebCMS3
CRICOS Provider No. 00098G