Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CSC116 - Schmidt

Final Exam Learning Objectives

UNIX Commands

Lecture Materials (../lecturesByTopic/UNIX_commands)

i Use basic UNIX commands from the terminal.

Problems, Algorithms, Programs

Lecture Materials (../lecturesByTopic/Problems_Algorithms_Programs)

i Describe challenges that exist when interacting with a computer.

i Explain the following tasks: understanding the problem, designing an algorithm, writing a program.

i Describe the problem that exists for a given scenario/description.

i Document an algorithm using pseudocode for a given problem.

Write-Compile-Execute

Lecture Materials (../lecturesByTopic/Write-Compile-Execute)

i Explain the following steps when programming: write, compile, execute.

Structure of Java

Lecture Materials (../lecturesByTopic/Structure_of_Java)

i Describe the structure of a Java program and how the following entities relate to each other: classes, methods, statements.

i Create a Java program for a given algorithm.

i Explain the importance of documenting and commenting code.

i Describe the importance of the  main method.

Scanner (ints)

Lecture Materials (../lecturesByTopic/Scanner_ints)

i Construct new Scanner object for console input.

i Write code that uses Scanner  nextInt method.

i Trace code containing Scanner  nextInt method.

i Write code to read user input from the console.

Program Errors

Lecture Materials (../lecturesByTopic/Errors)

i Identify program errors as syntax/compiler errors, logic errors, or runtime errors.

Debugging

Lecture Materials (../lecturesByTopic/Debugging)

i Debug a program to remove syntax errors, runtime errors, and/or logic errors.

Data Types (int, double)

Lecture Materials (../lecturesByTopic/Data_Types)

i Explain what data types are.

i Describe the integer and double data types in Java.

Expressions

Lecture Materials (../lecturesByTopic/Expressions)

i Evaluate expressions containing ints, doubles, or mixed types addition, subtraction, multiplication, division, and modulo operators.

i Explain how promotion works in Java.

i Explain how casting works in Java.

i Write code containing primitive data types.

Variables

Lecture Materials (../lecturesByTopic/Variables)

i Declare, initialize/assign value to, and use variables in code.

i Design algorithms that use variables.

i Trace values of variables through algorithm or a segment of code.

i Write Java programs that use variables.

Formatting Text with printf

Lecture Materials (../lecturesByTopic/printf)

i Write code that used the  System.out.printf to output a formatted string.

Constants and Class Constants

Lecture Materials (../lecturesByTopic/Constants)

i Describe when constants should be used in code.

i Write code that properly uses constants.

Math class

Lecture Materials (../lecturesByTopic/Math)

i Define basic methods for Math class ( abs ,  min ,  max ,  pow ,  sqrt ).

i Trace code that uses Math class methods.

i Trace code that uses Math class constants.

i Write code that uses Math class methods.

i Write code that uses Math class constants.

Random Numbers

Lecture Materials (../lecturesByTopic/Random)

i Write and trace code that uses random numbers ( Random ).

Why Test?

Lecture Materials (../lecturesByTopic/Why_Test)

i Describe the purpose of testing.

i Describe the testing process.

i Describe how system and unit/integration testing differ and why each is necessary.

System Testing

Lecture Materials (../lecturesByTopic/System_Testing)

i Describe the purpose of system testing.

i Write system test cases based on program requirements.

i Write system test cases using equivalence classes.

i Write system test cases using boundary value analysis.

Pair Programming

Lecture Materials (../lecturesByTopic/Pair_Programming)

i Describe concept of pair programming.

Equality, Relational, and Logical Operators

Lecture Materials (../lecturesByTopic/Equality_Relational_Logical_Operators)

i Evaluate expressions containing equality operators.

i Evaluate expressions containing relational operators.

i Evaluate expressions containing logical operators.

i Write code containing equality operators.

i Write code containing relational operators.

i Write code containing logical operators.

i Negate boolean expressions using De Morgans Law.

boolean Data Type

Lecture Materials (../lecturesByTopic/Boolean)

i Evaluate boolean expressions, including short-circuit evaluations.

Conditionals

Lecture Materials (../lecturesByTopic/Conditionals)

i Trace conditional (e.g., if or if-else) statements and provide output.

i Write conditional (e.g., if or if-else) statements to perform an operation or produce specified output.

i Distinguish between when to use each conditional structure.

Switch Statements

Lecture Materials (../lecturesByTopic/Switch)

i Trace switch statements and provide output.

i Write switch statements to perform an operation or produce specified output.

Conditional Expressions (Ternary Operator)

Lecture Materials (../lecturesByTopic/Conditional_Expressions)

i Trace conditional expression (Ternary Operator) and provide output.

i Write conditional expression (Ternary Operator) to perform an operation or produce specified output.

Strings

Lecture Materials (../lecturesByTopic/Strings)

i Construct new  String objects.

i Write code that uses  String methods.

i Trace code containing  String methods.

Character Operations from Character Class

