You are on page 1of 6

Georgia Perimeter College

Mathematics/Engineering/Computer Science Division
CSCI 1301 – Principles of Computer Science I

Course Title:

Principles of Computer Science I



CSCI 1300 and MATH 1111 with a 'C' or better.



Big Java: Late Objects, Cay Horstmann, Wiley Publishing, ISBN


Catalog Description:
This course is an introduction to the fundamental principles of computer science. It
emphasizes structured, top-down development and testing of computer programs. The
course includes an overview of computers and programming; problem solving and
algorithm development; simple data types; arithmetic and logic operators; selection
structures; repetition structures; text files; arrays (one-and-two dimensional); procedural
abstraction and software design; modular programming (including subprograms or the


Course Objective:
This course provides fundamental problem-solving, algorithm development, and
programming skills in preparation for further study of computer science.


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 the text to comply with the
Common Course Outline.
Assignments are left to the discretion of the instructor. Student assignments should
primarily involve programming exercises rather than other types of problems.

Problem Solving Strategies a) Decomposition b) Analogy 2.7 Chapter 2: Fundamental Data Types.5-6. sections 3. Algorithm verification a) Test data b) Walk through C. Introduction to the Programming Environment a) Integrated development environments b) Use of an IDE c) Editing d) Compiling/linking/executing programs e) Debugging programs. sections 6. sections 7. section 1.7 Chapter 7: Input/Output and Exception Handling.1-1. Problem Solving and Algorithm Development Chapter 1: Introduction. section 8.8-8. Computer systems overview 2.4 1.VII. sections 1. Programming languages and paradigms a) Procedural programming b) Object-oriented programming 3. sections 8.4-7.9 1.6-5. section 2.5. 1. Program Design Concepts a) Top-Down versus Bottom-Up Design b) Abstraction .5 Chapter 8: Objects and Classes. Program Structure and Software Engineering Concepts Chapter 1: Introduction. section 1.7 Chapter 6: Arrays and Array Lists.6 Chapter 8: Objects and Classes. Problem Analysis a) Understanding the problem b) Specifying input c) Describing output specifications 3. Algorithm Representation a) Top-down design/pseudocode b) Graphical techniques c) Algorithm refinements 4. Course Content: A. sections 5.4 Chapter 3: Decisions.6 Chapter 5: Methods.1 Common Errors callouts in all chapters 1. use of debuggers B.5 – 3. Overview of Computing and Programming Chapter 1: Introduction.

3. sections 5. Simple Data Types Chapter 2: Fundamental Data Types. Primitive data types a) Integer types – byte. sections 3.2 Appendix L: Java Language Coding Guidelines 1.7 Chapter 7: Input/Output and Exception Handling. Importing predefined code libraries E. Basic class and method structure 3. Basic program structure Chapter 1: Introduction. double c) Character types -. Primitive and reference variable definitions 5.char d) Boolean type – bool 2.2 Chapter 8: Objects and Classes. long b) Float types – float. i) Procedural ii) Data c) Information hiding d) User interface design e) Efficiency.5 Chapter 3: Decisions. and non-static values 4. Object instantiation using new 6. Operations and expressions a) Arithmetic. static.10-8. arithmetic-assignment.11 1.2.2. 2. The String class 3. Final. sections 2. sections 7. short. sections 8.1-7. robustness and correctness f) Common programming errors g) Debugging techniques h) Use of stubs and drivers i) Generating test data j) Data design specifications Exceptions a) Handling exceptions b) Generating/throwing exceptions c) Exception handlers D. 3. Style a) Indentation b) Capitalization and naming conventions c) Documentation and comments 2. int. and auto increment/decrement operators b) Relational operators and methods c) Logical operators d) String operators and methods .1-2.5 Chapter 5: Methods.1-5. section1.

1-7.3. Input and Output Chapter 2: Fundamental Data Types.4. sections 8. Modular Programming Chapter 5: Methods.exit method G. Console input a) Scanner class b) Input methods for primitive values c) Input methods for strings and lines 2. Control Structures Chapter 3: Decisions. sections 5.3 1. section 2.8 Chapter 8: Objects and Classes. 3. Selection statements a) If and if-else statements b) Switch statement 3.out object b) Basic output methods c) Escape characters d) Formatted output i) printf() method ii) String. 4. Predefined methods and packages . Repetition statements a) For statement b) While statement c) Do-while statement 4. sections 4. Nesting control structures 5. File input/output a) Scanner and BufferedReader/FileReader classes for input b) PrintWriter and FileWriter classes for output 4.7-4. Sequential statements 2. Break and continue statements H.9 1. 2.7. sections 7.8 Chapter 4: Loops.7.5 Chapter 7: Input/Output and Exception Handling. Screen output a) System.1-5.5.10-8. e) Order of Precedence Type casting F.11 1. Dialog boxes for input/output a) JOptionPane class b) Input dialog boxes c) Message dialog boxes d) System.1-4.1-3. 8.1-8.5. sections 3. 5.format() method iii) DecimalFormat and related objects 3.

Predefined packages/classes a) String class b) Input/output classes c) GUI classes d) Character & numeric wrapper classes 3.3 1. sections 9.1-8.11 Chapter 9: Inheritance.1-9.6 Chapter 10: Graphical User Interfaces.1-10. Abstract Data Types a) Basic concepts b) Relationship to classes 2.5 Chapter 8: Objects and Classes. Inheritance a) the Object class b) Polymorphism c) Abstract classes & methods d) Interfaces .2. I. sections 10. User-defined classes a) Structure b) Data members i) Static variables ii) Non-static variables iii) Data member access c) Constructor methods i) Default ii) Explicit-value iii) Copy d) Built-in operations e) Accessor methods f) Mutator methods g) Finalizers h) Class scope i) Inner classes j) Package creation k) The reference variable this 4. section 2. sections 8. User-defined methods a) Structure b) Calls c) Return types d) Parameters and arguments e) Method overloading f) Call by reference versus call by value g) Static versus non-static methods h) Method overloading Classes and Abstract/Structured Data Types Chapter 2: Fundamental Data Types.

The String class a) String manipulation methods b) String tokenization 3. 2012 Approved Date: June 2012 . The final examination must be weighted at not less than 25% nor more than 35%. VIII.8 Note: instructor will need to provide supplemental material for String methods and tokenization as well as enum types.J. Arrays a) Basic structure i) Arrays containing primitive values ii) Arrays containing objects i) Strings ii) Other objects b) Array definition i) Size specification ii) Type specification c) The length variable d) Array processing i) Random elements ii) Element-by-element iii) The enhanced for loop e) Arrays as parameters to methods f) Parallel arrays g) Common array errors h) Variable length parameter lists i) Two-dimensional arrays j) Multi-dimensional arrays 2. Effective Date: August. Arrays and Structured Data Types Chapter 6: Arrays and Array Lists. 1. and a final exam prepared by individual instructors will be used to determine the course grade. Five to seven student programming projects must be assigned.1-6. assignments. The course grade must weigh examinations for at least 50% of the grade and programming assignments for not more than 50% of the grade. Enum types a) Definition b) Usage Evaluation Methods Details of grade determination are left to the instructor with the approval of the Department Head. Exams. Testing must consist of at least two one-hour examinations and a comprehensive final examination. sections 6.