University of Wisconsin-Whitewater

Curriculum Proposal Form #3

New Course

Effective Term:

Subject Area - Course Number:COMPSCI 223Cross-listing:N/A

(See Note #1 below)

Course Title:(Limited to 65 characters)AdvancedC++

25-Character Abbreviation: Adv C++

Sponsor(s): Dr. Hien Nguyen, Dr. Robert Horton.

Department(s):Mathematical and Computer Sciences

College(s):

Consultation took place:NA Yes (list departments and attach consultation sheet)

Departments: Multimedia Digital Arts, MCS

Programs Affected:NA

Is paperwork complete for those programs? (Use "Form 2" for Catalog & Academic Report updates)

NA Yeswill be at future meeting

Prerequisites:COMPSCI 222

Grade Basis:Conventional LetterS/NC or Pass/Fail

Course will be offered:Part of Load Above Load

On CampusOff Campus - Location

College:Dept/Area(s):Math. and Computer Sciences

Instructor:Dr. Robert Horton, Dr. Hien Nguyen

Note: If the course is dual-listed, instructor must be a member of Grad Faculty.

Check if the Course is to Meet Any of the Following:

Computer Requirement Writing Requirement

Diversity General Education Option:

Note: For the Gen Ed option, the proposal should address how this course relates to specific core courses, meets the goals of General Education in providing breadth, and incorporates scholarship in the appropriate field relating to women and gender.

Credit/Contact Hours: (per semester)

Total lab hours:0Total lecture hours:45

Number of credits:3Total contact hours:45

Can course be taken more than once for credit? (Repeatability)

No Yes If "Yes", answer the following questions:

No of times in major:No of credits in major:

No of times in degree:No of credits in degree:

Revised 10/021 of 3

Proposal Information: (Procedures can be found at

Course justification:This course is the third in a three course C++ sequence required for the Technology thread in the Multimedia Art and Game Development major being developed in collaboration with the College of Arts and Communications. This course is also very valuable for students inthe Management Computer Systems program and the Computer Science minor to broaden their views in core areas of computer science by exposing them to additional programming languages and development environments

Relationship to program assessment objectives:

The Assessment Committee in the Department of Mathematical and Computer Sciences hasidentified 5 universal objectives that address cognitive processes involved in learning math and computing topics. They are Analytical Reasoning, Conceptual/Foundational Understanding, Pattern Recognition, Problem Solving, and Synthesis. Adding the course “Introduction to C++” will help strengthen all five of these assessment objectives. Specifically,

(1) Analytical Reasoning – students will have many opportunities to analyze real-world problems, decide which data structures and C++ tools should be used to address the problems.

(2) Conceptual/Foundational Understanding - students will have a chance to strengthen their skills in an object-oriented programming language by understanding and applying advanced concepts of C++ to the design and implementation of appropriate real world problems.

(3) Pattern Recognition - this course also provides students with many examples of basic siftware development and data structures patterns . The understanding of these patternswill enhance the students’ ability to recognize when a particular software development or data structures is appropriate.

(4) Problem solving - is emphasized throughout the course in an advanced application development environment

(5) Synthesis - this course bringsconceptual understanding and specific implementation skills together in developing applications.

Budgetary impact:

Staffing:Many members of the current Computer Science staff have the expertise necessary to staff this course. Presently, the decline in enrollment of some lower level computer science courses allows the department to be able to provide staff needed for this course. It is anticipated that Dr. Robert Horton and Dr. Hien Nguyen will initially be the instructors.

Academic unit library and service & supply budget:

It is not anticipated that this course will affect the department’s service & supply or library budget.

Impact on campus instructional resource units:

This course will likely enter into the rotation with existing upper division courses in Computer Sciences. If the proposal of the Multimedia Art and Game Development major is approved, this course will serve as one of the core courses in the technology thread for this major. New computer offerings in the College of Business and Economics have reduced demand for some of the computer science service offerings, thus creating the scheduling flexibility to be able to offer this new course. Additional instructional resource units will be required if multiple sections of this course are needed.

Laboratory facilities: Adequate lecture space is available. This course can be taught in any computerlab classroom such as McGraw 115 or Hyer 210.

Course description:

This course covers issues of data structures, professional software development methodologies including software patterns and advanced object oriented techniques. Topics include lists, queues, stacks and trees. Complex data structure and object-oriented design technique, including inheritance and polymorphism, are appliedto develop and large projects.

Course objectives and tentative course syllabus:

Course information, objectives, weekly description and grade information (page 4-6), and bibliography (page 7).

COMPSCI 223: AdvancedC++

Required Texts:

Objects, Abstraction, Data Structures and Design Using C++” by Elliot B. Koffman, Paul A. T. Wolfgang.

Course Description

This course covers issues of data structures, professional software development methodologies including software patterns and advanced object oriented techniques. Specifically, the basic topics are lists, queues, stacks and trees. We use object-oriented design technique, including inheritance and polymorphism, and apply these to develop complicated data structure and large projects.

Prerequisite: COMPSCI 222

CourseObjectives

1 / Given a basic data structure as well as a complex data structure, students will be able to apply the theory to implement applications using those data structures and analyze efficiency of each type.
2 / Given a real world problem, students will be able to design and implement C++ application solutions using basic and complex data structures as well as advanced C++ tools and object oriented design principles..

TentativeCourseSchedule

WEEK / READINGS Assignment
/ Description
1 / Chapter 1 / C++ review: variables, types; functions. Arrays; structures
2 / Chapter 3 and 4 / Lists
3 / Chapter 5 and 6 / Stack, Queue
4 / Agile Design, Unified Model, Test Driven Development
5 / Chapter 2 / Software Patterns
6 / Chapter 2 / Software Patterns
7 / Chapter 2 / Software Patterns
8 / Review / Midterm
9 / Chapter 7 / Recursion
10 / Chapter 8 / Trees
11 / Chapter 11 / Search Trees
12 / Chapter 9 / Sorting Algorithms
13 / Chapter 10 / Sets and Maps
14 / Chapter 12 / Graphs
15 / Advanced Topics
16 / Review / Final exam

GradingPolicy

GRADABLE / Percentage
5 Projects / 45%
10Labs / 10%
Midterm exam / 20%
Final exam / 25%
Total / 100%
Letter Grade / Percentage / Letter Grade / Percentage
A / 94 to 100% / A- / 90 to 93%
B+ / 87 to 89% / B / 84 to 86%
B- / 80 to 83% / C+ / 77 to 79%
C / 74 to 76% / C- / 70 to 73%
D+ / 67 to 69% / D / 64 to 66%
D- / 60 to 63% / F / Less than 60%

Technology requirement

Microsoft Visual C++ (for Windows users)ORGNU C++ (for LINUX users)

Bibliography: (Key or essential references only. Normally the bibliography should be no more than one or two pages in length.)

  1. Stephen Prata. 2004. C++ Primer Plus (5th Edition). Sams; 5 edition
  2. David Conger, Ron Little. 2006. Creating Games in C++. Pearson
  3. Nell Dale, Chip Weems. 2005. Programming in C++. Jones and Bartlett.3rd edition
  4. Paul J. Deitel. 2007. C++ How to Program, Sixth Edition.Prentice Hall
  5. Bruce Eckel. 2003, Thinking in C++ (Volumes 1 and 2). Prentice Hall
  6. Frank L. Friedman, Elliot B. Koffman. 2000. Problem Solving, Abstraction and Design Using C++. Addison-Wesley, 3rd edition
  7. Tony Gaddis. 2010. Starting Out with Games and Graphics in C++. Addison-Wesley
  8. Y. D. Liang. 2007. Introduction to C++ Programming (Comprehensive Edition). Pearson Prentice Hall.
  9. Ray Lischner.2003. C++ in a Nutshell. O'Reilly Media, Inc.; 1st edition
  10. Jo Ellen Perry, Harold D. Levin. 1996. An Introduction to Object-Oriented Design in C++. Addison-Wesley
  11. Walter Savitch.2008. Absolute C++. Addison-Wesley. 3rd edition
  12. William H. Ford. 2001. Data Structures Using C++. Prentice Hall. 2nd edition
  13. Nell Dale. 2003. C++ Plus Data Structures. Jones and Bartlett. 3rd edition
  14. Mark Allen Weiss. 1999. Data Structures and Problem Solving Using C++. Addison Wesley. 3rd edition
  15. Michael T. Goodrich, Roberto Tamassia, David M. Mount. 2010. Data Structures and Algorithms in C++. Wiley Higher Education. 2nd edition

Notes:

  1. Contact the Registrar's Office (x1570) for available course numbers. A list of subject areas can be found at
  2. The 15 and 25 character abbreviations may be edited for consistency and clarity.
  3. Please submit electronically when approved at the college level - signature sheet to follow in hard copy.

Revised 10/021 of 3