CPSC 246 - Advanced Programming Principles

Catalog Description

This course places its emphasis on data and their role in software development. Such a study relies on a two-step approach to data abstraction. In the first step, data must be viewed as abstract objects. These objects are selected and specified so as to be useful in the solution of programming projects. In the second step, the abstract objects are translated into program data structures. An extensive examination of data structures provides the student many opportunities to explore the issues of implementing data abstractions. This course will be taught in C++, and will include an introduction to Unix/Linux.

Prerequisite: CPSC 146, and MGMT/ECON/BUSA 219 or any Math course beyond MATH 120, or permission of instructor. (3 credits)

Course Outcomes

This course and its outcomes support the Computing Learning Outcomes of Problem Solving and Critical Thinking (PS&CT), Communication and Interpersonal Skills (C&IS), and Ethical and Professional Responsibilities (E&PR). These Computing Learning Outcomes are tied directly to the University Wide Outcomes of Critical Thinking, Effective Communication, and Acting Ethically.

Program Objectives Assessed in CPSC 246

Learning OutcomesAssessed Course Objectives
PS & CT d. Implement computing solutions that consist of system and application software written in various programming languages1. Implement object-oriented programs that use advanced features of the language and run to normal termination and which meet written specifications.
2. Design object-oriented programming solutions that include concepts such as encapsulation, inheritance, and polymorphism.
C & IS a. Document all aspects of a system precisely and clearly3. Write well documented code with an appropriate user interface that meets style requirements for readability and usability.
E & PR c. Demonstrate an awareness of the codes of professional ethics in the information technology industry4. Understand ethics & professionalism.

Additional Course Objectives include:

The student will be able to:

  1. Identify and use programming concepts supported by the core language such as classes, exception handling, events, and recursion.