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
|
|||
|
|
|||
|
|