• Welcome to AC21002.
• It’s about C++ and Object Orientation
• And some other things.
• The focus of the module is on object oriented design and
• C++ is a delivery language, but much of what you will be learning
about is transferable.
• We will be talking about the transferability of concepts as
part of the module content.
• Every Week for the first seven weeks.
• Three formal lectures.
• One lab-prep lecture
• One tutorial
• Programming with pen and paper
• You’ll love it!
• Two(ish) hours of lab time.
• Lab is booked for a four hour slot.
• I am your tour guide for the first seven weeks.
• Someone else takes over after that.
• Assessment consists of:
• 5 Lab Exercises (worth 8% each)
• These will be two week exercises
• Final exam (60%)
• You get an opportunity to resit the examination.
• You do not get a chance to resit the coursework.
• Keep up with the coursework!
Week Rough Content (subject to change)
1 Introduction to module and C++
2 Object Orientation Principles
4 The Pillars of Object Orientation
5 Abstraction and Templates
6 Additional C++ Syntax
7 Data Structures and Algorithm Design
Tools of the Trade
• We will be using the Visual Studio package for this
• This is available through the MSDNAA if you need it at home.
• We are primarily working with console based applications.
• Text only
• Main GUI Programming course next year.
• There is a lot of theory to this module.
• And a good deal of practise too.
• I can’t emphasize enough how important it is that you
• There is a direct correlation between attendance and pass rates in
• Lecture slides will be available online.
• But lectures will cover things not on the slides.
• Because I tend to ramble…
Object Orientation: Disclaimer
• You will read many programming books that claim some
variation of the following:
• ‘Object Orientation is an easy programming technique to learn
because it matches the way people think’
• It is my experience that this is hokum.
• Object orientation is to my mind a rather difficult way of putting
together computer programs.
• However, the benefit is that it is also perhaps the most effective way yet
Object Orientation: Disclaimer
• This problem is exacerbated by the necessities of
• The concepts we discuss are really best suited to large and
• We never really give you large and complex programs to code.
• There are reasons for this, but for a big part of this module
you’re just going to have to trust us in that this stuff is all
• The coursework exercises all offer a substantial degree of
• You are given relatively open briefs.
• One of the resources you have available to you as a
developer is your peer group.
• That means in this context, your fellow students.
• You should make good use of them where you can.
• However, the work that you submit for the module should
be your own work.
• Discussing problems and solutions with others is fine and dandy
• Using source code from other people is not.
• In all cases, if you are making use of code that was
derived from that of a fellow student, or from the internet,
or a book, then you should comment it as so.
• Citing your sources is good practise generally, but in this module in
particular it will inoculate you against the risks of plagiarism.
• To a degree, all programming is plagiarism.
• Reusability is one of the things programmers strive for.
• The University of Dundee however treats plagiarism as a
• At a minimum, you get zero marks for a lab exercise.
• At a maximum, you can be expelled from the university.
• The labs and the tutorials are there to reinforce your
understanding of the theoretical content.
• We have to strike a balance between the realities of
programming and the requirements of the university.
• Submit your own work
• Cite any code that is not your own work.
• If in doubt, ask!
• The examinations take place in December.
• The exam paper has four questions, and there is no choice
given in the questions you may answer.
• You are not required to memorize large chunks of code.
• You are required to be conversant with C++ syntax.
• You are required to be conversant with object oriented
principles and data structure design.
• The key for the examination is understanding.
• We are not looking for recall, we are looking for genuine
understanding of the topics.
• Examination questions will stress understanding of
implications of concepts.
• The tutorials will be used to aid in building this
• This module uses the university’s standard marking
• However, there is an informal guideline you can use when
trying to work out what grade your work will gain you.
• This is only a rough measure, varying factors come into play when
the submissions are actually being graded.
Degree Class Criteria
Fail No submission, or a submission that fails to meet the
requirements of the coursework brief.
Aim higher than this!
3rd The program meets the minimum requirements of the
2:2 The program meets the full requirements of the coursework
2:1 As 2:2, plus:
demonstrates good practice and design.
1st As 2:1 plus:
shows evidence of additional reading.
• Meeting the full requirements of the brief will not be enough to
attain the highest grades in this module.
• If you want A marks, you need to incorporate techniques, code
or design that has not been covered in the body of the module.
• Your submission has to ‘sparkle’
• Don’t ask me ‘What would be a cool thing to add here’
• You’re supposed to be surprising me.
• This is your module.
• I hope you find it interesting!
• It’s about C++ and Object Orientation.
• It can be heavy going, but stick in there.
• It’s me for seven weeks.
• Someone else for the three after that.
• Understanding is important
• So make sure you turn up!