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

Riverside Community College District
Integrated Course Outline of Record

Computer Information Systems 17B


COURSE DESCRIPTION

17B C++ Programming: Advanced Objects Units: 3.00
 
Prerequisite(s): None.

Advisory: CIS 17A Previous C++ programming experience
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 Gamming applications that utilize exception handling, multithreading, multimedia, and database connectivity. 54 hours lecture and 18 hours laboratory.
 
SHORT DESCRIPTION FOR CLASS SCHEDULE

This is an advanced programming course in C++ suitable for complex Business, and Gamming applications.
 
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”.

  2. Create, compile, and execute C++ programs from the command line or utilize an Integrated Development Environment (IDE) for program development.

  3. Devise algorithmic solutions to basic business applications using the concepts associated with top-down, data, and object design approaches.

  4. Implement C++ code that conforms to standard programming practices.

  5. Utilize Object Oriented Programming (OOP) techniques such as inheritance and abstraction to demonstrate polymorphic behavior.

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

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

2.   Create programs that run in a multiprocessor environment.

3.   Implement multimedia concepts, which include images, audio,
      video, and animation.

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

5.   Establish client/server connections with stream sockets.

 
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 gamming 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 gamming 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 gamming 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

Required Reading Assignments


Required Writing Assignments


Other Outside-of-Class Assignments

 
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:

  • 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
11/05
516