GEORGIA
PERIMETER COLLEGE
COMPUTER
SCIENCE
TEACHING
GUIDE -- CSCI 1301
V.
Course
Objective:
This course provides fundamental problem-solving,
algorithm development, and programming skills in preparation for further study
of computer science.
VI.
General
Notes:
The material on
a high level programming language and on algorithm development can be taught
best as an integrated whole. The instructor
will decide the sequence of topics. The
emphasis of the course is on the techniques of algorithm development and
programming with style. Neither
esoteric features of a programming language nor other aspects of computers
should be allowed to interfere with that purpose. Student assignments should utilize concepts of the course and
should emphasize good programming style, documentation, and robustness. They should use familiar applications
including some that involve scientific and business applications. Students should be encouraged to share their
ideas while developing their own projects.
Students should not share code. Instructors
will cover appropriate sections in text to comply with the Common Course
Outline.
VII.
Course Outline
COURSE CONTENT
Overview of
Computing and Programming
Chapter
0: Beginning
Snapshots
1.
Computing As A Science
A. Computer Science History
B. Paradigms for Programming
2.
Introduction to the Programming Environment
A. Basic Commands
1. Use of the
menu
2. Editing
3.
Compiling/Linking/Executing
4.
Debugging
5.
One in class lab with instructor
Problem
Solving and Algorithm Development
Chapter One: Overview of Computers and Problem
Solving
Chapter Two: Introduction to C++
1. Problem Solving Strategies
A.
Decomposition
B.
Analogy
2.
Problem Analysis
A.
Understanding the Problem
B. Specifying
Input
C.
Describing Output Specifications
3. Algorithm
Representation
A.
Top-Down Design
B.
Graphical Techniques
4. Algorithm Refinements
5. Algorithm Verification
A.
Test Data
B.
Walk Through
Program Structure and Software Engineering Concepts
Chapter Two: Introduction to C++
Chapter Three: More on the Elements of C++
1. Program Structures
2.
Input/Output
3. Design
A. Abstraction
1. Procedural
2. Data
B. Top-Down versus Bottom-Up Design
C. Information Hiding
D. User Interface
E. Efficiency
F.
Robustness
4. Common Programming Errors
5. Correctness
A. Debugging Techniques
B. Use of Stubs and Drivers
C. Generating Test Data
6. Style
A. Indentation
B. Capitalization
C. Choice of Identifiers
F. Documentation
A. Internal Program Comments
B. Design Specifications
Simple Data Types
Chapter Two: Introduction to C++
Chapter
Three: More on the
Elements of C++
Chapter
Six: The String Data Type and More Output
Formatting
Chapter
Twelve: The switch and enum Statements
1.
Primitives
a. Integer
b. Float
c. Character
d. Boolean
2.
Introduction to User-Defined Types
a. Global constants
b. enum Types
3.
Operations
a. Arithmetic
b. Relational
c. Logical
d.
Bitwise
Selection and Repetition Structures
Chapter
Four: Selection
Using if and if..else
Chapter
Six: The String Data Type and More Output
Formatting
Chapter
Seven: The Three C++
Looping Constructs
Chapter
Eight: More on Loops
Chapter
Twelve: The switch and enum Statements
1. Control Structures
A. Sequential
B. Selection
C. Repetition
D. Nesting
Modular Programming
Chapter
Five: Functions and
Program Design
Chapter
Nine: Functions
with Reference Parameters
Chapter
Ten: More on Functions
1. Functions
A.
Predefined functions and
library files
B. Structure
C.
Calls
D.
Function overloading
2.
Parameters
A.
Call by Reference
Text files
Chapter
Eleven: Text Files and
Streams
1.
Text Files
I)
Object-Oriented Paradigm
a) Abstraction
b) Abstract Data Types
(ADT)
c) Structured Data
Types
d) Function Templating
e) Overloading
f)
Classes
Abstract/Structured Data Types
Chapter
Thirteen: Arrays and the
Vector Class
Chapter
Fourteen: Searching
and Sorting
Chapter
Fifteen: Matrices
Chapter
Sixteen: String
Processing
Chapter
Seventeen: Structs
1.
Introduction to Structured Types
A.
Arrays and the Vector class
B.
Strings
C.
Structs
2. Algorithms
A.
Sorting
1. Bubble Sort
2. Selection Sort
B. Searching
1.
Linear Search
2.
Binary Search
Details of grade
determination are left to the instructor with the approval of the Department
Head. 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%.
IX. Effective
Date: August, 1998 Approved Date: May, 1998