|Course Number||CST 183|
|Course Description||Prerequisites: CST 180 or instructor permission. Introduces the Java programming language with applications and applets. Emphasizes Java classes and object-oriented programming concepts. Includes control structures, string handling, arrays, graphics, files, and use of graphical user interface components. Introduces exception handling, multimedia, and multithreading. Credit may be earned in only one of the following: CST 183, CIS 180 or CPS 180. (45-0)|
Outcomes and ObjectivesDemonstrate computer literacy skills to successfully use software development environments.
Analyze with client specifications and information to plan and design software solutions for a variety of problems.
- Utilize an integrated development environment to create a project workspace.
- Enter and edit Java source code using a text editor.
- Manage multiple project, data, and source code files.
- Use a compiler to check program diagnostics and correct syntax errors.
- Deliver electronic files using electronic mail or magnetic disk storage.
Apply the basic constructs and operations of the Java programming language to build working programs.
- Create a logic plan to map design of a software solution.
- Read and interpret algorithms represented in pseudocode or flowchart form.
- Interpret requirements and specifications for a software problem to initiate accurate design of a computer program.
- Construct program code to implement program design specifications.
Define and implement graphical user interfaces for Java applications and applets.
- Define the history and attributes of the Java programming language and its relationship to other programming languages.
- Define the purpose, value, and issues related to using the "Java Virtual Machine" to execute Java code.
- Describe the basic program format and structure of a java program.
- Distinguish differences between Java applets and Java applications and requirements for executing each.
- Perform basic user input/output using simple dialog boxes.
- Define the basic Java data types and variations in each data type family.
- Define issues with numerical data type conversions.
- Define Java arithmetic operator precedence.
- Build and evaluate Java arithmetic expressions.
- Define and utilize the Java boolean data type for logical operations.
- Describe Java relational operators and use them to construct logical expressions.
- Describe Java logical operators (AND, OR, NOT) including their truth tables.
- Apply Java logical operators to construct compound logical expressions.
- Build selection statements with appropriate Java if/else/switch constructs.
- Define the most appropriate use of while, do/while, and for loops.
- Build repetition statements with Java looping constructs.
- Apply Java arrays for storing a variety of data and objects.
- Effectively construct loops for array processing.
Describe and apply specialized features of the Java programming language.
- Distinguish between Java container and component classes.
- Distinguish between Java swing and abstract windowing toolkit (AWT) classes.
- Design and implement programming solutions involving Java graphical user interface classes with labels, text boxes, and buttons.
- Design and implement programming solutions involving selection graphical user interface classes including drop-down lists, check boxes, and radio buttons.
- Describe and compare various "listener" classes and methods for implementing event listeners.
- Construct correct event-handling methods for various user.
- Design graphical user interface layouts using basic layout managers.
- Design graphical user interface layouts using panels as containers for interface components as well as for dedicated drawing areas.
Students will apply object oriented concepts to create and apply Java classes user-defined classes.
- Define exception-handling as well as the basic format for the Java try-catch exception-handling construct.
- Integrate Java exception-handling routines for various likely programming exceptions including number conversion, array processing, and stream input/output.
- Implement Java random number processing for simple games and simulations.
- Define concurrent programming and identify the basic features of multithreading components available in Java.
- Implement a Java application or applet with multiple program threads.
- Display a graphic image within a Java application or applet.
- Describe classes that support graphic animation within an application or applet.
- Define basic file and stream processing classes available in Java and distinguish between classes targeting binary streams and text streams.
- Apply a file class for basic text file input and output.
- Access text information from a web site using Java stream and URL classes.
- Distinguish between the available of Java string and string manipulation classes.
- Select and apply the appropriate string class methods for character string processing problems.
- Define and apply Java graphics objects including lines, shapes, color, and font management.
Perform critical analysis to solve problems, design algorithms, and implement Java software solutions.
- Decompose problems into the interaction of a collection of objects.
- Recognize specific terminology related to object-oriented programming.
- Design an abstract data type from specifications.
- Utilize standard Java language classes and methods in applications and applets.
- Build classes for objects including the correct variables and methods.
- Define "set" and "get" methods necessary for a class to protect private data members.
- Define and implement class constructors for user-defined classes.
- Implement user-defined methods with appropriate parameter passing.
- Define class inheritance and the behavior of the sub-class and super-class defined using inheritance.
- Define class variables and distinguish between public, protected, and private member designation.
- Distinguish and apply method overriding and method overloading.
- Apply Java class inheritance of standard classes as well as for user-defined classes for practical program solutions.
- Define and utilize static classes and class members.
- Define and apply abstract classes for polymorphic class relationships.
- Define and implement Java class interfaces.
- Describe and utilize inner classes to define event listener actions.a. q.Apply specific data type utilities available in Java wrapper classes.
- Analyze alternative solutions to a given programming problem and select the best approach.
- Develop and implement a variety of testing strategies to verify correctness of Java programs.
- Diagnose and debug syntax, run-time, linker, and logic errors to create a working and correct software solution.
- Document program source code for clarity and readability using accepted documentation standards including comments, indentation, and other techniques.
- Apply the JavaDoc feature to create web-based Java documentation.
- Integrate and re-use previously working program code into new software development.
- Effectively create and import Java packages for storing and reusing classes.
- Develop systematic test plans, create test cases and test data to verify program correctness.
- Execute tests and correct logic errors based on test results.
- Locate on-line resources for the Java programming language.
- Build user-friendly computer programs for a variety of real-world problems.