Lecture Materials (../lecturesByTopic/Character_Class)

i Trace code that uses  Character class methods.

i Write code that uses  Character class methods.

Scanner with Strings

Lecture Materials (../lecturesByTopic/Scanner_String)

i Construct new Scanner object for console input.

i Write code that uses Scanner  next and  nextLine methods.

i Trace code containing Scanner  next and  nextLine methods.

i Write code to read user input from the console.

System Testing for Conditionals

Lecture Materials (../lecturesByTopic/System_Testing_Conditionals)

i Write system test cases based on program requirements.

i Write system test cases using equivalence classes.

i Write system test cases using boundary value analysis.

Static Methods: Parameters and Return Values

Lecture Materials (../lecturesByTopic/Methods)

i State the syntax of a static method.

i Write a static method.

i Explain what parameters are and why using them.

i Define and write method header with parameters.

i Trace a method with parameter(s) to determine the output.

i Write a method with parameter(s) for a given programming problem.

i Describe what return values are.

i Define and write method header with return type.

i Trace a method with a return value.

i Write a method with a return value.

Passing Parameters

Lecture Materials (../lecturesByTopic/Passing_Parameters)

i Describe how parameters are passed to methods based on their types.

Flow of Control

Lecture Materials (../lecturesByTopic/Flow_of_Control)

i Describe the order in which statements in a Java program are executed.

i Describe why flow of control is important.

i Trace code with an understanding of flow of control.

Method Overloading

Lecture Materials (../lecturesByTopic/Method_Overloading)

i Explain method overloading and apply it in writing methods with parameters.

Verify Parameter Values

Lecture Materials (../lecturesByTopic/Verify_Parameter_Values)

i Write code that throws exception with throw statement.

Returning Within a Conditional

Lecture Materials (../lecturesByTopic/Return_Within_Conditional)

i Write code that returns within a conditional.

i Trace code that contains multiple return statements.

Scanner as Parameter

Lecture Materials (../lecturesByTopic/Scanner_as_Parameter)

i Write code that contains a  Scanner as a parameter.

Unit and Integration Testing

Lecture Materials (../lecturesByTopic/Unit_Integration_Testing)

i Describe the purpose of unit and integration testing.

i Write unit test cases in the form of a test class.

i Draw a control flow diagram for given code.

i Calculate the cyclomatic complexity of given code.

i List valid path through given code using control flow diagram.

i Write unit test cases using basis paths, equivalence classes, and boundary value analysis.

while Loop

Lecture Materials (../lecturesByTopic/while_loop)

i Trace a while loop and provide output along with number of times loop body executes. i Write a while loop to perform an operation or produce specified output.

do-while Loop

Lecture Materials (../lecturesByTopic/do-while_loop)

i Trace a  do-while loop and provide output along with number of times loop body executes. i Write a  do-while loop to perform an operation or produce specified output.

Scanner hasNext Methods

Lecture Materials (../lecturesByTopic/Scanner_hasNext_Methods)

i Write robust code that checks user input using Scanner  hasNext methods.

Enumerations

Lecture Materials (../lecturesByTopic/Enumeration)

i Write code that uses enumeration.

Assertions

Lecture Materials (../lecturesByTopic/Assertions)

i Identify the various assertions in code as being either always true, never true, or sometimes true/sometimes false at various points in program execution.

For Loop

Lecture Materials (../lecturesByTopic/for_loop)

i Explain the benefit of using a for loop.

i Describe the structure of for loop and flow of control.

i Trace a for loop and provide output.

i Write a for loop to perform an operation or produce specified output.

Nested Loops

Lecture Materials (../lecturesByTopic/Nested_Loops)

i Trace nested loops and provide output.

i Write nested loops to perform an operation or produce specified output.

break and continue Statements

Lecture Materials (../lecturesByTopic/break_and_continue)

i Write code that uses  break statement.

i Write code that uses  continue statement.

Scope

Lecture Materials (../lecturesByTopic/Scope)

i Identify the scope of a variable.

Testing Loops

Lecture Materials (../lecturesByTopic/Testing_Loops)

i Write system test cases based on program requirements.

i Write system test cases using equivalence classes.

i Write system test cases using boundary value analysis.

i Write unit test cases in the form of a test class.

i Draw a control flow diagram for given code.

i Calculate the cyclomatic complexity of given code.

i List valid path through given code using control flow diagram.

i Write unit test cases using basis paths, equivalence classes, and boundary value analysis.

Array Basics

Lecture Materials (../lecturesByTopic/Array_Basics)

i Describe the benefits of using arrays.

i Initialize and construct an array of primitive types.

i Trace code for accessing elements of an array.

i Write code for accessing elements of an array.

i Trace code for traversing an array.

i Write code for traversing an array without throwing an ArrayIndexOutOfBoundsException .

Parallel Arrays

Lecture Materials (../lecturesByTopic/Parallel_Arrays)

i Trace code for parallel arrays.

i Write code for parallel arrays.

Arrays Class

