Course Package Form 2018 Outline
Mohave Community College
CSC 110 Computer Science I


Originator: Butcher, Matt           Status: Approved           Department: CSC Computer Science
Date Created: 10/20/2016         Submitted: 10/20/2016         Completed: 12/27/2016        
Effective Semester: Fall  
Catalog Year: 2017-18  
Course Prefix: CSC  
Course Number: 110  
Course Full Title: Computer Science I  
Old course information:  
Reason for Evaluation: Prerequisite Change   Goals, Competencies and/or Objectives Change    
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): MAT 151 and CIS 120  
Corequisite(s): None  
Catalog Course Description: This course immerses students in object oriented programming using the Java programming language. Topics include a review of structural programming concepts and array manipulation, as well as a strong emphasis on object oriented concepts. Object oriented topics include an in depth look at classes, objects, methods, and documentation with UML. Exception handling, file IO, and Graphical User Interfaces will be covered as well as an exploration into big O notation for examining the efficiency of algorithms.  
Course Learning Outcomes: 1. Develop effective and reusable software solutions using the Java Programming Language. (3,6)

2. Author robust software documentation describing technical requirements and ethical implications of common object-oriented programming strategies. (2,4,6)

3. Construct efficient algorithms to aid in memory conservation and program elegance though the use of a variety of selection, looping, and data/file storage techniques. (3,5,6)

4. Assemble appropriate exception handling techniques including the use of try catch blocks to strengthen overall program design. (3,6)

5. Create meaningful Graphic User Interfaces by utilizing Java Swing components and event driven programming techniques. (2,3,6)

 
Course Competencies: Competency 1: Examine a need for software development in Java.
Objective 1.1 Document an effective algorithm with UML and program design using the Java line and block commenting.
Objective 1.2 Design appropriate command line or GUI interfaces to accommodate usability.
Objective 1.3 Debug any syntax, logic, or semantic errors while testing algorithm and program design thoroughly.

Competency 2: Implement program flow using common object oriented programming techniques.
Objective 2.1 Utilize conditional if/else and switch case logical structures.
Objective 2.2 Utilize repetitive processing structures including for, while, and do while loops.
Objective 2.3 Leverage advanced algorithmic design including nested and compound conditional and nested looping statements.
Objective 2.4 Summarize big O notation in analyzing the speed of conditional and looping structures.

Competency 3: Compile interactive java classes adhering to object oriented program design.
Objective 3.1 Utilize Java packages and fundamental classes in program creation.
Objective 3.2 Develop user-defined classes with data fields, methods, and constructors.
Objective 3.3 Implement inheritance, polymorphism, and public/private access modifiers in creation of Java classes.

Competency 4: Design reusable methods in Java software solutions.
Objective 4.1 Control access to methods by the appropriate use of the modifiers public, private, static and final.
Objective 4.2 Utilize parameter passing including primate data types and objects in methods construction.
Objective 4.3 Apply overloading/overriding and recursive design in method construction.

Competency 5: Construct java programs that include user defined objects.
Objective 5.1 Instantiate objects of built in classes and user defined classes.
Objective 5.2 Control access to objects by the appropriate use of the modifiers public, private, static and final.
Objective 5.3 Utilize an object's methods, data fields, and constructors in programming a Java solution.

Competency 6: Design data structures within software solutions.
Objective 6.1 Initialize one dimensional, two dimensional and parallel arrays.
Objective 6.2 Construct object arrays to further refine memory usage.
Objective 6.3 Utilize techniques of array element insertion and deletion.
Objective 6.4 Summarize sorting and searching algorithms to list data within arrays.

Competency 7: Plan Character and String data usage effectively in java programs.
Objective 7.1 Utilize String and Character object and methods effectively.
Objective 7.2 Use StringBuilder and StringBuffer classes to further enhance use of alpha-numeric data.

Competency 8: Create exception handling strategies to create more robust programming solutions.
Objective 8.1 Utilize different types of exceptions in Java.
Objective 8.2 Implement try and catch blocks to handle different types of exceptions.
Objective 8.3 Document the advantages of exception handling by tracing exceptions through the stack call.
Objective 8.4 Interpret the usage of user-defined exceptions.

Competency 9: Create File Input and Output functionality.
Objective 9.1 Apply file stream concepts to Java software solutions.
Objective 9.2 Use Java's IO classes to read from and write to a file.
Objective 9.3 Explain sequential and random access files in Java programs.

Competency 10: Develop GUI applications with the Java programming language.
Objective 10.1 Utilize Java swing components.
Objective 10.2 Employ event-driven programming techniques in graphical Java programs.
Objective 10.3 Utilize Java Swing event listener objects and methods to handle events.
Objective 10.4 Identify aesthetic elements in Graphic User Interfaces.