Originator: | Butcher, Matt Status: Approved Department: CSC Computer Science |
Date Created: | 10/19/2017 Submitted: 11/16/2017 Completed: 12/04/2017 |
Effective Semester: | Fall |
Catalog Year: | 2018-19 |
Course Prefix: | CSC |
Course Number: | 210 |
Course Full Title: | Computer Science II |
Old course information: | |
Reason for Evaluation: | Prerequisite Change CSLO, Competencies, and/or Outline Changes |
Current Credit: | 4.0 |
Lecture Hours: | 3.0 |
Lab Hours: | 2.0 |
Clinical Hours: | |
New Credit Hours: | |
Lecture Hours: | |
If the credit hour change box has been marked, please provide the new credit hour: | |
New Lecture Hours: | |
New Lab Hours: | |
New Clinical Hours: | |
New Internship Hours: | |
New Externship Hours: | |
SUN Course?: | No |
AGEC Course?: | No |
Articulated?: | Yes |
Transfer: | ASU NAU UA |
Prerequisite(s): | CSC 110, MAT 151 with a C or better |
Corequisite(s): | |
Catalog Course Description: | This course uses the Java programming language to build on concepts covered in Computer Science I. Course work will emphasize advanced object-oriented techniques, in-depth analysis of algorithm design, data structures, and program design.
|
Course Learning Outcomes: | 1. Utilize Object-Oriented Software Development strategies. (3,4,6)
2. Develop sophisticated console and GUI applications featuring Object Oriented Programming concepts. (1,3,6) 3. Interpret O-notation and recursive functionality to maximize sorting and searching algorithm design and application efficiency. (3,6) 4. Create robust applications by evaluating potential run-time errors and employing thorough exception handling strategies. (3,6) |
Course Competencies: | Competency 1 Debate relevant issues in software development.
Competency 2 Employ Object Oriented concepts in console and GUI applications. Competency 3 Implement elegant data structure design in software development. Competency 4 Interpret O-notation to confirm efficiency of algorithms and applications. Competency 5 Develop recursive methods to enhance algorithm efficiency. Competency 6 Utilize sorting and searching algorithms and techniques in a variety of data structures. Competency 7 Implement File Input/Output functionality in program design. Competency 8 Utilize exception handling to address bad input, memory allocation, and File IO errors. |
Course Outline: | I. Object-Oriented Software Development
A. Ethics in Software Development B. Software Development Life Cycle C. Software Design Strategies D. Object-Oriented implementation i. Multiple classes ii. Instantiate objects iii. Pre-created and programmer-defined methods iv. Abstract data types v. Interfaces vi. Inheritance in class design vii. Polymorphism in class design viii. Recursion III. Data structures A. Arrays B. Two-dimensional Arrays C. Vectors D. Arraylists F. Linked lists IV. Algorithm Design A. Algorithm efficiency i. O-notation ii. Garbage collection iii. Binary Trees iv. Stack and Queue B. Searching and Sorting algorithms i. Bubble sort ii. Insertion sort iii. Tree sort iv. Linear search v. Binary search vi. Sublist search V. Exception Handling A. Types of exceptions B. Try-Catch structure C. Programmer-defined exceptions D. Avoiding exceptions VI. File Input/Output A. Ethics in File IO B. File streams C. File security i.File types ii. File serialization |