GEORGIA
PERIMETER COLLEGE
COMMON
COURSE OUTLINE
COURSE
ABBREVIATION CSCI 2900C Special Topics (C++)
CREDIT
HOURS 3
COURSE
TITLE Introduction
to C++ Programming
PREREQUISITES CSCI
1301, with a C or better, or permission from the instructor.
CATALOG DESCRIPTION The focus of this
course is to transition students with knowledge of another computer language to
C++. It 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, algorithm
analysis, and file processing techniques, while continuing to emphasize
structured programming techniques.
SPECIFIC EXPECTED EDUCATIONAL RESULTS
Completing this
course with a grade of C or better, the student will:
1.
Construct program code to define, set up, read data from, and write
data to a data file of type other than text.
2.
Compare and contrast text files and binary files and describe
differences in program code implementation.
3.
Determine output from a segment of code, which uses a recursive
subprogram.
4.
Compare and contrast static and dynamic memory allocation.
5.
Construct program code to define a pointer variable and use it to
create, access, and dispose of a dynamic variable.
6.
Choose and manipulate appropriate abstract data structures such as
lists, stacks, queues, and trees.
7.
Demonstrate an understanding of polymorphism and inheritance for
objects by using them appropriately in a program.
8.
Describe the appropriateness of sorting and searching algorithms in a
given context.
9.
Analyze and determine the efficiency of a specific algorithm using
algorithm analysis techniques and tools such as O(n), q(n), and W(n).
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 handouts.
2. Students will further develop their communication and critical thinking skills by reading, interpreting, and implementing program requirements to create a well-behaved software system.
3. 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.
4. Students develop their reading and writing skills through the use of problems and activities, including development of computer programs and documentation, designed 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.
ENTRY LEVEL COMPETENCIES
Students entering
this course will meet the expected educational outcomes of CSCI 1301.
COURSE CONTENT
I Review of CS1 Required (Must be 20%
of course.)
1. Date
types in C++
2.
Loops in C++
3.
Conditional control structures in C++
4.
Functions in C++
5.
Text file I/O in C++
6.
Arrays and vectors in C++
7.
Basic class building in C++
II Advanced Programming Techniques
1. Additional data types (strings,
sets, ordinal types)
1.
Recursion
2.
Pointers
3.
Advanced sorting and searching techniques
III Data Abstraction
1.
Abstract data types (linked lists, stacks, queues)
2.
Object-oriented design and implementation
IV File processing techniques
1. Text vs. Structured component files
2. Characteristics of secondary storage
devices
3.
Access methods (random/sequential/direct)
4.
Fixed-length vs. Varying-length components
5.
Indexed files and key values
V Analysis of Algorithms
1.
Characteristics of analysis
2.
Big-O Notation
ASSESSMENT OF EXPECTED EDUCATIONAL RESULTS
A.
COURSE GRADE
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% no more than 35%.
B. DEPARTMENTAL
ASSESSMENT
CSCI 2900C Special
Topics (C++) will be assessed 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.
C.
USE OF ASSESSMENT FINDINGS
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.