Lecture Materials (../lecturesByTopic/Arrays_Class)

i Write code using Arrays class.

i Trace code using Arrays class.

Array Parameters

Lecture Materials (../lecturesByTopic/Array_Parameters)

i Understand basics of passing an array as a parameter.

Modifying Arrays

Lecture Materials (../lecturesByTopic/Modifying_Array)

i Understand basics of modifying arrays.

i Trace code that modifies arrays.

i Write code that modifies arrays.

Returning Arrays

Lecture Materials (../lecturesByTopic/Returning_Arrays)

i Trace code with methods that return arrays.

i Write code with methods that return arrays.

Array Sizes

Lecture Materials (../lecturesByTopic/Array_Sizes)

i Trace code with perfect size arrays.

i Write code with perfect size arrays.

i Trace code with oversize arrays.

i Write code with oversize arrays.

for-each Loop

Lecture Materials (../lecturesByTopic/for_each_Loop)

i Trace a for-each loop and provide output.

i Write a for-each loop to perform an operation or produce specified output.

i Describe limitations of for-each loop.

Multi-dimensional Arrays

Lecture Materials (../lecturesByTopic/Multi-dimensional_Arrays)

i Trace code for multi-dimensional arrays.

i Write code for multi-dimensional arrays.

Array of Objects

Lecture Materials (../lecturesByTopic/Array_of_Objects)

i Initialize and construct an array of objects.

i Trace code using array of objects.

i Write code using array of objects.

i Write code using command line arguments.

Testing Arrays

Lecture Materials (../lecturesByTopic/Testing_Arrays)

i Write system test cases based on program requirements.

i Write system test cases using equivalence classes.

i Write system test cases using boundary value analysis.

i Write unit test cases in the form of a test class.

i Write unit test cases using basis paths, equivalence classes, and boundary value analysis. i Write unity test cases for arrays

File Input (Token-Based Processing)

Lecture Materials (../lecturesByTopic/File_Input)

i Trace code that uses a  Scanner to read from a file.

i Write code that uses a  Scanner to read from a file.

i Trace code for file input to perform an operation using token-based processing. i Write code for file input to perform an operation using token-based processing.

try/catch with Exceptions

Lecture Materials (../lecturesByTopic/try-catch)

i Describe when a try/catch block is needed.

i Trace code that using try/catch block.

i Write code that using try/catch block.

File Input (Line-Based Processing)

Lecture Materials (../lecturesByTopic/File_Input_Line-Based)

i Trace code that uses a  Scanner to read from a file.

i Write code that uses a  Scanner to read from a file.

i Trace code for file input to perform an operation using line-based processing. i Write code for file input to perform an operation using line-based processing. i Describe the difference between token-based and line-based processing.

File Output

Lecture Materials (../lecturesByTopic/File_Output)

i Trace code for file output.

i Write code for file output.

Testing File Input and Output

Lecture Materials (../lecturesByTopic/Testing_File_IO)

i Write system test cases based on program requirements.

i Write system test cases using equivalence classes.

i Write system test cases using boundary value analysis.

i Write unit test cases in the form of a test class.

i Write unit test cases using basis paths, equivalence classes, and boundary value analysis. 

Object Basics

Lecture Materials (../lecturesByTopic/Objects)

i Describe the difference between a class and an object.

i Describe the difference between procedural decomposition and object-oriented programming.

Instance Methods and Fields

Lecture Materials (../lecturesByTopic/Instance_Methods_and_Fields)

i Write code declaring fields (instance variables) in a class that defines a new data type. i Write code containing instance methods in a class that defines a new data type.          i Describe the use of implicit parameter.

i Write code containing implicit parameter.

i Write code for an encapsulated object type.

i Write tests for an object type.

Example: Book Object (Instance Methods and Fields)                                           Lecture Materials (../lecturesByTopic/EXAMPLE_Instance_Methods_and_Fields)

i Write code declaring fields (instance variables) in a class that defines a new data type. i Write code containing instance methods in a class that defines a new data type.          i Describe the use of implicit parameter.

i Write code containing implicit parameter.

i Write code for an encapsulated object type.

i Write tests for an object type.

Constructors

Lecture Materials (../lecturesByTopic/Constructors)

i Write constructors for new data types.

Static Fields and Methods

Lecture Materials (../lecturesByTopic/Static_Fields_and_Methods)

i Write object with static field.

i Write object with static method.

Object Methods

Lecture Materials (../lecturesByTopic/Object_Methods)

i Write toString method for an object.

i Write  equals method for an object.

Interacting Classes and Object-Oriented Design

Lecture Materials (../lecturesByTopic/Interacting_Classes_Object-Oriented_Design) i Describe cohesion and coupling.

i Design a simple class given description.

i Design interacting classes.

Software Process

Lecture Materials (../lecturesByTopic/Software_Process)

i Describe software process.

i Write software requirements.

i Develop a software desing.

i Write a system test plan.

i Write unit and integration test cases.

i Implement code.