Instructions for completing Form #3 are in Section II

advertisement
Form #3A – Course Outline
Instructions for completing Form #3A are in Section II.A.4 in the EPC Manual
ARNOLD, MARYLAND
Course Information:
Course Name:
Computer Science 1
Course Number:
CSI 163
Credit Hours:
4
Initiator:
Trish Gregory, Krysten Hall
School:
Technologies Division
Department:
Computer Technologies
Date:
March, 2014
Catalog Description:
CSI 163
Computer Science 1
4 credit hours – three hours of lecture and two hours laboratory weekly; one term
Use fundamental design principles and problem-solving techniques introduced in CSI 117 to develop computer algorithms. Implement algorithms as
programs coded in Java, an object-oriented programming language. Learn the data types, control structures, classes, arrays, and I/O in the Java
programming language. Learn graphical user interfaces, inheritance, polymorphism, recursion, and exceptions. Emphasize style, documentation, solution
robustness, and conformance with specifications throughout course work. Lab fee $25.
Prerequisite: CSI 117 or permission of Computer Technologies Director or Computer Science Coordinator.
Note: CSI 117 prerequisite is waived for students that complete AP Computer Science. Credit is not given for both CSI 161 and CSI 163 and CSI 162
and CSI 163.
Division Of Subject Matter:
Lecture
Hours
Main Topics
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
11.0
12.0
13.0
14.0
15.0
Overview of Programming Languages
Software Tools and Environments
Fundamental Programming Constructs
Algorithms and Problem Solving
Fundamental Data Structures
Declarations and Data Types
Object-Oriented Design
Object-Oriented Concepts
Subclasses and Inheritance
Polymorphism
Input and Output
Exceptions and Exception-handling
Software Validation
Professional and Ethical Responsibilities
Graphical User Interfaces
Testing
Total
EPC Form 3 – Revised 7/13
Lab
Hours
1
1
3
3
4
2
4
6
6
2
2
4
1
1
1
4
0
0
3
4
3
0
0
6
4
2
3
3
0
0
2
45
30
Detailed Course Outline
Main Topic
Lecture
Hours
Lab
Hours
1.0 Overview of Programming Languages
1.1. History of programming languages
1.2. Brief survey of programming languages
1.2.1. Procedural languages
1.2.2. Object-oriented languages
1.2.3. The effects of scale on programming methodology
2.0 Software Tools and Environments
2.1.1. Integrated Development Environments (IDEs)
2.1.2. Unified modeling language (UML) tools
3.0 Fundamental Programming Constructs
3.1. Basic syntax and semantics of a higher-level language
3.2. Variables, types, expressions, and assignment
3.3. Conditional and iterative control structures
3.4. Functions and parameter passing
4.0 Algorithms and Problem Solving
4.1. The role of algorithms in the problem-solving process
4.2. Formulating precise specifications for a problem and its solution
4.3. Modular design of problem solutions
4.4. Preconditions and post-conditions
4.5. Debugging strategies
4.6. Recursion
5.0 Fundamental Data Structures
5.1. Primitive types
5.2. Reference types
5.3. Strings and string processing
5.4. Arrays and array processing
5.4.1. One Dimensional Arrays
5.4.2. Two Dimensional Arrays
5.5. Data representation in memory
1
0
1
0
3
3
3
4
4
3
6.0 Declarations and Data Types
6.1. The concept of types as a set of values together with a set of operations
6.2. Declaration models (scope, static and non-static data)
6.3. Overview of type checking
6.4. Garbage collection
7.0 Object-Oriented Design
7.1. Model-view-control design pattern
7.2. Collaboration among classes
7.3. Relationships (Is-a, has-a)
7.4. Class hierarchies
7.5. UML (Unified Modeling Language)
7.6. Class diagrams
7.7. Activity diagrams
8.0 Object-Oriented Concepts
8.1. Classes
8.1.1. Built-in Classes
8.1.2. User-defined Classes
8.2. Encapsulation and information hiding
8.3. Identity, state and behavior
9.0 Subclasses and Inheritance
2
0
4
0
6
6
6
4
EPC Form 3 – Revised 7/13
9.1. Basic concepts and utility
9.2. Derived classes
9.2.1. Method overriding
9.2.2. Constructors
9.2.3. UML modeling
9.3. Interfaces
9.4. Software installation and setup procedures
10.0 Polymorphism
10.1. Dynamic binding
10.2. Abstract classes
10.3. Type checking and dynamic binding
11.0 Input and Output
11.1. Streams and Files
11.2. Console I/O
11.3. Text file I/O
11.4. Binary file I/O
11.5. Object I/O with object streams
11.6. Introduction to Database I/O
12.0 Exceptions and Exception-handling
12.1. Exception classes
12.2. Predefined exception classes
12.3. Throwing, catching and handling exceptions
12.4. Design considerations for exception handling
13.0 Software Validation
13.1. Designing the Plans
13.1.1.
Use case modeling as a test plan
13.2. Black-box and white-box testing techniques
13.3. Unit, integration, validation and system testing
14.0 Professional and Ethical Responsibilities
14.1. Acceptable use policies for computing in the workplace
14.2. Codes of ethics, conduct, and practice (IEEE, ACM, etc)
15.0 Graphical User Interfaces
15.1. Windows
15.2. Frames
15.3. Buttons and ActionListeners
15.4. Labels and TextFields
Testing
Total
Textbooks
Title
Starting out with Java, From
Control Structures through Data
Structures
References (Optional)
EPC Form 3 – Revised 7/13
Author
Gaddis
Publisher
Addison-Wesley
2
2
2
3
4
3
1
0
1
0
1
2
4
45
30
ISBN
0-321-54586-9
EPC Form 3 – Revised 7/13
Download