COMP1521 23T1 — Course Introduction
https://www.cse.unsw.edu.au/~cs1521/23T1/
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 1 / 27
COMP1521 Staff
Convenor Andrew Taylor
Lecturer Andrew Taylor
Admin Dylan Brotherston, Abiram Nadarajah
Tutors Dylan Brotherston, Erin Leavy, Luke Fisk-Lennon, James Jiang, Rosanna Liu, Anna Brew, Michelle Wong,
Mae Vuong, Abiram Nadarajah, Aisha Nauman, Leonard Chiang, Catherine Liew, Hanan Hassan, Jason
Codd, Joshua Sotomayor, Raymond Li, Jack Li, Abby Lin, Ethan Haffenden, Xavier Cooney, Cassandra
Eliot, Derek Xu, Meredith Zhang, Isabel Wee, Amy Tian, Jessica Xu
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 2 / 27
COMP1521 Student Background
Most students in this course have completed
COMP1511 or COMP1911
COMP1511 and COMP1911 coves fundamental C programming.
COMP1511 also covers topics, e.g. linked lists, ADTs not needed for COMP1521.
For this week’s tuts and labs:
review/strengthen assumed C knowledge
cover some small things not covered in COMP1511
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 3 / 27
Assumed Knowledge C knowledge
Assumed knowledge —
design an algorithmic solution
describe your solution in C code, using …
variables, assignment, tests (==, !, <=, &&, etc)
if, while, scanf(), printf()
functions, return, prototypes, *.h, *.c
arrays, structs, pointers, malloc(), free()
Not assumed knowledge —
linked structures, ADTs, sorting,
recursion, bit operations, file operations
recursion and for loops will be covered in week 1 tutorials
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 4 / 27
Course Goals
COMP1511/1911 …
gets you thinking like a programmer
solving problems by developing programs
expressing your solution in the C language
COMP1521 …
gets you thinking like a systems programmer
with a deep understanding of run-time behaviour
and better able to reason about your C programs
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 5 / 27
COMP1511/1911 vs COMP1521
COMP1511/1911 …
Figure 1: COMP1511/1911
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 6 / 27
COMP1511/1911 vs COMP1521
COMP1521 …
Figure 2: COMP1521
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 7 / 27
COMP1511/1911 vs COMP1521
or maybe …
Figure 3: COMP1521
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 8 / 27
Course Context
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 9 / 27
Themes
Major themes …
1 software components of modern computer systems
2 how computer represent data including integers & floats
3 how C programs execute (at the machine level)
4 how to write (MIPS) assembly language
5 how operating systems are structured
6 Unix/Linux system-level programming particularly file operations
7 introduction to processes, thread and concurrency
Goal: you are able to understand execution of software in detail.
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 10 / 27
Textbook
There is no prescribed textbook for COMP1521.
Recommended reference …
Computer Systems: A Programmer’s Perspective,
Bryant and O’Hallaron
covers most topics, and quite well
but uses a different machine code
Available in UNSW Bookshop
Figure 5: Computer Systems A Programmer’s Perspective
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 11 / 27
Textbook
Course Material has been drawn from
Introduction to Computing Systems:
from bits and gates to C and beyond,
Patt and Patel
The Elements of Computer Systems:
Building a modern computer system from first principles,
Nisan and Schocken
COMP2121 Course Web Site, Parameswaran and Guo
Past COMP1521 lecturers, admin, and tutors
Always give credit to your sources!
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 12 / 27
Systems and Tools
Prac work based on Linux tools
all tools available on the CSE lab machines (Debian Linux)
can use VLAB or SSH to connect to CSE from home
Compilers: dcc on CSE machines (clang or gcc elsewhere)
Assembly language: mipsy (mipsy_web for GUI)
Use your own favourite text editor: ed, vim, emacs, nano, gedit, vscode, etc.
Other tools: make, man, bc -ql, python3, etc.
Learn to love the shell and command-line … very useful!
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 13 / 27
Lectures
Monday, 13:00—15:00; Thursday, 15:00—17:00;
delivered via YouTube, starting week 1, and every week after (except week 6)
you will receive emails about how to access each lecture
feel free to ask questions via chat
lectures recorded and linked from course home page.
Easter means we miss a lecture on Monday week 9
We will hold the lecture at a different time, or pre-record it (TBA)
present a brief overview of theory
focus on practical demonstrations of coding
demonstrate problem-solving (testing, debugging)
lecture slides available on the web before lecture.
might have guest lecturers by Dylan and Abiram.
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 14 / 27
Tut-labs
COMP1521 has 3-hour tut-labs, starting week 1, and every week after (except week 6)
Our first tut-labs are immediately after this lecture
Easter means no classes Friday week 8 and Monday week 9
An alternative time for your class will be arranged by your tutor
6 of our 26 classes are online
delivered via Blackboard Collaborate (accessed via Moodle)
the remaining timeslots are face-to-face classes
please follow UNSW policy: https://www.covid-19.unsw.edu.au/
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 15 / 27
Tutorials
To get the best out of tutorials …
attempt the problems yourself beforehand
not marked, and no submission
but you will learn more if you try the problems yourself
ask if you don’t understand a question or how to solve it
Do not keep quiet in tutorials: talk, discuss, ask question
Your tutor may ask for your attempt to start a discussion.
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 16 / 27
Labs
Each tutorial is followed by a two-hour lab class.
Several exercises, mostly small coding tasks
Build skills needed for assignments, exam
Done individually
Submitted via give, before Monday 12:00 (midday)
Automarked (with partial marks) — 15% of final mark
Labs may include challenge exercises …
may be silly, confusing, or impossibly difficult
almost full marks (95+%) possible
without completing any challenge exercises
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 17 / 27
Tests
From week 3, and every week after (including week 6):
released on Thursday 5pm (after the lecture)
due exactly one week later
Submitted via give
immediate reality-check on your progress.
done in your own time under self-enforced exam conditions.
time limit of 1 hour
can keep working after hour for 50% of mark
automarked (with partial marks)
best 6 of 8 tests contribute 10% of final mark
any violation of test conditions
⇒ zero for whole component
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 18 / 27
Assignments
Ass1: Assembly (MIPS) Programming, weeks 4–7, 15%
Ass2: C Systems Programming, weeks 7–10, 15%
Assignments give you experience with larger programming problems than lab exercises
Assignments will be carried out individually.
They always take longer than you expect.
Don’t leave them to the last minute.
Standard UNSW late penalties apply, 5% per day for 5 days.
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 19 / 27
Code of Conduct
CSE offers an inclusive learning environment for all students.
In anything connected to UNSW, including social media,
these things are student misconduct and will not be tolerated:
racist/sexist/offensive language or images
sexually inappropriate behaviour
bullying, harassing or aggressive behaviour
invasion of privacy
Show respect to your fellow students and the course staff
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 20 / 27
Plagiarism
Cheating of any kind constitutes academic misconduct and carries a range of penalties.
Please read course intro for details.
Examples of inappropriate conduct:
groupwork on individual assignments (discussion OK)
allowing another student to copy your work
getting your hacker cousin to code for you
purchasing a solution to the assignment
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 21 / 27
Plagiarism
Labs, Tests, and Assignments must be entirely your own work.
You can not work on labs, tests, or assignments as a pair or in a group.
Plagiarism will be checked for and penalized.
Plagiarism may result in suspension from UNSW.
Scholarship students may lose scholarship.
International students may lose visa.
Supplying your work to any another person may result in
loss of all your marks for the lab/assignment.
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 22 / 27
Use of Generative AI Tools
Generative AI tools, e.g. github copilot, chatGPT have great potential to assist coders
Code they generate often has subtle errors & security vulnerabilities
also often generate poor code
expert coders (hopefully) can spot these problems
need a deep understanding of language/system to make good use of these tools
COMP1521 students don’t yet have this understanding
Use of tools copilot, chatGPT may slow you getting this understanding
Use of generative AI tools including github copilot, chatGPT not permitted in COMP1521
later course will likely allow use of these tools
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 23 / 27
Plagiarism
Labs, Tests, and Assignments must be entirely your own work.
You can not work on labs, tests, or assignments as a pair or in a group.
Plagiarism will be checked for and penalized.
Plagiarism may result in suspension from UNSW.
Scholarship students may lose scholarship.
International students may lose visa.
Supplying your work to any another person may result in
loss of all your marks for the lab/assignment.
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 24 / 27
Final Exam
in-person 3-hour practical exam: in CSE labs, on CSE lab computers
students who are outside of Australia for the entirety of the term will be offerred alternative online exam
just becasue you are in an online Tutorial does not mean you have an online exam
limited environment: you get the tools and software of a lab computer, not your own computer
You don’t get access to your normal CSE account, so no custom configuration files
may be some multiple-choice/short-answer questions, similar to tut questions.
most questions will ask you to read C or assembler
most marks for questions which ask you to write C or assembler
also may ask you to answer written questions
you must score 18+/45 (40%) on the final exam to pass course
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 25 / 27
Assessment
15% Labs
10% Tests
15% Assignment 1 — due start of week 7
15% Assignment 2 — due end of week 10
45% Final Exam
Above marks may be scaled to ensure an appropriate distribution
To pass, you must:
score 50/100 overall
score 18/45 on final exam
For example:
55/100 overall, 17/45 on final exam ⇒ 55 UF not 55 PS
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 26 / 27
How to Pass this Course
coding is a skill that improves with practice
the more you practice, the easier you will find assignments/exams
do the lab exercises
do the assignments yourself
practice programming outside classes
treat extra tutorial questions like a mini prac exam
https://www.cse.unsw.edu.au/~cs1521/23T1/ COMP1521 23T1 — Course Introduction 27 / 27