Course Package Form 2018 Outline
Mohave Community College
CSC 210 Computer Science II


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