Resources for ITGM
315 C++ Programming I
Updated on May14, 10:29PM 2012.
COURTESY TO YOUR FELLOW STUDENTS PLEASE SELECT RESTART WHEN LEAVING A
WINDOWS SESSION. This will restart in Linux and allows the
renderfarm to use these nodes when they are idle. Thank you.
Please review these notes regularly
during the course of this quarter. Assignments are available online only.
Red font is used for assignment due dates.
Blue font indicates a link - please click on it.
If you find that any of the links
below have died or been relocated, please let me know.
Textbook and Examples:
This textbook details can be found at the above link. It is a
reference and will not be
followed in strict Chapter order.
Please refer to the class
syllabus or textbook reading list for the Third
here (or the Second
Note that there will be additional
examples placed in the _MATERIALS folder of the dropbox and will
be referred to in class and/or in these notes (a brief
description of each zip file exists in the readme.docx).
available: Our tutor this quarter is TBA. Please see my home page for more information.
Overview of Exercise deadlines
|due 7 now 8 (due to
|due 9 now 10
|due 11 now 12 (algorithm due 10 now 11)
|due 13 now 14
|due 16 now 17
|due 19 now 20
|during Class 9 or 10
1-2-3-Knockout is available class 9 and is not due until
Class 12 - this is entirely optional as discussed in class. If you
have not submitted any work for 1-2-3 you are not allowed this
Please note: Exercises are in increasing levels of
challenge - be sure to start
early. Exercise 6 and 7 are more like projects.
Grades will be posted on blackboard with specific
feedback handed back in class or in the dropbox before the next
Exercise due date. There
is a grading explanation on each individual exercise handout. A
general guideline rubric is here,
however each exercise has specific requirements listed.
Due dates are also listed on the calendar.
Link to class
Introduction to Programming using
Scratch as a stepping stone to C++ Programming. Pretest and review
Play with Scratch!
0 is assigned and due at the start of Class 3. You may be
presenting your work.
introduction to Flow Control, including loops and if/then
constructs in Scratch.
Work on your Scratch project.
Read Chapters 1 & 2.
Exercise 0 (Scratch) is due
today at the start of class. You may be showing your work in class.
Jumping into C++
The concepts you have learned in Scratch now seen in C++
Finish reading Chapters 1
& 2 and for practice (not to be handed in) from textbook
p. 38 #2, 3. (page 34 if using second edition). Practice using the
make sure you can zip and unzip files properly. If you have
questions, please ask.
The example mentioned in class
was _MATERIAL/C3-Variables/ITGM315-Variables.zip. Feel free to
create your own as well. This is just to get you started.
We covered all the material
that is required to complete Exercise 1.
Quiz 1 -
Read Chapter 3 (except pages 87-96)
Reminder: Review the "textbook
practices" and "coding
In addition, we will
cover debugging in general and in the IDE. Two of the most
helpful buttons are F10 - to step through a program and F9 to
set or remove a breakpoint. You may also use ctrl F5 keys
together so that the console window stays open, however this is
just a hot key to run the program without debugging. If you run
it for testing (hot key F5) it will still close the console
window too soon. When handing your assignment in, please use the
methods discussed in class to leave the console window open.
Exercise 1 is due Class 5.
C4-IntroExamplesStart provide some good examples to work with
the material covered.
Vectors - Lists
Exercise 1 (C++ Intro) is
due today at the start of class. Exercise
Read Chapter 5.
Materials folder C5-6-IntroExamples correspond to the material
covered in the next two lectures.
Vectors, Debugging, Examples and Practice. In class assignment - list
Quiz 2 - Flow Control.
Exercise 2 (Flow Control) is due next class at the start of class. Exercise
There are three examples in the
_MATERIAL/E3-FunctionExamples folder. These examples will be
useful for Exercise 3, Exercise 4 and for your future Quiz.
Please take a look at them - they are described in the handout
for Exercise 3 as well as the readme. These
are zip files, so don't forget to extract them
Structures and more: Arrays reviewed, structs, introduction to
Classes, STL vectors and iterators.
Please pay attention to the
comments you receive when I hand back your grades - since
Exercise 3 is an exercise in modifying existing code you want to
address any problems you had with Exercise 2.
Data Structures overview.
Exercise 3 (Functions) is due next class at the start of class. Exercise
Midterm Quiz - Open book.
grades will be calculated in the following manner: Exercise 0,1
(10% each), 2,3 total (25% each), quizzes 1,2 (10% each), and
that final grade calculations will be computed as per the syllabus
outline: Exercises (8 of varying weights) 80%, quizzes (5) 15%,
midterm (1) 5%
7 (especially first section) & Chapter 6.
and Introduction to Classes and OOP
Exercise 4 algorithm (hardcopy) is
due next class in class.
Several additional examples exist in the _MATERIAL folder from the
lecture material. These examples will be useful for you to use as
a starting point to understanding (or as syntax reference to)
vectors, pointers, structs, classes. These are zip files, so don't
forget to extract them. Copy them to your own directory and use
them as a starting point to experiment with. They are:
Read Chapter 8, Chapter 3 (section on Objects)
OOP - Object Oriented Programming:
Exercise 4 (Arrays,Strings,Game Loop -
Dice Game) is due next
class at the start of class.
Read Chapter 8 again.
Exercise 5 is due next class.
Today you should have at the minimum data structures ready in
your code for my review (I will be visiting your workstation
today in class). Many of you may have completed this
Quiz 3 -
reminder that there are many examples in the _MATERIALS folder
with a readme.doc file indicating what subject/class they are
related to - these do not substitute for notes you should be
taking in class or the required textbook reading. They do however
relate directly to the material covered in class as well as hints
for your assignments. Please take advantage of this resource and
as always, if you have questions come and see me or send me email.
OOP - Object Oriented Programming:
Access Levels, Data Access, Member Functions
Read Chapter 10 (to page 347).
to start an Exercise as soon as it is assigned, and use the
examples in the _MATERIAL folder to supplement your learning.
Exercise 5 (Card Game) is due next class
at the start of class. Exercise
OOP - Object Oriented Programming:
Read Chapter 10 (page 347 to end).
Quiz 4 -
OOP - Object Oriented
A number of
examples exist in the materials folder related to the material we
are covering in class. These are in a folder called
They are as follows:
The three files above are the ones that we will cover in class,
and two are solutions to the inclass exercise: try taking the
friend version (first one listed here) and making it a member
function instead (second). The third uses pointers.
As well as OOPExamples/Class14:
ITGM315-ExampleClassFriendSplit.zip (rectangle/square using a
friend class rather than a friend function)
Class13/ITGM315-ClassInheritanceAccess.zip (this one is useful
even if you are not using virtual functions as a general example
of function syntax - enemy boss example)
that these examples were covered in class and are meant as a
guide. You should understand the material that they cover. Please
look them over and ask any questions you may have.
over how to split your program into multiple .cpp (C++ file) and
.h (Header File). Right click on the Source Files label, then
select add item and add a cpp file and then analogously a .h file
named with the name of your class you are defining. See the
examples in the dropbox for details.
look at the examples in the materials folder.
Review of Classes/OpenGL - Introduction
OpenGL - More Details
Exercise 6 (Classes -
RPG) is due today at the start of next
Read Chapter 4.
Advanced Topics: OOP - Libraries
Quiz 5 -
Classes and other topics
OpenGL, Code Review and
Exercise 7 due
Thank you to Professor Kenneth Huff
for his generous help in setting up this page.