2CPP01 - Intro to Module

19
INTRO TO MODULE Michael Heron

description

This is an intermediate conversion course for C++, suitable for second year computing students who may have learned Java or another language in first year.

Transcript of 2CPP01 - Intro to Module

Page 1: 2CPP01 - Intro to Module

INTRO TO MODULEMichael Heron

Page 2: 2CPP01 - Intro to Module

Introduction• 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 implementation.• 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.

Page 3: 2CPP01 - Intro to Module

Module Structure• 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.

Page 4: 2CPP01 - Intro to Module

Module Assessment• 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!

Page 5: 2CPP01 - Intro to Module

Course PlanWeek Rough Content (subject to change)

1 Introduction to module and C++

2 Object Orientation Principles

3 Overloading

4 The Pillars of Object Orientation

5 Abstraction and Templates

6 Additional C++ Syntax

7 Data Structures and Algorithm Design

Page 6: 2CPP01 - Intro to Module

Tools of the Trade• We will be using the Visual Studio package for this

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

Page 7: 2CPP01 - Intro to Module

Lectures• 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 attend regularly.• There is a direct correlation between attendance and pass rates in

programming modules.

• Lecture slides will be available online.• But lectures will cover things not on the slides.

• Because I tend to ramble…

Page 8: 2CPP01 - Intro to Module

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

discovered.

Page 9: 2CPP01 - Intro to Module

Object Orientation: Disclaimer• This problem is exacerbated by the necessities of

teaching.• The concepts we discuss are really best suited to large and

complex programs.• 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 important.

Page 10: 2CPP01 - Intro to Module

Coursework• The coursework exercises all offer a substantial degree of

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

Page 11: 2CPP01 - Intro to Module

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

Page 12: 2CPP01 - Intro to Module

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 serious offence.• At a minimum, you get zero marks for a lab exercise.• At a maximum, you can be expelled from the university.

Page 13: 2CPP01 - Intro to Module

Plagiarism• 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!

Page 14: 2CPP01 - Intro to Module

The Examination• 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.

Page 15: 2CPP01 - Intro to Module

The Examination• 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 understanding.

Page 16: 2CPP01 - Intro to Module

Marking• This module uses the university’s standard marking

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

Page 17: 2CPP01 - Intro to Module

Marking GuidelinesDegree 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 coursework brief.

2:2 The program meets the full requirements of the coursework brief.

2:1 As 2:2, plus:

demonstrates good practice and design.

1st As 2:1 plus:

shows evidence of additional reading.

Page 18: 2CPP01 - Intro to Module

Further Understanding• 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.

Page 19: 2CPP01 - Intro to Module

Summary• 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!