CSC116 - Schmidt Final Exam Learning Objectives
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
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 Morgan’s 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
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.
2022-04-28