Course Code | COMP1511 |
Course Title | Programming Fundamentals |
Lecturer/Convenor | Jake Renzella |
Admin | Tom Kunc , Shrey Somaiya , Ben Briant , Tammy Zhong |
Lectures |
Tuesday 9am - 11am online
Wednesday 3pm - 5pm online Details for online lectures are below |
Tutorials and Labs | Timetable for all classes |
Help Sessions |
Online Help Sessions will be timetabled soon, please book in using:
https://web.cse.unsw.edu.au/~cs1511/22T2/hale More info in the Help Session section of this document. |
Course Contact Email | cs1511@cse.unsw.edu.au |
Units of Credit | 6 |
Course Website | http://cgi.cse.unsw.edu.au/~cs1511/22T2/ |
Handbook Entry | http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP1511.html |
From recent innovations in AI like self-driving cars to humanoid robotics navigating complex environments, leapfrogs in battery technology to sequencing the human genome - the world is benefiting and evolving thanks to computer systems. At the core of all these systems are computers executing instructions to solve exciting problems.
In this course, you will learn the fundamentals of how we instruct computers to solve problems. You will explore the architecture and mechanics of how computers operate and how you can translate real-world problems to computer programs that solve these problems.
The concepts you learn in COMP1511 will provide a foundation for your future endeavours in computing and, we hope, will begin to change the way you think about real-world problems.
---
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:
Before commencing this course, students should:
Otherwise, COMP1511 assumes no background knowledge.
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:
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.
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 will be delivered as YouTube Live streams.
All lectures will be recorded. For anyone who cannot access the live stream or who cannot access them live, lecture recordings will be made available.
There are no course related lectures in Week 6 (Flexibility Week), however, we often run guest lectures covering different topics in programming that are optional and may be of interest.
Live Streaming and Videos
In addition to scheduled lectures, there may 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 useful.
From week 1 you will also be expected to attend a three hour tutorial/laboratory session to clarify ideas from lectures and work through Problem Sets, based on the lecture material. You should make sure that you use this time effectively by examining in advance the material to be covered in each week's tutorial. This means that you are coming to class prepared to ask any questions that you may have, and generally participate in class by offering suggestions - this will ensure that you get the most possible out of the tutorial/lab session. Your tutors are there to help you clear up any misunderstandings or to understand topics in more depth. There are no marks for tutorial attendance, however, it is your chance to have all your questions answered.
Due to the current COVID-19 restrictions, we will be running some of our labs face-to-face, whilst other classes will remain online. Online classes will all be run online via Microsoft Teams. Links for online Tutorial/Lab sessions will be available within Microsoft Teams. If you are coming on campus for face-to-face labs, please make sure to follow all COVID protocols, including wearing a mask, socially distancing and sanitising your hands when you first come into the lab.
Following the theoretical section of the Tutorial/Lab session, there will be time to work on practical exercises, as well as 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. Please use laboratory sessions to ask tutors for any help you may need if you are stuck on that week's problems.
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. You are not required to complete these problems, but you may find it fun to do so!
Problem Set Submission and Marking
Each problem set will be submitted using the "give" system. All students will need to submit solutions.
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 AEST) in the week after the lab.
Problem sets will be marked automatically one week after the due date. When marking is complete you can see marks online using the course website .
There are no marks for Problem Set 1, it's there to help you get started. You will see a 0 as a total for Problem Set 1, as it is not counted towards your final mark. Your total mark will be made up of the best 7 out of 8 problem sets from weeks 2-10 (there is no lab in week 6), with the lowest mark being discarded.
Late penalties will apply if you submit the problem sets after their due date. Late penalty this term is reduction in mark by 5% per day late for 5 days, at which point the maximum mark drops to 0.
Problem Sets have an indicator to help you choose which to do -- you should prioritise the one dot exercises first, then two dot, then three. You must complete all one for and two dot exercises to get full marks in the problem set for the Week. Any three dot exercises you complete will form extra bonus marks to make up for any other missing marks in the problem set component. Problem sets are out of 10.5, and will be scaled up to the 15% weighting.
Indicator | Description | Marks total per week |
●◌◌ |
These exercises examine the most fundamental or crucial skills in the
course. Every student in the course should complete these exercises to
ensure they finish the term with the skills necessary to complete the
exam, and future courses.
If you are having trouble completing these exercises, please contact us or come along to the help session, so that we can help you. |
1 mark per week |
●●◌ |
Every student in the course should attempt these. These questions may
take slightly longer to solve than the questions of one dot importance;
and may apply fundamental skills in more involved ways, but doing them
will help to link together concepts taught in lectures and tutorials
with the practical components.
Being able to solve these questions will be helpful in assignments, the exam, or in future courses. |
0.5 marks per week |
●●● |
These exercises are for students who want to be exposed to more complex
applications of content they've been taught. These exercises usually
require a lot more time to solve and complete.
Being able to solve these questions is helpful in later stages of the assignment (Stage 3 and 4 of each assignment) and later questions of the final exam (Question 6 onwards). |
0.5 marks per week |
☠ | These exercises are for students who want to extend themselves. They may not necessarily teach you more programming, but will expose you to difficult problems and interesting parts of Computer Science, where you will get a good opportunity to practice some killer problem solving skills! | no marks, only for challenge. |
This term, we will be trialling a new booking system, Hale, in our Help Sessions to ensure that we can see everyone who has questions/needs help. This term, all labs and help sessions have fast-passes, which make it easier to get seen by a tutor. To get a fast-pass, go to https://web.cse.unsw.edu.au/~cs1511/22T2/hale and login. You will automatically have priority in the lab you are enrolled in on myUNSW; but to attend any other lab or help-session we recommend getting a fast-pass. There is no limit to the number of fast-passes you can get over the term, but you can only have one fast-pass at a time. Grab one before a help session, and jump to the front of the queue!
There are three 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. All assignments are carefully checked for plagiarism, which can result in serious academic consequences.
Late assignments submissions will be penalised. The exact penalty will be specified in the assignment specification - typically it is a reduction in mark by 5% per day late for 5 days, at which point the maximum mark drops to 0.
Technical issues and assignment extensions - extensions will only be given on assignment due dates if there is a scheduled server maintenance planned during the working time of the assignment, or in extreme circumstances when servers unexpectedly go down during business hours (8am-10pm). Please make sure to start your assignments early and work on them consistently throughout the term.
In 2022 Term 2, the Exam will be a 6 hour long take-home exam. 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 that 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 your weekly Problem Sets.
We will provide you with sample questions in the last week of the course.
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. There will be multiple, clearly marked, questions that will involve the use of an array. You must pass one of these questions (by receiving at least 50% of the available marks) to meet this requirement.
Requirement#2: on the final exam you must solve a task by writing a program that uses a linked list. There will be multiple, clearly marked, questions that will involve the use of a linked list. You must pass one of these questions (by receiving at least 50% of the available marks) to meet this requirement.
You can not pass COMP1511 unless you achieve both the above requirements.
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 online 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:
Item | Topics | Due | Marks Released | Marks |
Problem Sets | All topics | Weeks 2-10 | 1 week after they are due. | 15%* |
Assignment 0 | If statements, While Loops and Style | Week 4 (Monday 8pm | 2 weeks after due date. | 5% |
Assignment 1 | Looping and Arrays | Week 7 (Monday 8pm) | Between weeks 8 and 9. | 15% |
Assignment 2 | Linked Lists | Week 10 (Friday 8pm) | After the final exam is sat. | 25% |
Final Exam | All topics | Exam period | Before the T1 holidays. | 40% |
* your total problem sets mark will be out of 10.5, and will be scaled to be /15 in your final mark. See problem sets above for more.
Week | Lecture 1 | Lecture 2 | Tutes | Labs | Extra Content Streams | Assignments |
1 |
Course intro,
What is a program, What is a computer |
procedures, variables,
control flow |
Welcome, What is programming? | Lab familiarization, Setting up working from home (VLAB), Basic Input/Output | - | Assignment 0 released |
2 |
Structs,
Enums |
Repitition,
Code quality |
Variables and If Statements |
Variables and If Statements
|
- | - |
3 |
Functions,
Static Arrays |
Basic Testing | Structs, Enums and Looping |
Structs, Enums and Looping
|
- | - |
4 | Pointers |
Dynamic arrays,
memory |
Functions and Arrays |
Functions and Arrays
|
Assignment 1 overview |
Assignment 0 due Monday 8pm
Assignment 1 released |
5 | Strings, debugging |
Command Line Arguments,
Multi-file programs (libraries) |
Functions, Arrays and Pointers |
Functions, Arrays and Pointers
|
- | - |
6 |
Flexibility Week
|
Flexibility Week | No Tutorials | No Labs | - | - |
7 | Memory Allocation | Linked Lists | Characters, Strings |
Characters, Strings
|
Assignment 2 Overview |
Assignment 1 due Monday 8pm
Assignment 2 released (end of the week) |
8 | Linked Lists | Linked Lists | Memory Allocation and Linked Lists |
Memory Allocation and Linked Lists
|
- | - |
9 | Another Language | Revision of course content | Linked Lists |
Linked Lists
|
- | - |
10 |
Exam details
|
Revision of course content | Course Revision | Exam practice (past exam questions) | - | Assignment 2 due Friday 8pm |
There is no requirement for a text book for COMP1511. Generally, students do not purchase this textbook. It covers material in a different way to the COMP1511 course materials, and goes into differing levels of content than this course. It may, however, be useful as a reference, or to explore some content in more detail.
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.
At the end of every term, COMP1511 students are invited to provide their feedback about the course through the UNSW myExperience online survey system. This is used to assess the quality of the course in order to make on-going improvements. We do take this feedback seriously and use it to improve the course materials and their delivery. Students are also encouraged to provide informal feedback during the session, and to let the lecturer in charge or any of the course staff, know of any problems, as soon as they arise. Suggestions will be listened to very openly, positively, constructively and thankfully, and every reasonable effort will be made to address them. Recent MyExperience evaluations showed that students were highly satisfied with most aspects of the course. However, there are always things that can be improved, some changes that we are making this term:
CSE may also run its own survey, midway through the term, to elicit 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.
achievement: i_read_the_course_outline
Resource created Tuesday 10 May 2022, 11:41:45 AM, last modified Tuesday 31 May 2022, 10:03:46 AM.