Contents

Course Details

Course Code COMP1511
Course Title Programming Fundamentals
Convenor Dr Sasha Vassar
Admin Ben Briant and Tammy Zhong
Classes Monday 11am-1pm (online)
Wednesday 10am-12pm (online)

Tutorials and Labs Timetable for all classes
Consultations Online Help Sessions will be timetabled soon

More info in Help Session
Units of Credit 6
Course Email cs1511@unsw.edu.au
Course Website http://cgi.cse.unsw.edu.au/~cs1511/22T3/
Handbook Entry http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP1511.html
Student Reps stureps@cse.unsw.edu.au
Email the stureps if you have any issues with the course.
They will pass these anonymously to the relevant people to get the issues resolved.

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 to 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 long-term mental preparedness for programming, 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 the use of tools. Problem sets in 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. Live code from the lectures will also be made available for those students that are interested in following along or practicing during the post-lecture times.

Lectures will be delivered as YouTube Live streams.

For anyone who cannot access the live stream or who cannot access the lectures 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. This content may still be useful for overall student understanding.

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/laboratory. 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 and to get feedback from your tutors.

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 .

Late penalties will apply if you submit the problem sets after their due date -this is a reduction of 5% per day late (off the ceiling) 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-dot 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 compensate for any other missing marks in the problem set component.

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.

Problem sets are capped at 15 marks (there are 4 possible bonus marks from the three-dot exercises that can bring you up to a total of 15 if you missed out on any other marks in the one- or two-dot exercises). Completing just the one- and two-dot exercises every week can give you the full 15 marks needed in this component.

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
●●◌ 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 the exam, assignments, or in future courses.
1
●●● These exercises are for students who want to be exposed to more complex applications of the 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 the later stages of the assignment (Stages 3 and 4 of each assignment) and later questions of the final exam (Questions 6 onwards).
0.5
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

Help sessions will be run regularly throughout the term to make sure that we can answer any questions you may have. Please keep in mind that sessions get very busy close to assignment due dates, so please make sure to start assignments early. We will have a queuing system set up to allow everyone to be seen in an organised and orderly manner.

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 (please refer to the Student Conduct section for more details about plagiarism).

  • Assignment 0 (Submission in Week 3 Friday 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 - a reduction in the mark by 5% per day late for 5 days (off the ceiling), 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 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 3, the Exam will be a 3-hour-long in-person exam. Those students that are currently located offshore will be contacted separately closer to the exam time to make other arrangements.

The exam will contain implementation tasks that will require you to write C programs. It will also contain sections that 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 for 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 using 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 and on social media, for example, Facebook groups set up for discussing UNSW courses or coursework. 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 policies. 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 is committed to fostering a learning culture 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 Variables and Control Flow Week 3 (Friday 8pm) 2 weeks after due date. 5%
Assignment 1 Arrays and more complex Control Flow 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 summer holidays. 40%

* your total problem sets mark will be out of 16, and will be scaled to be /15 in your final mark. See Problem Sets above for more information.

Course Schedule

Week Lecture 1 Lecture 2 Tutorial Laboratory Extra Content Streams Assignments
1 Course intro
UNIX + Tools
What is a program
Procedures
Variables/Constants
Welcome
What is programming?
Setting up your environment

Basic Input/Output
- Assignment 0 released
2 Control Flow Custom Data Types
Basic control flow
Variables
- -
3 Functions Static Arrays
Strings
Custom Data Types - Assignment 0 due Friday 8pm
4 Public Holiday NO LECTURE 2D Arrays
Pointer Intro
Functions
Arrays
Strings
Assignment 1 overview Assignment 1 released
5 Pointers
Lecture Program 1: Arrays Arrays
Pointers
- -
6 Flexibility Week
Bonus Lecture:
Security
Flexibility Week
Bonus Lecture:
Ethics
NO
Tutorials
NO
Labs
- -
7 Dynamic arrays
Memory
Memory (heap vs stack)
Basic linked list
Memory allocation Assignment 2 Overview Assignment 1 due Monday 8pm

Assignment 2 released (end of the week)
8 Linked Lists Linked Lists Linked Lists - -
9 Linked Lists
Lecture Program 2: 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 textbook for COMP1511. Generally, students do not purchase this textbook. It covers material in a different way from 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 so that we can make ongoing 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 term by letting the Lecturer in Charge or any of the course staff, know of any problems, as soon as they arise. Suggestions will be listened to 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 the order in which topics are addressed to create a more fluid understanding
  • We have introduced two Program Lectures into the lecturing slots, this will mean we will be solving a big problem that encompasses approximately three weeks of content and resembles your assignment-like tasks
  • We have introduced separate problems each week that are there for practice only, with no marks attached to them. This will give you an opportunity to practice coding skills without the pressure of marks
  • A challenge question each week (sometimes more!) to make sure that those that would like a challenge, have the opportunity for it!
  • Switching to a VSCode minimal setup from the first point of code ensures that you are able to get a better feel for how programming happens in the real world, and what you need to do for code style.
  • 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, we will be starting help sessions earlier in the term and have also employed specific help session tutors to make sure that the availability of sessions is increased.

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.

Resource created Monday 15 August 2022, 12:13:38 PM, last modified Wednesday 07 September 2022, 02:50:59 PM.


Back to top

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