Discipline: Computer Science
CIS-Computer Information Systems
Degree Credit  [X]
Non Credit  [ ]
Nondegree Credit  [ ]
Comm Service  [ ]
 

Riverside Community College District
Integrated Course Outline of Record

Computer Science 17B


College: R_X_ M___ N_X_
CSC-17B: C++ Programming: Advanced Objects
Same as: CIS- 17B
Lecture Hours: 54
Lab Hours: 18
Units: 3.00
 
COURSE DESCRIPTION

Prerequisite(s): None.

Advisory: CIS 17A or CSC 17A
This is an advanced C++ programming course for students familiar with object-oriented programming and utilization of basic graphical interface techniques. An emphasis will be placed on advanced concepts associated with complex business and gaming applications that utilize exception handling, multithreading, multimedia, and database connectivity. 54 hours lecture and 18 hours laboratory. (TBA option)(Letter Grade, or Pass/No Pass option.)
 
SHORT DESCRIPTION FOR CLASS SCHEDULE

This is an advanced programming course in C++ suitable for complex business, and gaming applications. (Same as CIS-17B)
 
ADVISORY ENTRY SKILLS
Before entering the course, students will be able to:

  1. Utilize values and/or references from primitive types as well as Abstract Data Types “ADT’s”.
    • CSC 17A - Analyze and understand the Object-Oriented C++ environment.

  2. Create, compile, and execute C++ programs from the command line or utilize an Integrated Development Environment (IDE) for program development.
    • CSC 17A - Apply theoretical gaming, business, scientific, and mathematical concepts in writing and executing programs in the C++ language using Object-Oriented programming methodology.

  3. Devise algorithmic solutions to basic business applications using the concepts associated with top-down, data, and object design approaches.
    • CSC 17A - Apply theoretical gaming, business, scientific, and mathematical concepts in writing and executing programs in the C++ language using Object-Oriented programming methodology.

  4. Implement C++ code that conforms to standard programming practices.
    • CSC 17A - Apply theoretical gaming, business, scientific, and mathematical concepts in writing and executing programs in the C++ language using Object-Oriented programming methodology.

  5. Utilize Object Oriented Programming (OOP) techniques such as inheritance and abstraction to demonstrate polymorphic behavior.
    • CSC 17A - Analyze and understand the Object-Oriented C++ environment.

STUDENT LEARNING OUTCOMES
Upon successful completion of the course, students should be able to:

Write medium to large C++ programs individually and as part of a programming team effort.

  1. Critical Thinking - Analyze and solve complex problems across a range of academic and everyday contexts

Create programs that run in a multiprocessor environment such as but not limited to multimedia components.

  1. Critical Thinking - Generalize appropriately from specific contexts

Use C++ database connectivity “ODBC” with basic SQL to maintain and update records.

  1. Critical Thinking - Integrate knowledge across a range of contexts

 
COURSE CONTENT

  TOPICS
 
  1. The intent of this course is to provide the student with the tools necessary to create a complex business application. An equally plausible objective would be the ability to develop a gaming application with client-server functionality. With these objectives in mind there are many topics that must be covered to satisfy the numerous skills required.
  2. Graphical components must be thoroughly reviewed for user interfaces and exception handling must be implemented to catch the most common user interface errors. File streams associated with binary, audio, and video components reduce program execution speed thereby necessitating code development in a multi-threaded environment.
  3. Creating socket communication between client and server illustrates advanced software design in a distributed environment. Multi-tiered software projects with database servers increases the effectiveness of distributed applications while demonstrating security and backup techniques which safeguard important client data.
  4. All these components will need to be covered to satisfy the complete design of a business or gaming application.
 
METHODS OF INSTRUCTION
Methods of instruction used to achieve student learning outcomes may include, but are not limited to:

  • Present class lectures/discussions/demonstrations in order to prepare the student for the coding assignments and review the reading material.
  • Create group activities such as group projects in order to familiarize the student with the real world environment of programming.
  • Develop and assign class exercises such as weekly homework problems in order to familiarize and gain practice in utilizing the concepts necessary to build complex business and gaming applications.
  • Develop and assign web-based/web-enhanced/online/distance learning tasks/activities such as building an advanced business application or implementing an on-line gaming application in order to put into practice those concepts covered during the lectures and review.
 
METHODS OF EVALUATION
Students will be evaluated for progress in and/or mastery of learning outcomes by methods of evaluation which may include, but are not limited to:

  • Oral presentation of the final project which describes all the concepts utilized and demonstrates the use of the project for the class and the instructor.
  • Written project reports which thoroughly document the several projects assigned in-class. These represent full documentation of software projects using UML.
  • Class and individual projects which put into practice those concepts covered in-class. Collaboration with fellow students on the class project will represent real world team programming efforts.
ASSIGNMENTS

Outside-of-Class Reading Assignments
  • The primary assignments for this course involve the creation of programs using C++.
  • To support that, students will be assigned textbook reading and/or other resource reading that covers programming concepts and demonstrates usage of C++.

Outside-of-Class Writing Assignments
  • Assignments for this course involve writing C++ programming statements to form complete programs that carry out specific tasks.

Other Outside-of-Class Assignments
  • The primary assignments for this course involve the creation of programs using C++.
 
COURSE MATERIALS
All materials used in this course will be periodically reviewed to ensure that they are appropriate for college level instruction. Possible texts include:

  • Blanchette, J., Summerfield, M.. C++ GUI Programming with Qt 4. 2nd ed. Prentice Hall, 2008.
  • Deitel, H., Deitel P.. C++ How to Program. 8th ed. Upper Saddle River NJ: Prentice Hall, 2011.
  • All materials used in this course will be periodically reviewed to ensure that they are appropriate for college level instruction. Open source software documentation for C++ will be used for each component of the class which can be found at:

    1. Graphical Interfaces -> http://www.gtk.org/
    2. Multi-Threading -> http://www.llnl.gov/computing/tutorials/pthreads/
    3. Media Library -> http://www.libsdl.org/index.php
    4. Database-> http://www.mysql.com/
    5. Rendering Library -> http://www.opengl.org/
    6. Sockets -> http://www.linuxgazette.com/issue74/tougher.html#1
01/24/2012
4182