DEPARTMENT
OF COMPUTER STUDIES AND ADVANCED TECHNOLOGY
ITSE 2431 –
Advanced C++
Fall 2010
Synonym
Number: 18201/18202
Office Telephone:
(512)223-3180
Office:
Office Hours: See Dr. Bass’ Web Page: www.austincc.edu/RonBass
E-mail: rbass@austincc.edu
Course Description: Further application of C++
programming techniques including subjects such as file access, abstract data
structures, class inheritance, and other advanced techniques. The following C++
programming topics are covered: classes, objects, function and operator
overloading, inheritance and dynamic polymorphism, templates, exception
handling, standard template library, data structures, complex input/output
standard and file handling techniques, program documentation, bit manipulation
and other advanced C++ techniques.
Pre-requisite: COSC 1315 and COSC 1320 or department
approval. This is an advanced course and presumes extensive student background
in programming in C++. It also presumes sufficient student maturity to
study, program, and prepare for exams in a time restricted environment. Catalog of ACC Course
Descriptions
Approved Course Text: C++ - How to Program C++, Sixth
Edition, by Deitel & Deitel,
Prentice Hall, 2005,
ISBN 0-13-615250-3 (Available at the
ACC Bookstore)
Instructional Methodology: The course has assignments and
examinations appropriate for a four semester hour credit course meeting for 3
hours of lab and 3 hours of lecture per week for a sixteen week semester.
This
course uses the Black Board course management system. All assignments,
programs, and exam reviews will be made available on this site. It may be
found at the URL: acconline.austincc.edu
All students will have a login id for this site. The login id is the ACC
student number which appears on the student id or registration receipt.
The password is the same as that for student on-line services. Please see the
instructions for logging in to Blackboard. Example programs,
appropriate technical notes, assignments, relevant web sites, and other course
material are available on this system.
Students
will need a personal computer with internet access and a browser to access the
Black Board site. Students may use the labs at any of the major campuses
for accessing Black Board as well. Each student must have a valid
internet email address and provide it to the instructor, so, that the instructor
may communicate with him/her.
Course Rationale: This course is
designed to teach students advanced C++ constructs and the usage of the object
oriented methodology for coding complex C++ programs.
Course Objectives/ Learning Outcomes:
A. Develop and implement correct and efficient programs using the
C++ language.
B. Define, compare, and contrast the fundamental concepts of
object-oriented programming: data abstraction, encapsulation, inheritance, and
polymorphism.
C. Design algorithms according to object-oriented concepts.
D. Design and develop classes which implement the concepts of data
abstraction, encapsulation, inheritance, and polymorphism.
Design and develop programs
implementing data structures utilizing the
Additional
requirements
A. Students are expected to take exams
before or on the scheduled deadline. A late testing period is provided
for exams 1 and 2. Exams taken during the late period will be penalized
20%.
B. Students are expected to
submit program assignments when scheduled. Late programs will be assessed a 20%
penalty.
Course Schedule:
|
Week |
Topic/Chapter |
|
1 |
Online
Course Orientation |
|
2 |
Pointers
and Strings, Chapter 8 |
|
3 |
Classes,
Part I, Chapter 9 |
|
4 |
Classes
Part II, Chapter 10 |
|
5 |
Operator
Overloading, Chapter 11 |
|
6 |
Review for
Exam I |
|
6 |
Exam 1 |
|
7 |
Inheritance,
Chapter 12 |
|
8 |
Polymorphism,
Chapter 13 |
|
9 |
Templates,
Chapter 14 |
|
10 |
Stream I/O,
Chapter 15 |
|
10 |
Exception
Handling, Chapter 16 |
|
11 |
Review for
Exam 2 |
|
11 |
Exam 2 |
|
12 |
File
Processing, Chapter 17 |
|
12 |
String
Class, Chapter 18 |
|
13 |
Data
Structures, Chapter 20 |
|
13 |
Bit
Manipulation, Chapter 21 |
|
14 |
Standard
Template Library, Chapter 22 |
|
15-16 |
Exam 3 |
|
|
|
Testing Center Policy
Exam
1 – Pointers, cstrings, classes, and
overloading.
Exam
2 – Inheritance, polymorphism, templates, stream i/o,
and exception handling.
Exam
3 – Data structures, file processing, string class, bit manipulation, and
standard template library.
Distance
Learning Students - Exams are to be taken in the ACC testing centers on any of
the major campuses: Northridge, Rio Grande, Riverside, Pinnacle, Cypress
Creek,
|
|
|
You
will need to bring your ACC ID card with you to the testing center. If
you did not receive your ACC student ID and need to take the test, then: |
|
YOU MUST COMPLETE EXAMS BY THE DEADLINE DATE AS SHOWN IN THE
COURSE SCHEDULE. |
|
If
you take either Exam 1 or Exam 2 after the deadline, then Dr. Bass will
deduct 20% of your grade from the each exam grade as appropriate. |
|
Exam 3 |
|
Exam
3’s format is to be completed as a programming project. It is to be
submitted in the same manner as a programming assignment. |
|
YOU MUST COMPLETE EXAM 3 BY THE DEADLINE DATE. |
|
If
you do not complete Exam 3 on this date, then Dr. Bass will assign a grade of
zero (0%). There are no makeup exams. |
|
Exam Property |
|
The
exams you take in this course are the property of Dr. Bass. He
uses the exams to evaluate your performance. After you complete each
exam, the Testing Center will forward the exam to Dr. Bass for grading.
You will be notified of your score via email and posting on Blackboard.
Dr. Bass will keep your exam on file. If you would like to view
the exam, then you may come to his office during his office hours. |
Exam
reviews are available on the course Black Board web site. The exam
reviews will contain questions which are very similar to those to be asked on
the exams.
Programming
Assignments:
9
programming problems will be assigned during the course. They are to be
completed by the student and copies sent to the instructor for grading.
See the assignments link on the course Blackboard website.Assignments
are to be submitted as attachments to an email sent to the instructor at rbass@austincc.edu. The attachments
are to include the source files and result/output files. Each attachment
is to be documented adequately and must contain the student name and a
description of which assignment it pertains to. The instructor will
not compile and test your
program. As a result, you must attach as many files showing program
output as necessary to demonstrate that the program works
correctly. In some cases you may wish to attach an executable
version of the program. Showing that the program works
correctly is the responsibility of the student and may require numerous
attachments. The instructor will not attempt to debug any program that
does not work correctly or produce the correct output when submitted for
grading. If assistance is needed in debugging during program development,
the student must bring the source code to the instructor’s office and
participate in the debugging activity with him. Since compilers and
systems vary in potentially significant ways and student programming styles are
widely varied, it is not possible for the instructor to debug source code sent
to him as an email attachment.
If
you do not have access to a computer with a browser and a C++ compiler, you may
use the Computer Studies Department Computer
Labs at any of the major campuses. You may use the Computer Studies labs at
CYP, EVC, NRG, PIN, NRG, SAC and RVS. At each of these computer labs ask
the lab technician for a guest logon number. Please read the COIS
Computer Lab Policies and Rules available from the lab staff at any campus.
The
textbook comes with a CD containing Visual C++. This is an adequate
compiler for the assignments in this course. A command line version of
the Borland compiler may be downloaded from the Borland web site http://www.borland.com/ or Dev C++
from Bloodshed Software.
In addition to these sites, any Linux or UNIX system has a C++ compiler which
may be used satisfactorily for this course.
The COIS computer lab at the RGC campus is in room 115. This
lab is available during the following times.
Monday to Friday -
Saturday – 8:00 AM to 2:00 PM
Labs
on other campuses will have different hours of operation. Check at each
campus for the lab schedules.
Grade Policy: Grade will be based both on concepts
and practical application. The course consists of 9 programming
assignments and 3 exams. Exams are 65% of
the final average and programs are 35%.
Grade Scale:
90%
- 100% A
80% -
89% B
70% -
79% C
60% - 69%
D
0% - 59%
F
“Acts prohibited by the college for which discipline may be administered
include scholastic dishonesty, including but not limited to cheating on an exam
or quiz, plagiarizing, and unauthorized collaboration with another in preparing
outside work. Academic work submitted by students shall be the result of
their own thought, research or self-expression. Academic work is defined
as, but not limited to tests, quizzes, whether taken electronically or on
paper; projects, either individual or group; classroom presentations, and
homework”. The penalty accessed will be in accordance with the current
ACC Student Handbook policy. See http://www.austincc.edu/handbook/policies4.htm
for more information.
Students who violate the academic integrity policy will receive an F grade in
the course and be referred to the Director of Student Services for college
disciplinary action.
A student may receive a temporary grade of “I” (Incomplete) at the end of the
semester only if ALL of the following conditions are satisfied:
The student is unable to complete the
course during the semester due to circumstances beyond their control.
The student must have earned at least
half of the grade points needed for a “C” by the end of the semester.
The request for the grade must be made
in person at the instructor’s office and necessary documents completed.
To remove an “I”, the student must
complete the course by two weeks before the end of the following
semester. Failure to do so will result in the grade automatically
reverting to an “F”.
Freedom of Expression Policy:
It is expected that faculty and students will respect the views of others when
expressed in classroom discussions or in online chat rooms, discussion boards
and email.
Attendance / Withdrawal Policy:
Students are expected to attend classes and will be held responsible for all
material covered in class. Regular attendance helps ensure satisfactory
progress towards completion of the course.
It is the student’s responsibility to complete a Withdrawal Form in the
Admissions Office if they wish to withdraw from this class. The
instructor may withdraw students from this class if their absences exceed 10%
of the total number of class meetings. The last date to withdraw for this
semester is (Insert Withdrawal Date Here). It is not the
responsibility of the instructor to withdraw the students from their class even
though the instructor has the prerogative to do so under the above listed
circumstances. ALERT: A new state law for new students
states that there can be No
more than six course withdrawals throughout your undergraduate education,
regardless of how many colleges you attend. Students who entered college
before fall 2007 are not affected. Ask a counselor for details.
Students with Disabilities Policy:
“Each ACC
campus offers support services for students with documented physical or
psychological disabilities. Students with disabilities must request
reasonable accommodations through the Office for Students with Disabilities on
the campus where they expect to take the majority of their classes.
Students are encouraged to make this request three weeks before the start of
the semester. (Refer to the Current ACC Student Handbook)”
Scans Competencies:
|
|
|
Level Achieved – 1 (low) to 4 (high) |
|
C1 |
Time:
Selects goal-relevant activities, ranks them, allocates time, and prepares
and follows schedules. |
3 |
|
C2 |
Money:
Uses or prepares budgets, makes forecasts, keeps records, and makes
adjustments to meet objectives. |
N/A |
|
C3 |
Materials
and Facilities: Acquires, stores, allocates,
and uses materials or space efficiently. |
N/A |
|
C4 |
Human
Resources: Assesses skills and distributes work accordingly, evaluates
performance, and provides feedback. |
N/A |
|
C5 |
Acquires
and evaluates information. |
3 |
|
C6 |
Organizes
and maintains information. |
2 |
|
C7 |
Interprets
and communicates information. |
3 |
|
C8 |
Uses
computers to process information. |
2 |
|
C9 |
Participates
as a member of a team: Contributes to group effort. |
N/A |
|
C10 |
Teaches
others new skills. |
N/A |
|
C11 |
Serves
Clients/Customers: Works to satisfy customer's expectations. |
3 |
|
C12 |
Exercises
Leadership: Communicates ideas to justify position, persuades and
convinces others, responsibly challenges existing procedures and policies. |
1 |
|
C13 |
Negotiates:
Works toward agreements involving exchange of resources; resolves
divergent interests. |
2 |
|
C14 |
Works With
Diversity: Works well with men and women from diverse backgrounds. |
N/A |
|
C15 |
Understands
Systems: Knows how social, organizational, and technological systems
work and operates effectively with them. |
3 |
|
C16 |
Monitors
and Corrects Performance: Distinguishes trends, predicts impacts on
system operations, diagnoses systems performance, and corrects malfunctions. |
3 |
|
C17 |
Improves or
Designs Systems: Suggests modifications to existing systems and
develops new or alternative systems to improve performance. |
3 |
|
C18 |
Selects
Technology: Chooses procedures, tools, or equipment, including
computers and related technologies. |
1 |
|
C19 |
Applies
Technology to Task: Understands overall intent and proper procedures
for setup and operation of equipment. |
3 |
|
C20 |
Maintains
and Troubleshoots Equipment: Prevents, identifies, or solves problems
with equipment, including computers and other technologies. |
3 |
|
F1 |
Reading:
Locates, understands, and interprets written information in prose and in
documents such as manuals, graphs, and schedules. |
3 |
|
F2 |
Writing:
Communicates thoughts, ideas, information, and messages in writing; creates
documents such as letters, directions, manuals, reports, graphs, and flow
charts. |
3 |
|
F3 |
Arithmetic:
Performs basic computations; uses basic numerical concepts such as whole
numbers, etc. |
N/A |
|
F4 |
Mathematics:
Approaches practical problems by choosing appropriately from a variety of
mathematical techniques. |
2 |
|
F5 |
Listening:
Receives, attends to, interprets, and responds to verbal messages and other
cues. |
3 |
|
F6 |
Speaking:
Organizes ideas and communicates orally. |
1 |
|
F7 |
Creative
Thinking: Generates new ideas. |
1 |
|
F8 |
Decision
Making: Specifies goals and constraints, generates alternatives,
considers risks, and evaluates and chooses best alternative. |
4 |
|
F9 |
Problem
Solving: Recognizes problems and devises and implements plan of action. |
4 |
|
F10 |
Seeing
Things in the Mind’s Eye: Organizes and processes symbols, pictures,
graphs, objects, and other information. |
1 |
|
F11 |
Knowing How
to Learn: Uses efficient learning techniques to acquire and apply new
knowledge and skills. |
3 |
|
F12 |
Reasoning:
Discovers a rule or principle underlying the relationship between two or more
objects and applies it when solving a problem. |
4 |
|
F13 |
Responsibility:
Exerts a high level of effort and perseveres towards goal attainment. |
3 |
|
F14 |
Self-Esteem:
Believes in own self-worth and maintains a positive view of self. |
N/A |
|
F15 |
Sociability:
Demonstrates understanding, friendliness, adaptability, empathy, and
politeness in group settings. |
N/A |
|
F16 |
Self-Management:
Assesses self accurately, sets personal goals, monitors progress, and
exhibits self-control. |
3 |
|
F17 |
Integrity/Honesty:
Chooses ethical courses of action. |
2 |
SCANS (SECRETARY’S COMMISSION ON ACHIEVING NECESSARY SKILLS):
Course SCANS Competencies
Please go to http://www.austincc.edu/mkt/scans.htm#whatis
for a complete definition and explanation of SCANS. This list summarizes
the SCANS competencies addressed in this particular course.
7.6 Apply Reasoning to Finding Solutions or Draw Conclusions
7.3 Apply Problem Solving Skills Appropriate to Situation
4.2 Monitor and
Correct Performance of a System
7.2 Make Decisions
2.3 Serve
Clients/Customers
5.2 Apply Technology
to Task
6.1 Read Written Information in Prose and Documents with Understanding
7.1 Generate New Ideas Using Creative Thinking
3.1 Acquire and Evaluate Information
1.1 Manage Time Effectively
Programming
Assignments – 9
programming problems are to be completed during the course. Send copies
of the source code files and files containing sample/test output for the
program to the instructor for grading.
The first
three of the following programming assignments are from the Dietel
and Dietel Textbook
Program 1 –
Exercise 8.17 Page 471 (Due: 9/8/10) Note: You are required to use
pointer syntax and functions with pointer parameters in the solution to this
problem. Change the Rules for Moving the
Tortoise and the Hare as shown in the following table:
ANIMAL MOVE TYPE % ACTUAL MOVE
Tortoise Fast Plod 40% 3 squares to the right
Slow Plod 30 1
square to the right
Big Slip 20% 5
squares to the left
Small Slip 10% 2
squares to the left
Hare Sleep 20% No move
Big Hop 20% 9
squares to the right
Small Hop 20% 1
square to the right
Big Slip 10% 12
squares to the left
Small Slip 30% 2
squares to the left
Program 2 – Exercise
9.15 Page 529 (Due: 9/13/10) Note: You must include options: 1) for the
program to generate the moves of one of the players; and: 2) for two people to
play each other. Note! Make the
size of the game board a one dimensional 4 X 4 grid.
Program 3 –
Exercise 10.9 Page 577 (Due: 9/20/10) Note: Bothe the unionOfSets and intersectionOfSets
member functions should accept a single parameter of type IntegerSet. This parameter set should be unioned, or intersected, with the “this” object set. The resulting union is to be returned to the
calling program by returning a third object of IntegerSet
(leaving the “this” object set unmodified).
Program
4 – (Due: 9/27/10) Modify the time class found on textbook
pages 533-535 (Ch. 10) by adding overloading for the following operators:
<< which
will allow the output of time in standard format (this will replace the printStandard function of the class). Leave the printUniversal function unmodified.
+ which
will allow the addition of a two time objects and creating a new object. That
is: A = B + C;
- which
will allow the subtraction of two time objects and creating a new object. That is: A = B – C;
++ (preincrement and postincrement)
which will increment the time by one second. Do not allow the minutes or
seconds to be larger than 59.
–- (predecrement and postdecrement)
which will decrement the time by one second. Do not allow the minutes or
seconds to be less than 0.
Verify your solution by testing the
following statements (or their equivalents) in main (assuming that A and B are
objects of the time class).
cout << A + B;
cout << A - B;
cout << ++A;
cout << A++;
cout << --A;
cout << A--;
Programs
1-4 may be submitted late with a 20% penalty until 9/29/10. After that
date they will not be accepted.
Exam 1 – 9/29/10
The first two
of the following programming assignments are from the Dietel
and Dietel Textbook. Note the additions
and modifications required in the specifications below.
Program 5 –
Exercise 12.10 Pages 691-692 (Due: 10/11/10) Note: As an additional
enhancement, provide friend function/s to overload the operator <<
(display the balance) for all three classes (Account, SavingsAccount,
and CheckingAccount).
Program 6 – Exercise
13.12 Page 755 (Due: 10/20/10)
Program 7 –
(Due: 11/1/10) Create a class template which will allow the processing of
a list (this may be an array or an STL container class). The list may be
of type int, float, string, char, or a user declared
ordinal type. The class should provide member functions to:
load the list from a file;
write the list to a file;
sort the list;
search the list for a user specified value;
add a new element to the list;
delete a specific value from the list.
Test your
class template by writing a driver program. Use at least two different
data types, for example, string and int.
Programs
5-7 may be submitted late with a 20% penalty until 11/3/10. After that date
they will not be accepted.
Exam 2 – 11/3/10
The following
programming assignment is from the Dietel and Dietel Textbook. Note the additions and modifications
required in the specifications below.
Program 8 –
Exercise 20.15 Page 987 (Due: 11/17/10) Note: You may use the queue shown
in Figure 20.16 on Page 969 which in turn uses the linked list shown in Figures
20.3 and 20.4 on Pages 950-954 of the textbook. (The files for the queue
and the linked list are available on the textbook CD. Don’t retype
them. If you don’t have the textbook CD, I will send the files to you by
email on request). Or, if you wish you
can use the queue container class from the STL.
Program 9 –
(Due: 11/29/10) Write a spell checker program. The program should
read a text file and output a corrected text file. Have the program
prompt you for the name of the file. The program should prompt the user
to correct or leave as words that the program thinks are misspelled.
Words in the list which the program thinks are spelled correctly should be
moved to the new text file with out changing their
spelling. Each word in the text file should be compared to a master list
of correctly spelled words. The master list of correctly spelled words is
to be created using the
Programs
8-9 may be submitted late with a 20% penalty until 12/08/10. After that
date they will not be accepted.
Exam 3 –12/08/10