1301_tg_horstmann_2012-3

Upload: cthunder1

Post on 03-Nov-2015

213 views

Category:

Documents


0 download

DESCRIPTION

Syllabus

TRANSCRIPT

Georgia Perimeter College

Georgia Perimeter CollegeMathematics/Engineering/Computer Science Division

TEACHING GUIDECSCI 1301 Principles of Computer Science I

Course Title:Principles of Computer Science I

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

Text: Big Java: Late Objects, Cay Horstmann, Wiley Publishing, ISBN 978-1-118-08788-6

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 equivalent).

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.
Course Content:

Overview of Computing and Programming

Chapter 1: Introduction, sections 1.1-1.4Computer systems overview

Programming languages and paradigmsProcedural programming

Object-oriented programming

Introduction to the Programming EnvironmentIntegrated development environments

Use of an IDE

Editing

Compiling/linking/executing programs

Debugging programs, use of debuggers

Problem Solving and Algorithm Development

Chapter 1: Introduction, section 1.7Chapter 2: Fundamental Data Types, section 2.4Chapter 3: Decisions, sections 3.5 3.6Chapter 5: Methods, sections 5.6-5.7Chapter 6: Arrays and Array Lists, sections 6.5-6.6Chapter 8: Objects and Classes, sections 8.8-8.9Problem Solving StrategiesDecomposition

Analogy

Problem AnalysisUnderstanding the problem

Specifying input

Describing output specifications

Algorithm RepresentationTop-down design/pseudocode

Graphical techniques

Algorithm refinements

Algorithm verificationTest data

Walk through

Program Structure and Software Engineering Concepts

Chapter 1: Introduction, section 1.5, 1.7Chapter 7: Input/Output and Exception Handling, sections 7.4-7.5Chapter 8: Objects and Classes, section 8.1Common Errors callouts in all chaptersProgram Design ConceptsTop-Down versus Bottom-Up Design

AbstractionProcedural

Data

Information hiding

User interface design

Efficiency, robustness and correctness

Common programming errors

Debugging techniques

Use of stubs and drivers

Generating test data

Data design specifications

ExceptionsHandling exceptions

Generating/throwing exceptions

Exception handlers

Basic program structure
Chapter 1: Introduction, section1.5Chapter 5: Methods, sections 5.1-5.2Appendix L: Java Language Coding GuidelinesStyleIndentation

Capitalization and naming conventions

Documentation and comments

Basic class and method structure

Importing predefined code libraries

Simple Data Types

Chapter 2: Fundamental Data Types, sections 2.1-2.3, 2.5Chapter 3: Decisions, sections 3.2, 3.7Chapter 7: Input/Output and Exception Handling, sections 7.1-7.2Chapter 8: Objects and Classes, sections 8.10-8.11Primitive data typesInteger types byte, short, int, long

Float types float, double

Character types -- char

Boolean type bool

The String class

Final, static, and non-static values

Primitive and reference variable definitions

Object instantiation using new

Operations and expressionsArithmetic, arithmetic-assignment, and auto increment/decrement operators

Relational operators and methods

Logical operators

String operators and methods

Order of Precedence

Type casting

Input and Output

Chapter 2: Fundamental Data Types, section 2.3, 2.5Chapter 7: Input/Output and Exception Handling, sections 7.1-7.3Console inputScanner class

Input methods for primitive values

Input methods for strings and lines

Screen outputSystem.out object

Basic output methods

Escape characters

Formatted outputprintf() method

String.format() method

DecimalFormat and related objects

File input/outputScanner and BufferedReader/FileReader classes for input

PrintWriter and FileWriter classes for output

Dialog boxes for input/outputJOptionPane class

Input dialog boxes

Message dialog boxes

System.exit method

Control Structures

Chapter 3: Decisions, sections 3.1-3.4, 3.8Chapter 4: Loops, sections 4.1-4.5, 4.7-4.9Sequential statements

Selection statementsIf and if-else statements

Switch statement

Repetition statementsFor statement

While statement

Do-while statement

Nesting control structures

Break and continue statements

Modular Programming

Chapter 5: Methods, sections 5.1-5.5, 5.8Chapter 8: Objects and Classes, sections 8.1-8.7, 8.10-8.11

Predefined methods and packages

User-defined methodsStructure

Calls

Return types

Parameters and arguments

Method overloading

Call by reference versus call by value

Static versus non-static methods

Method overloading

Classes and Abstract/Structured Data Types

Chapter 2: Fundamental Data Types, section 2.5Chapter 8: Objects and Classes, sections 8.1-8.11Chapter 9: Inheritance, sections 9.1-9.6Chapter 10: Graphical User Interfaces, sections 10.1-10.3Abstract Data TypesBasic concepts

Relationship to classes

Predefined packages/classesString class

Input/output classes

GUI classes

Character & numeric wrapper classes

User-defined classesStructure

Data membersStatic variables

Non-static variables

Data member access

Constructor methodsDefault

Explicit-value

Copy

Built-in operations

Accessor methods

Mutator methods

Finalizers

Class scope

Inner classes

Package creation

The reference variable this

Inheritancethe Object class

Polymorphism

Abstract classes & methods

Interfaces

Arrays and Structured Data TypesChapter 6: Arrays and Array Lists, sections 6.1-6.8Note: instructor will need to provide supplemental material for String methods and tokenization as well as enum types.ArraysBasic structureArrays containing primitive values

Arrays containing objectsStrings

Other objects

Array definitionSize specification

Type specification

The length variable

Array processingRandom elements

Element-by-element

The enhanced for loop

Arrays as parameters to methods

Parallel arrays

Common array errors

Variable length parameter lists

Two-dimensional arrays

Multi-dimensional arrays

The String classString manipulation methods

String tokenization

Enum typesDefinition

Usage

Evaluation Methods

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%.

Effective Date: August, 2012Approved Date: June 2012