Limited Offer Get 25% off — use code BESTW25
No AI No Plagiarism On-Time Delivery Free Revisions
Claim Now

ICT221 Object-Oriented Programming

The ICT221 Course
Main themes:
Designing Java programs with multiple classes
OOP concepts: encapsulation, interfaces, inheritance and
subtype polymorphism
UML class diagrams: association relationships, and how to
implement these in Java code
Event-Driven programming (GUIs with JavaFX)
Git and GitHub (version control, team work)
3
What Java skills do you need to get a job?
4
• https://www.quora.com/How-much-Java-do-you-need-to-know-t
o-get-a-job/answer
•Matt Pickering, 30+ year professional developer with multiple
industry and platform background. Answered Oct 22, 2014,
Updated June 13, 2018. 229k Views, 1k Upvotes.
”I work with a lot of interns who have learned Java in school and are
now applying it for job purposes. My answer is going to assume you’re
looking at entry-level positions.
”Schools, for the most part, do not teach Java job skills. If you’re
learning event driven programming using Swing, for example, expecting
to use that on the job is a pipe dream. Unless you’re applying to a job
that lists it specifically, most Java is web or enterprise oriented.”
“Conceptually, you need to understand the following in Java and know how to describe and
apply it:
5
• Understanding of all basic Java control structures, able to
declare methods and a working understanding of passby-
value and pass-by-reference.
• A understanding of classes vs. interfaces.
• Understand the role of the public/private/protected
modifiers.
• Understanding of Strings as immutable objects. How to
create mutable Strings via StringBuilder and other
classes.
• Creation of a basic Java POJO/bean (data entity).
• Understand how statics work.
• Know how to declare constants.
• Understand basic class, variable and constant naming
conventions.
• Know how to organize code into packages.
• Understand the role and usage of JAR library files
and how to reference them in your application.
• Have a working understanding of the core Java API
and where to find stuff. At a minimum, know the
roles and uses of classes in java.lang, understand
and able to use the Java Collections API correctly
(i.e. declare variables of List type, not ArrayList) and
know some of the utility classes in java.util, java.text
and java.math.
• Knowledge and theory of some basic design
patterns (Singleton, Factory, Facade, DAO, MVC).
• Know what the CLASSPATH is!
• Know how the main() method works and how to
pass arguments to basic programs.”
In ICT221, we’ve covered about 10-11/14
of these topics.
I would add: Understand the importance
of Unit Testing and be able to use JUnit.
[Just for your interest] “If you’re looking to get into web or
enterprise development, some exposure and knowledge of the
following is helpful:
6
• Familiarity with SQL databases and
programming against them via JDBC.
• For web, understand how the HTTP
protocol works and how basic web
interaction takes place.
• A basic knowledge of HTML. Specifically,
basic page structure and how HTML forms
work.
• Difference between GET and POST.
• Any knowledge of the Servlet/JSP API,
how web containers work and the Servlet
lifecycle.
• Any understanding of XML. Web services
and WSDL theory is a bonus.
• Any understanding of TCP/IP networking (TCP vs
UDP, role of IP, DNS, network addressing).
• Use of any logging framework.
• Know what Apache Commons is!
• Any understanding or exposure to source code
control systems and why they are important.
• Any understanding of software project management
and the software development lifecycle.”
See ICT120, ICT220, ICT310, ICT321,
ICT320, and ICT352 for many of these
topics.
[Matt Pickering, continued…]
7
• “Notice I have not listed a single framework! I am always looking for fundamental
knowledge and a foundation to built upon. An entry-level person is not expected to know
too much. The more the better but it must be a place we can grow you from.
• And of that first list, only about 1/4 to 1/2 of it is ever touched upon in a college or
university class. Virtually none of the second list is ever covered in college or university
classes.
• Honestly, having a working if imperfect knowledge of stuff on the first list, able to answer
some questions off the top of your head without needing a book or the Internet as a crutch
at every stage and a willingness to learn is what is needed to get you in the door. Given I am
usually interviewing candidates that are from the same school, I am looking for things that
differentiate them. Self-starters and motivated learners are often that differentiator.”
How to get a job?
8
• Network!
Go to local Meetups. For example:
• https://www.meetup.com/find/tech/
• Coding from Beach: https://www.meetup.com/Coding-from-Beach/
Join in with HackFest and GovHack
Help out at CoderDojo?
• Get involved – contribute to GitHub projects, StackOverflow…
• Have a great CV (and portfolio!) – get it reviewed by others
• Have some career goals – show your passion and enthusiasm
• Before the interview – do your research!!!
Find out everything you can about the company, the people, their customers
How to keep a job?
9
What do employers want from a new graduate developer?

  1. Attitude
    Humility – “I am not important”
    Servanthood – “How can I help the other team members?”
    Teachable – “How would you like me to do that?”
  2. Soft skills
    ability to work well in a team – can you listen? Take notes!
    caring for their customers – primary goal: help them succeed
  3. Ability to learn and solve problems
    can learn new skills and get help with problem solving from online
    Exam
    10
    • Format
    Online, open-book, timed
    • Date
    Check your timetable
    • Duration
    2.5 hours
    Consultation Time
    11
    • Drop-in sessions
    TBA
    • Other time
    Appointment via email
    • Discussion board on Blackboard is encouraged
    W1 Introduction
    12
    • Basic Java syntax
    W2 Using Java Objects and Classes
    13
    • To describe objects and classes, and use classes to model objects (§9.2).
    • To use UML graphical notation to describe classes and objects (§9.2).
    • To demonstrate how to define classes and create objects (§9.3).
    • To create objects using constructors (§9.4).
    • To access objects via object reference variables (§9.5).
    • To define a reference variable using a reference type (§9.5.1).
    • To access an object’s data and methods using the object member access operator (.) (§9.5.2).
    • To define data fields of reference types and assign default values for an object’s data fields (§9.5.3).
    • To distinguish between object reference variables and primitive data type variables (§9.5.4).
    • To define private data fields with appropriate get and set methods (§9.8).
    • To encapsulate data fields to make classes easy to maintain (§9.9).
    • To develop methods with object arguments and differentiate between primitive-type arguments and object-type
    arguments (§9.10).
    • To store and process objects in arrays (§9.11). We use Lists, rather than arrays.
    • To determine the scope of variables in the context of a class (§9.13).
    • To use the keyword this to refer to the calling object itself (§9.14).
    W3 Object-Oriented Thinking
    14
    • Explain abstraction and encapsulation
    • Draw UML class diagrams with class relationships
    • Implement simple class relationships in Java
    •Write effective unit tests using JUnit 4/5
    • Understand Java ‘Wrapper’ classes for primitive values
    • Be able to use common String methods
    W4 Interfaces and Polymorphism
    15
    • Be able to explain the concept of ‘polymorphism’ in OOP
    • Be able to read and write Java interfaces
    W5
    16
    • Transition week
    W6 GUI Programming
    17
    • Explain the following concepts and their use
    The relationship among stages, scenes, and nodes (§14.3).
    Binding properties which synchronize property values (§14.5).
    Common properties style and rotate for nodes (§14.6).
    Image and ImageView class (§14.9).
    Layout with Pane, StackPane, FlowPane, GridPane, BorderPane,
    HBox, and VBox (§14.10).
    W7 Event-Driven Programming
    18
    • To get a taste of event-driven programming (§15.1).
    • To describe events, event sources, and event classes (§15.2).
    • To define handler classes, register handler objects with the
    source object, and write the code to handle events (§15.3).
    • To define handler classes using inner classes (§15.4).
    • To define handler classes using anonymous inner classes (§15.5).
    • To simplify event handling using lambda expressions (§15.6).
    • To write programs to deal with MouseEvents (§15.8).
    • To write programs to deal with KeyEvents (§15.9).
    W8 Advanced GUIs
    19
    • Explain the use scenarios of various user-interface controls
    Label, Button, CheckBox, RadioButton, TextField, TextArea,
    ComboBox, ListView, ScrollBar, Slider, Media, MediaPlayer, and
    MediaView
    W9 Inheritance
    20
    • To explain the concept of ‘inheritance’ in OOP
    • To define a subclass from a superclass through inheritance
    (§11.2).
    • To invoke the superclass’s constructors and methods using the
    super keyword (§11.3).
    • To explain the execution order of the constructors in sub and
    super classes
    • To override instance methods in the subclass (§11.4).
    • To distinguish differences between overriding and overloading
    (§11.5).
    W10 Exceptions and Text Files
    21
    • To get an overview of exceptions and exception handling (§12.2).
    • To distinguish exception types: Error (fatal) vs. Exception (nonfatal) and checked vs.
    unchecked (§12.3).
    • To declare exceptions in a method header (§12.4.1).
    • To throw exceptions in a method (§12.4.2).
    • To write a try-catch block to handle exceptions (§12.4.3).
    • To explain how an exception is propagated (§12.4.3).
    • To use the finally clause in a try-catch block (§12.5).
    • To use the File class (§12.10).
    • To understand how data is written using a PrintWriter class (§12.11.1).
    • To use try-with-resources to ensure that the resources are closed automatically (§12.11.2).
    • To understand how data is read using a Scanner (§12.11.4).
    W11 Java Collections
    22
    • Explain the features of common types of collections
    Array, List, Set, Map, Stack, Queue
    W12 Binary IO
    23
    • To discover how I/O is processed in Java (§17.2).
    • To distinguish between text I/O and binary I/O (§17.3).
    • To select which type of stream class should be used and how
    to combine them
    FileInputStream/FileOutputStream (§17.4.1)
    DataInputStream/DataOutputStream (§17.4.3)
    BufferedInputStream/BufferedOutputStream (§17.4.4)
    • To explain the use of RandomAccessFile class (§17.7).
    The ICT221 Exam: Practice Run
    • 10 multiple choice questions [20 marks]
    Choose the one BEST answer
    Most are similar to weekly quizzes
    As online quizzes on the blackboard
    • 4 short answer questions [20 marks]
    draw a UML class diagram
    write a Java subclass
    write some JUnit tests
    implement a UML class diagram in Java
    • The code does not need to be runnable but with all key elements
    24
    Example Multi-Choice Questions
    In OOP, you declare data fields to be private. This is called
    .
    a) polymorphism
    b) encapsulation
    c) inheritance
    d) abstraction
    25
    Multiple Choice…
    If an exception occurs in a try-catch block, the code in the
    catch clause
    .
    a) is always executed
    b) is executed if the try block throws a matching exception
    c) is executed if the catch block throws a matching exception
    d) is never executed
    26
    Multiple Choice…
    Given the following Java classes, what will be the printed
    output of executing the Java statement: new Sub().go();
    public class Super
    public Super() System.out.print(“S”);
    public void go() System.out.print(“g”);

    public class Sub extends Super
    public Sub() System.out.print(“B”);
    @Override public void go() System.out.print(“o”);

    a. SBgo b. BSo c. Bo d. SBo
    27
    Multiple Choice…
    What is the output of running this Java program?
    public static void main(String[] args)
    List p = new ArrayList<>();
    p.add(10);
    p.add(1);
    p.add(1);
    System.out.println(p);

    a) [10, 1]
    b) [1, 1, 10]
    c) [10, 1, 1]
    d) [ ]
    28
    Multiple Choice…
    Analyze this program. Which output does it produce?
    public class Test
    public static void main(String[] args)
    String firstName = “John”;
    Name name = new Name(firstName, ‘F’, “Smith”);
    firstName = “Peter”;
    name.lastName = “Pan”;
    System.out.println(name.firstName + ” “
  • name.lastName);


    a) Peter Pan
    b) John Pan
    c) Peter Smith
    d) John Smith
    class Name
    String firstName;
    char mid;
    String lastName;
    public Name(String firstName,
    char mid,
    String lastName)
    this.firstName = firstName;
    this.mid = mid;
    this.lastName = lastName;


    29
    Multiple Choice…
    Each time a method is invoked, the system stores parameters
    and local variables in an area of memory, known as _,
    which stores elements in last-in first-out fashion.
    a) storage area
    b) a list
    c) a heap
    d) a stack
    30
    Short Answer Questions
    Here is a Java interface for moving/resizing shapes.
    /** General interface to all kinds of geometric shapes. / public interface MovableSizable /* Resize this shape. Example. 0.5 halves the size / void resize(double scale); /* @return total height, rounded to the nearest pixel. / int getHeight(); /* @return total width, rounded to the nearest pixel. / int getWidth(); /* Move shape so it is centred on (x,y). / void moveTo(int x, int y); int getX(); int getX(); 31 Short Answer Questions Q1. Implement a class called Circle that implements the MovableSizable interface, and adds a constructor that takes two int values (the initial x,y centre of the circle) and one double value (the initial radius of the circle). For example, new Circle(100,200,3.5) would create a new circle centred at position (100,200) with diameter 7.0 pixels. Note that the constructor must throw an IllegalArgumentException if the radius is zero or negative. 32 Short Answer Questions Q2. Draw a UML class diagram of the MovableSizable interface and your Circle class, showing all the details of each class (e.g. methods, fields, constructors). 33 Short Answer Questions Q3. Write a JUnit 5.0 test class, that has two tests of your Circle class: 1) one test that creates a circle at position (0,0) with radius 3.6, and checks that all the getter methods return the correct values (width and height are both 7 pixels and the x and y locations are both 0). Then it calls moveTo(10,20) and resize(3.0) and checks all the getter methods again (x should be 10, y should be 20, and width and height should both be 22 pixels, because 3.63*2=21.6, which rounds up to 22).
    2) one test that tries to create a circle with radius of -2.0. The test
    should pass if this throws an exception, and fail if the circle is
    constructed without any errors.
    34
    Short Answer Questions
    Q4. The following UML class diagram describes the structure of a Java program for managing
    university courses. Implement just the Course class by writing a Java class that implements it. You
    can assume that the Student and Staff classes have already been coded in Java and that they have
    getter methods for each data field. [see next page for more details]
    35
    Short Answer Questions
    [Continued] Your Course class should have:
    1) a getter for the course ‘code’, so that it is read-only;
    2) a getter and setter for the lecturer attribute, so that it is readable
    and writable;
    3) a constructor that creates the associations shown in the UML
    diagram;
    4) an enrolStudent method that adds a given Student object into
    the ‘enrolled’ set;
    5) a withdrawStudent method that removes a given Student object
    from the ‘enrolled’ set and returns true if the student was
    successfully found and removed, false otherwise.
    36
    eVALU8 Feedback
    37
    • Please help to improve the course with your feedback
    •We want your feedback on what you found helpful about the
    course, and any problems you encountered

The post ICT221 Object-Oriented Programming appeared first on My Assignment Online.

Plagiarism Free Assignment Help

Expert Help With This Assignment — On Your Terms

Native UK, USA & Australia writers Deadline from 3 hours 100% Plagiarism-Free — Turnitin included Unlimited free revisions Free to submit — compare quotes
Scroll to Top