University of Wisconsin-Whitewater Curriculum Proposal Form #3 New Course Effective Term: 2107 (Fall 2010) Subject Area - Course Number: COMPSCI 174 Cross-listing: N/A (See Note #1 below) Course Title: (Limited to 65 characters) Introduction to C++ 25-Character Abbreviation: Introduction to C++ Sponsor(s): Dr. Hien Nguyen, Dr. Robert Horton. Department(s): Mathematical and Computer Sciences College(s): Letters and Sciences Consultation took place: NA Programs Affected: Yes (list departments and attach consultation sheet) Departments: Multimedia Digital Arts. MCS NA Is paperwork complete for those programs? (Use "Form 2" for Catalog & Academic Report updates) NA Yes Prerequisites: will be at future meeting MATH 143 or MATH 152 or waiver into Calculus Grade Basis: Conventional Letter S/NC or Pass/Fail Course will be offered: Part of Load On Campus Above Load Off Campus - Location College: Letters and Sciences 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 Diversity Writing Requirement General Education Option: Select one: 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: Number of credits: 0 3 Total lecture hours: Total contact hours: 45 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 times in degree: Revised 10/02 No of credits in major: No of credits in degree: 1 of 6 Proposal Information: (Procedures can be found at http://acadaff.uww.edu/Handbook/Procedures-Form3.htm) Course justification: This course is the first of a sequence of three required C++ programming courses 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 in the 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 has identified 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 four of these assessment objectives. Specifically, (1) Conceptual/Foundational Understanding - students will have a chance to strengthen their skills in an object-oriented programming language by understanding and applying foundational concepts of C++ to the design and implementation of appropriate real world problems. (2) Pattern Recognition - this course also provides students with many examples of basic processes and data structures such as inputs/outputs, control structures, arrays, and structs. The understanding of these processes will enhance the students’ ability to recognize when a particular process or data structure is appropriate. (3) Problem solving - is emphasized throughout the course starting with simple applications and progressing to medium-size applications. (4) Synthesis - this course brings conceptual 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 lower level 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. Some Computer Science minors may choose to take COMPSCI 174 rather than COMPSCI 172 reducing the number of sections of COMPSCI 172. Laboratory facilities: adequate lecture space is available. This course can be taught in any lab rooms such as McGraw 115 or Hyer 210. Revised 10/02 2 of 6 Course description: This course teaches basic programming skills using the structured high-level language C++. Topics include basic input and output, declaration and use of variables, use of control statements, implementation of functions using value and reference parameters, arrays, and structures. Students will write moderately complex applications using C++. Course objectives and tentative course syllabus: Course information, objectives, weekly description, grade information (page 4-5), and bibliography (page 6). Revised 10/02 3 of 6 COMPSCI 174: Introduction to C++ Required Texts: “C++ How to Program, Sixth Edition” by Paul J. Deitel. Course Description This course seeks to teach its students basic programming skills using a structured high-level This course seeks to teach its students basic programming skills using a structured high-level language. Specifically, the basic topics such as basic input and output, declare and use variables, use of control statements, implement functions using values and reference parameters, arrays, structures. Students will write moderately complex applications using C++. Prerequisite: MATH 143 or MATH 152 or qualify to a calculus class. Course Objectives 1 Given a simple real-world problem, students will be able to develop C++ programs to gather input data, solve the problem using fundamental control structures and data structures such as arrays and structs, and display results. 2 Given a real world problem, students will be able to develop a multiple function C++ program solution. Tentative Course Schedule WEEK READINGS Assignment Description Project/Exams Syllabus, Class Introduction, Computer Basics 1 2 Chapter 1 Algorithm, flowchart, pseudo code. Fundamentals of C++ 3 Chapter 2 Modifying Variables, Control Structures Lab 2 4 Chapter 2 Control Structures (continue) Lab 3 5 Chapter 3 Function Basics Project 1 due Lab 4 6 Chapter 3 Variable Scoping & Functions Lab 5 Project 2 given 7 Chapter 3 Iterative Constructs Lab 6 8 Review of Chapters 1, 2 and 3. Midterm 1 Revised 10/02 4 of 6 Lab 1 Project 1 given 9 Modular Programming Lab 7 Project 2 due 10 Chapter 4 Arrays Lab 8 11 Chapter 4 Arrays Lab 9 Project 3 given 12 Chapter 5 Pointers & Strings Lab 9 13 Chapter 5 Pointers & Strings Lab 10 14 Chapter 6 Structs Lab 11 15 Chapter 6 Structs Lab 12 Project 3 due 16 Review of Chapters 1-6 Final exam Grading Policy GRADABLE Percentage 3 Projects 45% 12 Labs 12% Midterm exam 18% 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) OR GNU C++ (for LINUX users) Revised 10/02 5 of 6 Bibliography: (Key or essential references only. Normally the bibliography should be no more than one or two pages in length.) 1. 2. 3. 4. 5. 6. Stephen Prata. 2004. C++ Primer Plus (5th Edition). Sams; 5 edition David Conger, Ron Little. 2006. Creating Games in C++. Pearson Nell Dale, Chip Weems. 2005. Programming in C++. Jones and Bartlett. 3rd edition Paul J. Deitel. 2007. C++ How to Program, Sixth Edition. Prentice Hall Bruce Eckel. 2003, Thinking in C++ (Volumes 1 and 2). Prentice Hall 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 Notes: 1. Contact the Registrar's Office (x1570) for available course numbers. A list of subject areas can be found at http://acadaff.uww.edu\Handbook\SubjectAreas.htm 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/02 6 of 6