GPC Common Course Outlines Return to all courses

CSCI 1302

This is an archive of the Common Course Outlines prior to fall 2011. The current Common Course Outlines can be found at
Credit Hours 4
Course Title Principles Of Computer Science II
Prerequisite(s) CSCI 1301 with a "C" or better
Corequisite(s) None Specified
Catalog Description
The course continues the introduction of the fundamental principles of computer science from CSCI 1301. It extends algorithm development to large programs and introduces additional data structures, pointers, recursion, abstract data types, object-oriented design and programming, and algorithm analysis, while continuing to emphasize structured programming techniques.

Expected Educational Results
As a result of completing this course, the student will be able to do the following:
  1. Compare and contrast abstract data types versus objects.
  2. Create and use objects and classes appropriately in a program.
  3. Demonstrate an understanding of polymorphism and inheritance for objects by using them appropriately in a program.
  4. Determine output from a segment of code which uses a recursive subprogram.
  5. Compare and contrast static and dynamic memory allocation.
  6. Construct program code to define a pointer variable and use it to create, access, and dispose of a dynamic variable.
  7. Choose and manipulate appropriate abstract data structures such as lists, stacks, queues, and trees.
  8. Describe the appropriateness of sorting and searching algorithms in a given context.
  9. Analyze and determine the efficiency of a specific algorithm using Big-O notation.
General Education Outcomes
I. This course addresses the general education outcome relating to communications as follows:
  1. Students develop their reading comprehension skills by reading the text and handout materials.
  2. Students develop their listening skills through lecture and small group problem solving. Lecture material is presented that is not included in the text or handout material and is included as part of the tests or assignments.
  3. Students develop their reading and writing skills through the use of problems and activities, including development of computer programs and documentation, developed specifically to enhance their understanding of computer science principles and programming language skills. Students provide written or oral solutions to these problems in either individual or group format. They must also answer short-answer type questions on course exams.

II. This course addresses the general education outcome relating to problem-solving and critical thinking skills through programming assignments that take the student through the programming process from understanding the problem all the way to finalizing a correct program solution to the problem.

III. This course addresses the general education outcomes relating to mathematical concept usage and scientific inquiry as follows:

  1. Students apply mathematical concepts in the development of computer programs by creating mathematically-based solutions to the assigned problems and communicating the results of those solutions to the program user.
  2. Students apply the scientific method in the set-up and solution of the problems presented to illustrate computer programming principles.

IV. This course addresses the general education outcome relating to organization and analysis of information using a computer by using a modern, fully-capable programming language in the solution of problems designed to illustrate the concepts and principles of computer programming.


It is assumed that students entering this course meet the expected educational outcomes of CSCI 1301.

Course Content
I. Review (5%)

II. Advanced Programming Techniques (30%)

  1. Recursion
  2. Exception handling
  3. Dynamic memory allocation
  4. Sorting and searching techniques

III. Data Abstraction (50%)

  1. Abstract data types
    1. Lists
    2. Stacks
    3. Queues
    4. Binary trees
    5. Other language-specific data types
  2. Object-oriented design and implementation
    1. Software engineering tools
    2. Inheritance & polymorphism
    3. Graphical user interfaces

IV. Analysis of Algorithms (15%)

  1. Characteristics of analysis
  2. Big-O Notation
Assessment of Outcome Objectives
Exams, assignments, and a final exam prepared by individual instructors will be used to determine the course grade. The course grade must weigh examinations for at least 50% of the grade and programming assignments for not more than 50% of the grade. Five to seven student programming projects must be assigned. Testing must consist of at least two one-hour examinations and a comprehensive final examination. The final examination must be weighted at not less than 25% nor more than 35%.

CSCI 1301 and CSCI 1302 will be assessed together every five years. The assessment instrument will be determined by the CSCI course committee, and will consist of a common project and a set of free response questions that will be included as a portion of the final examination for all students taking the course.

The CSCI Committee, or a special assessment committee appointed by the Executive Committee of the Mathematics Academic Group, will analyze the results of the assessment and determine implications for curriculum changes. The committee will prepare a report for the Academic Group summarizing its finding.

Last Revised: Aug. 15, 2011
Return to all courses