Advanced C++ Programming
|Lecturer in charge||Lecturers||Tutors|
|Hayden Smith||Hayden Smith
Christopher Di Bella
You will develop:
- skills in writing software using C++20
- skills in using libraries to develop software
- skills in using tools to build and test software
- knowledge and understanding about unit testing
- knowledge and understanding about reactive programming, object-oriented programming, and generic programming
What is C++?
- Lightweight-abstraction programming language
- Lets you use the right abstractions at the right time
C++ Design Pillars
- Don't leave room for a language between C++ and assembly.
- Abstractions should have as little cost as possible.
C++ is not C
What's C++ good for?
Mars Curiosity Rover, courtesy NASA/JPL-Caltech.
©2018 Google LLC All rights reserved. Google and the Google logo are registered trademarks of Google LLC.
James-Webb Telescope, courtesy NASA/JPL-Caltech.
This course is an independent class and is neither affiliated with, nor authorized, sponsored, or approved by, Microsoft Corporation.
Will help you in a pinch (e.g. before exams and interviews)
Also covers newer stuff the Swan book doesn't
Comprehensive intro to C++ (>100 pages of exercises!)
Good for looking up APIs and recalling language rules
DO NOT USE CPLUSPLUS.COM
Good for looking up APIs and getting tips on how to use C++
Documentation on how to use the course editor
Where to get help
Your question/answer hierarchy:
- Piazza forum
- Your tutor (see Timetable page for links)
- Lecturers (email@example.com)
- Hayden (firstname.lastname@example.org)
Questions that are non-sensitive will only be answered on the forum
Schedule & Structure
- See course outline for full course schedule
Weekly teaching provided includes:
- 4 hours of lectures
- 1 hour of tutorial
- 7+ hours of recommended practice and associated work
We may provide additional material and webinars to assist in your learning. While these will be recommended, they will not be required.
|Assignment 1||15%||Late Week 3|
|Assignment 2||15%||Early Week 7|
|Assignment 3||20%||Early Week 10|
Assignment due dates are subject to change (never earlier), so always see the assignment specification for more information
- Final exam may be scaled
- Hurdle exam
- have an emphasis on testing
- rely on version control (assumed knowledge)
- have a late penalty outlined in the specification
Plagiarism will not be tolerated.
- Immediate zero for assignment.
This course is taught on gitlab.
For every tutorial (9) and every assignment (3) we will automatically deploy new repositories and subsequent changes to those repositories in your gitlab account.
E.G. For me personally: https://gitlab.cse.unsw.edu.au/z3418003/20t2-cs6771-tut01
If you are not familiar with git, or haven't used vlab in course before, we encourage you to check out the git instructions provided in the first tutorial.
If you're really out of your depth, you can always post on the forum. Your tutor will demonstrate a bit more of this in week 1.
During your first tutorial your tutor will ask for a few volunteers to be added to private channel with tutors to discuss and share thoughts around how they're finding the course.
COMP6771 20T2 - 1.1 - Course Outline