274 lines
3.7 KiB
Plaintext
274 lines
3.7 KiB
Plaintext
Application
|
||
Programming
|
||
Hend Alkittawi
|
||
|
||
Final Exam Review
|
||
You’ve Got This! ☺
|
||
|
||
IMPORTANT MIDTERM MATERIAL
|
||
●
|
||
|
||
Understand Java fundamentals
|
||
○
|
||
|
||
Classes and Objects
|
||
|
||
○
|
||
|
||
Variables and Methods [getters, setters, toString, equals,
|
||
object methods/variables, static methods/variables]
|
||
|
||
○
|
||
|
||
Class Relationships
|
||
|
||
○
|
||
|
||
Arrays, and ArrayLists
|
||
|
||
○
|
||
|
||
File I/O
|
||
|
||
○
|
||
|
||
UML diagrams
|
||
■
|
||
|
||
Code to diagram
|
||
|
||
■
|
||
|
||
Diagram to code
|
||
|
||
SOLID PRINCIPLES
|
||
●
|
||
|
||
●
|
||
|
||
Be familiar with the SOLID Principles
|
||
○
|
||
|
||
The Single Responsibility Principle (SRP)
|
||
|
||
○
|
||
|
||
The Open Closed Principle (OCP)
|
||
|
||
○
|
||
|
||
The Liskov Substitution Principle (LSP)
|
||
|
||
○
|
||
|
||
The Interface Segregation Principle (ISP)
|
||
|
||
○
|
||
|
||
The Dependency Inversion Principle (DIP)
|
||
|
||
Understand why it is important to consider these principles
|
||
○
|
||
|
||
Rigidity
|
||
|
||
○
|
||
|
||
Immobility
|
||
|
||
○
|
||
|
||
Fragility
|
||
|
||
○
|
||
|
||
Viscosity
|
||
|
||
MVC
|
||
●
|
||
|
||
Be familiar with the “design architecture” concept
|
||
|
||
●
|
||
|
||
Understand what the MVC design architecture is
|
||
|
||
●
|
||
|
||
Be able to create an Android project that follows the MVC
|
||
design architecture
|
||
|
||
model
|
||
data storage,
|
||
integrity, consistency,
|
||
queries & mutations
|
||
|
||
controller
|
||
view
|
||
receive, interpret &
|
||
validate input, create &
|
||
update views, query and
|
||
modify models
|
||
|
||
presentation assets &
|
||
code
|
||
|
||
user
|
||
|
||
ANDROID BASICS
|
||
●
|
||
|
||
Be able to design a simple multi-screen, data-driven Android
|
||
application and provide the UML diagram for it.
|
||
|
||
●
|
||
|
||
Be able to create a layout XML file with basic views (Buttons,
|
||
TextViews, ImageViews, …)
|
||
|
||
●
|
||
|
||
Be able to create an Activity class as a controller class in
|
||
an Android app (listen to the user interactions, and manage
|
||
the flow of app data)
|
||
|
||
●
|
||
|
||
Understand how to utilize Java and Android APIs to perform I/O
|
||
operations (AssetsManager, InputStream, OutputStream, … )
|
||
|
||
EXCEPTIONS
|
||
●
|
||
|
||
Understand the difference between Java Exceptions and Java
|
||
Errors
|
||
|
||
●
|
||
|
||
Understand the difference between checked and unchecked
|
||
exceptions
|
||
|
||
●
|
||
|
||
Be familiar with Java exceptions (NullPointerException,
|
||
IOException, … )
|
||
|
||
●
|
||
|
||
Understand the difference between throwing an exception and
|
||
handling it
|
||
|
||
●
|
||
|
||
Understand what the call stack is
|
||
|
||
EXCEPTIONS
|
||
|
||
GENERICS AND COLLECTIONS
|
||
●
|
||
|
||
Understand the advantages of using generics in Java programs.
|
||
|
||
●
|
||
|
||
Be able to create classes and methods that utilize generic
|
||
types.
|
||
|
||
●
|
||
|
||
Understand the difference between the List, Map, and Set Java
|
||
collections.
|
||
|
||
●
|
||
|
||
Be able to use Java collections as part of a Java program.
|
||
|
||
●
|
||
|
||
Be able to utilize the following interfaces in a Java
|
||
application: Iterator, Iterable, Comparable, Comparator
|
||
|
||
LAMBDA EXPRESSIONS
|
||
●
|
||
|
||
Understand what a functional interface is
|
||
|
||
●
|
||
|
||
Understand what a lambda expression is
|
||
|
||
●
|
||
|
||
Be able to trace code that uses lambda expressions
|
||
|
||
●
|
||
|
||
Be able to write code that uses lambda expressions
|
||
|
||
●
|
||
|
||
Be able to use Java’s functional interfaces in a Java
|
||
application
|
||
|
||
THREADS
|
||
●
|
||
|
||
Understand the difference between a process and a thread.
|
||
|
||
●
|
||
|
||
Be able to trace code that involves threads in Java.
|
||
|
||
●
|
||
|
||
Be able to create threads in Java by extending the Thread class.
|
||
|
||
●
|
||
|
||
Be able to create threads in Java by implementing the Runnable
|
||
interface.
|
||
|
||
●
|
||
|
||
Understand the importance of thread synchronization in Java
|
||
applications.
|
||
|
||
●
|
||
|
||
Understand the difference between the main thread (UI thread) and
|
||
other threads in an Android application.
|
||
|
||
●
|
||
|
||
Understand the importance of utilizing threads in an Android
|
||
application (preventing ANR).
|
||
|
||
UNIT TESTING
|
||
●
|
||
|
||
Be familiar with unit testing and the JUnit framework.
|
||
|
||
●
|
||
|
||
Be able to create basic test cases
|
||
|
||
VERSION CONTROL
|
||
●
|
||
|
||
Understand Git/Github terminology and workflow (local/remote
|
||
repo, stage, commit, push, pull)
|
||
|
||
DO YOU HAVE ANY
|
||
QUESTIONS?
|
||
|
||
THANK
|
||
YOU!
|
||
|
||
@
|
||
|
||
hend.alkittawi@utsa.edu
|
||
|
||
By Appointment
|
||
Online
|
||
|
||
|