SE1011 Outcomes:

Writing Computer Software

  1. Describe the steps involved in creating and running a Java program
  2. Describe the contents of source (.java) and class (.class) files
  3. Explain what happens (at a high level) when a Java program is compiled
  4. Explain what happens (at a high level) when a Java program is run
  5. Describe the difference between compilation and execution errors
  6. Explain why a Java Virtual Machine (JVM) is required in order to run a Java program
  7. Describe how bytecode makes Java programs portable
  8. List the basic steps involved in software development

Algorithms and Design

  1. Define the term algorithm
  2. Explain the motivation for doing design before coding
  3. Make use of variables and operations to perform calculations
  4. Construct and interpret flowcharts representing sequential, conditional, and looping structures
  5. Construct and interpret pseudocode representing sequential, conditional, and looping structures
  6. Use flowcharts and pseudocode to describe algorithmic solutions to simple problems

Primitive datatypes, Variables, Identifiers

  1. List the primitive types supported in Java: int, long, float, double, and char
  2. Select the most appropriate primitive type to store a given piece of data
  3. Use the assignment and compound assignment statements
  4. Describe what happens in memory when a primitive variable is declared
  5. Describe what happens in memory when an object identifier (reference) is declared
  6. Describe the differences between primitives and objects (reference variables)
  7. Demonstrate how an instance of a class is created (new operator)

Java Programming Basics

  1. Recognize code documentation in source code
  2. Demonstrate at least two forms of syntax for adding comments to source code
  3. Replace hard coded constants with named constants

Standard Java Classes

  1. Demonstrate the use of JOptionPane.showMessageDialog
  2. Demonstrate the use of JOptionPane.showInputDialog
  3. Demonstrate the use of String.substring
  4. Demonstrate the use of String.length
  5. Use Sun's Java documentation to ascertain if a method is part of a given class

Standard input/output

  1. Use wrapper classes to perform type conversion, e.g., int num = Integer.parseInt("14");
  2. Explain the source of data associated with the system input buffer: System.in
  3. Perform standard/console input using the Scanner class
  4. Explain the destination for data sent to the system output buffer: System.out
  5. Perform standard/console output using the System.out.println method

Arithmetic expressions and assignments

  1. Design and write code that implements an arithmetic formula, using methods from the Java Math class.
  2. Explain the order of precedence in which arithmetic operations (+,/,-,*, %) in an expression are evaluated.
  3. Use parentheses to affect the order in which arithmetic expressions are evaluated.
  4. Use the typecast operation (for example: (int) ) to assign a floating-point value to an integer variable.
  5. Explain the consequences of typecasting a floating-point value to an integer (ie: truncation)
  6. Explain integer division (e.g. why 1/3 results in 0, or 5/2 results in 2)
  7. Use the increment (++) and decrement (--) operators.
  8. Use the Scanner class methods such as nextDouble() and nextInt() to convert string input to numeric values.
  9. Use the Double.parseDouble() and Integer.parseInt() methods to convert Strings to numeric values.

Booleans and conditional logic

  1. Explain the boolean datatype and what values a boolean variable may represent.
  2. Design and write boolean conditional expressions using the relational operators (<, <=, >, >=, !=, ==)
  3. Design and write compound conditional expressions using the boolean operators (&& and ||)
  4. Evaluate complex boolean expressions, such as !( ((x>0) && (x<2)) || (y<0) )
  5. Design and write code that uses if, else-if and else statements to alter a program's sequence of execution.
  6. Design and write code that uses the switch statement to alter program flow.
  7. Rewrite an if/else-if/else as a switch statement, and vice versa.
  8. Diagram (e.g., flowchart style) how a if/else-if/else changes program flow.

Looping and iteration

  1. Design and write code that makes use of the while or do-while loop construct.
  2. Use boolean variables and conditional expressions in a while or do-while loop to repeat prompts for user input until valid input is entered.
  3. Design and write code that makes use of the for-loop construct.
  4. Rewrite a given while loop as a for loop, and vice versa.
  5. Diagram (e.g., flowchart style) how a while loop changes program flow, introducing a "loop" in the sequence of statements.
  6. Use break to terminate a loop early
  7. Use continue to repeat a loop early
  8. Write loops that repeat certain operations (summing, evaluating, printing) during each iteration of the loop.
  9. Explain the scope of a variable declared within a loop construct.
  10. Explain the scope of a variable declared within braces.

Using other classes; calling methods

  1. Design and write code that makes use of the methods of classes from tha Java API library (or external libraries), such as JOptionPane, Math and String, based on reading and interpreting available documentation for such methods.
  2. Pass values or variables of the appropriate datatype as arguments to library methods that have parameters.
  3. Use a variable of the correct datatype to receive the return value of library methods that return values.
  4. Explain the concept of the void keyword with respect to a method whose return type is void.
  5. Explain the difference between calling a static method of a class (ie class method) and a non-static (ie instance method) of a class.

UML

  1. Correctly annotate and interpret fields (name and type) on a class diagram
  2. Correctly annotate and interpret methods (with arguments and return type) on a class diagram
  3. Generating class diagram from a verbal description of a class
  4. Interpret UML sequence diagrams
  5. Use visibility modifiers to denote the visibility of a field or method
  6. Read and understand UML class diagrams.
  7. Write the method signatures for methods specified in a UML class diagram

Object-oriented programming

  1. Explain what an object is and how it relates to a class.
  2. Explain the concept of static (ie class) attributes vs. non-static (ie instance) attributes.
  3. Explain what happens to an object in memory when a variable used to reference that object is reassigned or set to null.
  4. Explain the concept of a class constructor.
  5. Explain the concept of a default constructor and how & when it is automatically created.

Class creation basics

  1. Explain what is represented by a variable used to refer to an object (e.g. Account a = new Account() - what does a actually contain?)
  2. Explain the difference between an object's attributes (data) and data (variables) that are local to a method, and explain how to distinguish between those pieces of data when both have the same name.
  3. Explain the concept of this.
  4. Define and use value-returning and void methods
  5. Properly use visibility modifiers in defining methods and fields
  6. Define and use class constants
  7. Understand and apply accessor and mutator methods
  8. Distinguish between instance variables and local variables
  9. Explain what makes a predicate/boolean method unique
  10. Define and use class methods and instance variables (attributes/fields)
  11. Define and use methods that have primitive data types as arguments
  12. Understand the importance of information hiding and encapsulation
  13. Declare and use local variables
  14. Describe the role of the reserved word this
  15. Demonstrate use of this to disambiguate object fields from local variables

Arrays

  1. Use an array to store privitive and object types
  2. Create an array of a given size
  3. Loop through an array
  4. Pass an array as an argument