Contents

Course Details

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

Course Summary

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:

  • 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:

  • Apply C programming language to solve simple decision, looping, array and linked list problems programmatically.
  • Review the produced code against specification criteria by applying testing techniques.
  • Apply basic data structures, such as arrays and linked lists, to solve complex problems.
  • Be able to read and understand coding solutions.

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.

Lectures

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.

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 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.

Help Sessions

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!

Assignments

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.

  • Assignment 0 (Submission in Week 4 Monday 8pm) 5%
  • Assignment 1 (Submission in Week 7 Monday 8pm) 15%
  • Assignment 2 (Submission in Week 10 Friday 8pm) 25%

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.

Final Exam

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.

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 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:


Assessment

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.

Course Schedule

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

Resources for Students

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.

Course Evaluation and Development

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:

  • We have made adjustments to, and restructured some content in the course. We are eliminating some topics that we don't feel are completely necessary to the core aims of COMP1511, and introduced others in some circumstances (like enumerations).
  • This term, we have broken down the assessments, to have an extra assignment in the first three weeks. This also means that we are removing the weekly tests component. This helps us to streamline to only one problem set due each week.
  • Last term, we introduced assignment stages - these were positively received as they broke down the assignments into more approachable chunks, whilst still allowing us to achieve our learning goals with the overarching assignment. This term, the stages are sticking around - but all stages will be accessible for each assignment - meaning if you are looking to work ahead, you can! A win for self-paced learning.
  • Also introduced last term, the assignment 0 is here to stay - this is an approachable assignment aimed to get you up and running with the format nice and early.
  • Students found help sessions to be sometimes frustrating due to long lines, and the ability to get help quickly and easily during busy assignment periods. To improve this, last term we introduced a fast pass system, that we will continue to tweak this term. More information is provided above about the system, the aim of which is to create a more equitable way to see students and offer help to all those that need assistance.

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.


Back to top

COMP1511 22T2 (Programming Fundamentals) is powered by WebCMS3
CRICOS Provider No. 00098G