From 09c66095eddfcde8ec13253c31c9b4576b9a75ca Mon Sep 17 00:00:00 2001 From: Price Hiller Date: Sat, 31 Aug 2024 02:13:09 -0500 Subject: [PATCH] summer-2024: archive it --- Summer-2024/CS-3424/Midterm-Notes.org | 69 ++ .../CS-3424/Quizzes/Quiz-6/Assignment.pdf | Bin 0 -> 201390 bytes .../Slides/txt/01_Course-Introduction.txt | 278 +++++++ .../CS-3443/Slides/txt/02_Java-Basics.txt | 305 ++++++++ .../CS-3443/Slides/txt/03_Eclipse-IDE.txt | 154 ++++ .../Slides/txt/04_Java-Best-Practices.txt | 481 ++++++++++++ .../Slides/txt/05_Arrays-and-ArrayLists.txt | 431 +++++++++++ Summer-2024/CS-3443/Slides/txt/06_File-IO.txt | 281 +++++++ .../Slides/txt/07_Project-Overview.txt | 220 ++++++ .../CS-3443/Slides/txt/08_Inheritance.txt | 446 +++++++++++ .../CS-3443/Slides/txt/09_Polymorphism.txt | 184 +++++ .../Slides/txt/10_Abstract-Classes.txt | 175 +++++ .../CS-3443/Slides/txt/11_Interfaces.txt | 137 ++++ ...2_UML-Diagrams-and-Class-Relationships.txt | 694 ++++++++++++++++++ .../CS-3443/Slides/txt/13_Design-Practice.txt | 60 ++ ...oduction-to-Android-and-Android-Studio.txt | 300 ++++++++ Summer-2024/CS-3443/Slides/txt/16_MVC.txt | 312 ++++++++ ...ndroid App Development - Rowdy Quiz V1.txt | 652 ++++++++++++++++ ...d App Development - Rowdy Quiz File IO.txt | 288 ++++++++ .../CS-3443/Slides/txt/19_Version Control.txt | 371 ++++++++++ .../Slides/txt/20_SOLID Principles.txt | 599 +++++++++++++++ ... Development - Rowdy Quiz Multi Screen.txt | 269 +++++++ .../CS-3443/Slides/txt/22_Debugging.txt | 243 ++++++ .../Slides/txt/23_Exception Handling.txt | 412 +++++++++++ ...roid App Development - Leaderboard App.txt | 180 +++++ .../CS-3443/Slides/txt/25_Java Generics.txt | 364 +++++++++ .../Slides/txt/26_Java Collections.txt | 407 ++++++++++ .../CS-3443/Slides/txt/27_Java Iteration.txt | 309 ++++++++ .../CS-3443/Slides/txt/28_Java Comparison.txt | 396 ++++++++++ .../Slides/txt/29_Lambda Expressions.txt | 633 ++++++++++++++++ .../CS-3443/Slides/txt/30_Java Threads.txt | 618 ++++++++++++++++ .../CS-3443/Slides/txt/31_Android Threads.txt | 215 ++++++ .../CS-3443/Slides/txt/32_JUnit Testing.txt | 406 ++++++++++ .../CS-3443/Slides/txt/33_Android Testing.txt | 146 ++++ .../CS-3443/Slides/txt/34_Final Review.txt | 274 +++++++ Summer-2024/Schedule.org | 47 +- 36 files changed, 11345 insertions(+), 11 deletions(-) create mode 100644 Summer-2024/CS-3424/Midterm-Notes.org create mode 100644 Summer-2024/CS-3424/Quizzes/Quiz-6/Assignment.pdf create mode 100644 Summer-2024/CS-3443/Slides/txt/01_Course-Introduction.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/02_Java-Basics.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/03_Eclipse-IDE.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/04_Java-Best-Practices.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/05_Arrays-and-ArrayLists.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/06_File-IO.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/07_Project-Overview.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/08_Inheritance.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/09_Polymorphism.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/10_Abstract-Classes.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/11_Interfaces.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/12_UML-Diagrams-and-Class-Relationships.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/13_Design-Practice.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/14_Introduction-to-Android-and-Android-Studio.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/16_MVC.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/17_Android App Development - Rowdy Quiz V1.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/18_Android App Development - Rowdy Quiz File IO.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/19_Version Control.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/20_SOLID Principles.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/21_Android App Development - Rowdy Quiz Multi Screen.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/22_Debugging.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/23_Exception Handling.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/24_Android App Development - Leaderboard App.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/25_Java Generics.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/26_Java Collections.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/27_Java Iteration.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/28_Java Comparison.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/29_Lambda Expressions.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/30_Java Threads.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/31_Android Threads.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/32_JUnit Testing.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/33_Android Testing.txt create mode 100644 Summer-2024/CS-3443/Slides/txt/34_Final Review.txt diff --git a/Summer-2024/CS-3424/Midterm-Notes.org b/Summer-2024/CS-3424/Midterm-Notes.org new file mode 100644 index 0000000..232e094 --- /dev/null +++ b/Summer-2024/CS-3424/Midterm-Notes.org @@ -0,0 +1,69 @@ +* Systems Programming Midterm Topics +1. Linux environment / shell commands + - Common commands + - Chmod/permissions + - Wildcards + - Input/output redirection + - Shell parsing steps + - Shell command resolution variables + - Shell vs environment and their inheritance + - Exit statuses + - Subshells / child shells + - Arithmetic (operators: expansion vs evaluation) + - Floating arithmetic in bash: how? +2. Bash Scripting +3. ~find~/~grep~ +4. Regular expressions (BRE vs ERE) +5. ~sed~ + +NOTE: No AWK material will be covered on the exam + +* Example Questions +1. Answer =True= or =False= for the following statements: + - [TRUE] The extended regular expression ~{0,1}~ is equivalent to the ~?~ quantifier? + - [FALSE] An exit status of ~0~ is used to indicate success. + - [FALSE] Given the string "abc123" the regex ~/[a-z]{1,3}/~ will produce a match of "a". + - [FALSE] The following loop will never execute: + #+begin_src bash + while [ 0 ]; do let i++; echo $i; done + #+end_src + - [TRUE] The following loop will never execute: + #+begin_src bash + while (( 0 )); do let i++; echo $i; done + #+end_src + - [TRUE] ~sed~ will emit the contents of the pattern space, including a trailing newline character, by default at the end of each input cycle. + - [FALSE] The following bash filename pattern will match all text files in the user's current directory: + #+begin_src bash + ls -la .*\.txt + #+end_src + - [TRUE] The ~source~ built-in executes the contents of a specified file within the current script (i.e. no subshell is utilized). + - [FALSE] ~grep~ uses extended regular expressions by default +2. Enter the octal number corresponding to the following Linux file permissions: ~rwxr-x---~ + Answer: ~0750~ +3. Write out the erroneous line numbers from the following script (hint there are six): + #+begin_src bash + data="./data" + org_data=/usr/local/courses/ssilvestro/cs3424/Spring21/assign1/ + + if [[ $# -eq 1 ]]; then + data = $1 + else if [[ $# -eq 2 ]]; then + data = $1 + orig_data = $2 + fi + + if [[! -d $data]]; then + echo "ERROR: data directory '$data' does not exist" + exit 1 + fi + if [[ not -d $orig_data ]]; then + echo "ERROR: original data directory '$data' does not exist" + exit 1 + fi + echo "rm -rf \"$data\"..." + rm -rf "$data" + + echo "cp -r \"$org_data\" \"$data\"..." + cp -r "$orig_data" "$data" + #+end_src + Answer: ~4,5,6,7,9,13~ diff --git a/Summer-2024/CS-3424/Quizzes/Quiz-6/Assignment.pdf b/Summer-2024/CS-3424/Quizzes/Quiz-6/Assignment.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c844971c2789fbef6397473c0aabbab345e2259a GIT binary patch literal 201390 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 &Tbd`tZwpWJo@w>` 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 TM(R9*IvgJ6I%Z7p Launch + +2. + +If the welcome window appears, choose to hide it + +3. + +In the Package Explorer (top left area of IDE), right +click and select New > Java Project + +4. + +Name your project + +5. + +Ensure that the create module-info.java file is unchecked + +6. + +Click “finish” + + Open Eclipse and +select/create a +workspace > Launch + +If the welcome window +appears, choose to hide +it + + Create a new Java project using the new project wizard (multiple ways) + + Name your project (for labs, follow the lab guidelines!) + +Ensure that the create module-info.java file is unchecked + + CREATING A CLASS IN AN ECLIPSE PROJECT +1. + +Expand your project + +2. + +Right-click on src > New > Class + +3. + +Name your class following Java naming convention + +4. + +To run your class, you need a main method. With that, +you can click the green “run” button at the top of the +IDE to run your program and see results in the console. + + Create a new Java class +right-click on src > New > Class +give the class a name > finish + +leave this as the default package + +optional, can be added later + + Edit and run your code + + IMPORTING A PROJECT IN ECLIPSE +1. + +If you have an Eclipse project in a zip file, unzip the +file + +2. + +Open Eclipse and select/create a workspace > Launch + +3. + +If the welcome window appears, choose to hide it + +4. + +In the Package Explorer (top left area of IDE), right +click and select Import … + +5. + +Select General > Existing Project Into Workspace > Next + +6. + +Browse to find the unzipped project directory > Finish + + Import an existing project using the import project wizard (multiple ways) + + Select General > Existing Project Into Workspace > Next + + Browse to find the unzipped project directory > Finish + + CODE DEMO +- + +Create a Java project +and a Java class to +demo concepts! + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/04_Java-Best-Practices.txt b/Summer-2024/CS-3443/Slides/txt/04_Java-Best-Practices.txt new file mode 100644 index 0000000..386d1ad --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/04_Java-Best-Practices.txt @@ -0,0 +1,481 @@ +Application +Programming +Hend Alkittawi + + More on Java Classes +Best practices for Creating Java +Classes + + BEST PRACTICES FOR CREATING JAVA CLASSES +STYLE +- identifier naming +- indentation + +CONSTRUCTORS +- Ways to instantiate +objects + +METHODS +- getters and setters +- equals() +- toString() + +JAVADOC +- “special” Java +documentation + + STYLE +visibility + +type + +class name + +public class MyClass { +// attributes +private int intVar; +visibility + +type + +variable name + +// methods +public void myMethod(String myString){ +visibility + +} + +} + +return +type + +method +name + +parameter parameter +type +name + + METHODS +- + +The syntax (rules) for declaring a method +visibility returnType methodName(parameterList) +- + +visibility determines access +- + +- + +returnType is the type of data this method returns +- + +- + +public (all can access) or private (just this class can access) +if nothing is returned, use the keyword void + +methodName starts with a lowercase word +- + +it uses uppercase for the first letter of each additional word +(this is called “camel case”) + +- + +parameterList is any data we need to pass to the method +- + +The ordering must be followed exactly + + METHODS +- + +Getter and setter methods are used to get and set the +value of the attributes. +- + +Getters retrieve the value only + +- + +Setters update the value only + +public class Account { +private double balance; +private String name; +public void setBalance( double balance ){ +this.balance = balance; +} +public double getBalance(){ +return this.balance; +} +// add a getter and a setter for name +} + +● to use the class and its methods +public static void main(String[] args){ +Account myAccount = new Account(); +myAccount.setBalance(1000.0); +double balance = myAccount.getBalance(); +} + + METHODS +- + +toString() method returns a String representation of objects. +An example of a toString() method for the Account class: + +public class Account { +private double balance; +private String name; +public void setBalance( double balance ){ +this.balance = balance; +} +public double getBalance() { +return this.balance; +} +// … getter and a setter for name +public String toString() { +return "Account info: name: " + name ++ " with balance: " + balance; +} +} + +● to use the class and its methods +public static void main(String[] args){ +Account myAccount = new Account(); +myAccount.setName("Sam Adams"); +myAccount.setBalance(1000.0); +System.out.println( myAccount ); +} + + METHODS +- + +equals() method provides a way for users to compare instances +of your object to other instances. This also gives you control +over what is relevant to differentiate your objects. + +- + +● to use the class and its methods + +private double balance; +private String name; + +public static void main(String[] args){ +Account myAccount = new Account(); +Account yourAccount = new Account(); +myAccount.setName(“Mia”); +myAccount.setBalace(10); +yourAccount.setName(“Ken”); +yourAccount.setBalance(100); +boolean check = +myAccount.equals(yourAccount); +} + +public class Account { + +public void setBalance( double balance ) { +this.balance = balance; } +public double getBalance() { +return this.balance; } +public String toString() { +return "Account info: name: " + name ++ " with balance: " + balance; } +public boolean equals( Account account2 ) { +return this.getName().equals( account2.getName());} +} + + IMPORTANT + +● + +== is used for primitive types only +○ + +● + +Objects define an object-method called equals() +○ + +● + +2 == 5 + +objA.equals(objB); + +Core: Drawing Memory Models with Objects - Memory Models, Scope, +and Starting the Project | Coursera + + public class Account { +private double balance; +private String name; +public void setBalance( double balance ) { +this.balance = balance; } +public void setName( String name ) { +this.name = name; } + +yourAccount + +myAccount + +name + +name + +balance + +balance + +public double getBalance() { +return this.balance; } +public String getName() { +return this.name; } +public boolean equals( Account account2 ) { +return this.getName().equals( account2.getName()); +} +public String toString() { +return "Account info: name: " + name ++ " with balance: " + balance; } +} + +public static void main(String[] args){ +Account myAccount = new Account(); +Account yourAccount = new Account(); +myAccount.setName("Mia"); +myAccount.setBalace(10); +yourAccount.setName("Ken"); +yourAccount.setBalance(100); +boolean check = +myAccount.equals(yourAccount); +} + + CONSTRUCTORS +- + +Java requires a constructor call for every object that is created. + +- + +The keyword new creates a new object of a specified class by +calling a constructor. + +- + +A constructor is similar to a method but is called implicitly by +the new operator to initialize an object’s instance variables when +the object is created. + +- + +In any class that does not explicitly declare a constructor, the +compiler provides a default constructor (which always has no +parameters). + +- + +When a class has only the default constructor, the class’s +instance variables are initialized to their default value. + + METHODS +- + +You can provide your own constructor to specify custom +initialization for objects of your class. + +- + +A constructor must have the same name as the class. + +- + +If you declare a constructor for a class, the compiler will +not create a default constructor that class. + +public +class Account { +private double balance; +private String name; +public Account( String name, double balance ){ +this.name = name; +this.balance = balance; +} +/* … rest of class … */ +} + +● to use the class and its methods +public static void main(String[] args){ +Account myAccount = new Account("Sam", 1000); +Account yourAccount = new Account("Jane", 2000); +} + + JAVA GARBAGE COLLECTION +- + +More than one variable may refer to the same data. + +- + +Java will clear out old data that no variables are referencing +- + +- + +This is known as garbage collection + +Garbage collection is the process through which Java will +eventually clear out old data that no variables are +referencing. + + JAVADOC +- + +Javadoc comments are delimited between /** and */. + +- + +Javadoc comments enable you to embed program documentation +directly in your programs. + +- + +Javadoc utility program reads Javadoc comments and uses them +to prepare program documentation in HTML web-page format. +/** +* This is a Javadoc comment! +*/ + + JAVADOC +- + +Javadoc comments annotations: +- + +@author: designates the author of the code, belongs in the +class comment + +- + +@param: designates the parameter to a method, belongs in all +method comments which require parameters + +- + +@return: designates the returned value of a method, belongs in +method comments which return values + + JAVADOC +Jav + +ine +til t +l +u +M +men +Com + +/** +* The Account class represents a bank account. +* @author CS3443 +*/ +public class Account { +/* attributes here .. a multi-line comment starts with /* .. be careful! */ +/** +* sets the account balance +* @param balance, the account balance (double) +*/ +public void setBalance(double balance){ +this.balance = balance; +} + +doc + +a + +Jav + +c +ado + +} + +/** +* returns the balance for the account +* @return double, the account balance +*/ +public double getBalance(){ +return balance; +} + + JAVADOC + +- + +To generate Javadoc in Eclipse +1. + +Project > Generate Javadoc + +2. + +Destination: workspace/your_project/doc + +3. + +Next + +4. + +Select all “referenced archives and projects” + +5. + +Finish > Yes To All + +6. + +Open index.html + + Project > Generate Javadoc + + Destination:workspace/your_project/doc +> Next + + Select all +> Finish + +Yes To All + + Open index.html + + CODE DEMO +- + +Create a Java class +following the best +practices + +- + +Generate Javadocs + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/05_Arrays-and-ArrayLists.txt b/Summer-2024/CS-3443/Slides/txt/05_Arrays-and-ArrayLists.txt new file mode 100644 index 0000000..2b49320 --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/05_Arrays-and-ArrayLists.txt @@ -0,0 +1,431 @@ +Application +Programming +Hend Alkittawi + + Basic Java Data Structures +Arrays and ArrayLists, Wrapper +Classes and Static Methods + + JAVA ARRAYS +- + +Arrays in Java are objects which can be declared +- + +by size +int[] myNumbers = new int[4]; +Employee[] employees = new Employee[10]; + +- + +by values directly (using an array initializer) +double[] myNumbers = {10.5, 20.34, 30.8, 40.12}; +Account[] accounts = {accountOne, accountTwo}; + +- + +Access values in an array by providing an index +double x = myNumbers[0]; + +- + +Overwrite values at an index by using assignment +x = x + 5; +myNumbers[1] = x; + +- + +Loop over array elements to fill array, modify elements,… etc. +for (int i = 0; i < myNumbers.length; i++){ +myNumbers[i] = i * 10; +System.out.println(myNumbers[i]); +} + + JAVA ARRAYS +- + +Recall the String manipulation methods +String stringA = "I’m out of candy corn, send help!"; +for( int i = 0; i < stringA.length(); i++ ){ +char c = stringA.charAt(i); +System.out.print( c ); +} +String[] sentences = stringA.split( "," ); +System.out.println( sentences.length ); +System.out.println( sentences[1].trim() ); + + JAVA ARRAYLISTS +- + +An ArrayList object is an array that can grow or shrink as +needed! Use an ArrayList when you don’t know how many of +something you need. + +- + +To create an ArrayList: +ArrayList grades = new ArrayList(); +ArrayList letters = new ArrayList(); +ArrayList employees = new ArrayList(); +ArrayList accounts = new ArrayList(); +More on generics later! + + JAVA ARRAYLISTS +- + +Some useful methods for working with ArrayLists: +- + +add() to add an object to the ArrayList + +- + +get(int index) to get an object from the ArrayList + +- + +contains() to check if an element is in the ArrayList + +- + +size() to get the number of elements currently in the ArrayList + +- + +remove(int index) to remove an object from an index in the +ArrayList +ArrayList grades = new ArrayList(); +grades.add(5); +boolean present = grades.contains(7); +ArrayList letters = new ArrayList(); +letters.add("CS3443"); + + WRAPPER CLASSES +- + +Each primitive data type has a corresponding wrapper class, +which enables you to manipulate primitive type values as +objects. For example: +- + +double has Double + +- + +int has Integer + +- + +char has Character + +- + +boolean has Boolean + + WRAPPER CLASSES +- + +The conversion between the primitive data type and wrapper +class type is mostly automatic +- + +converting a primitive type to wrapper class is called +autoboxing. + +- + +converting a wrapper class object to primitive type is called +unboxing. + +Double dbox = Math.sqrt(2); +double d = 1.0 / dbox; + +// autoboxing +// unboxing + + WRAPPER CLASSES +- + +Wrapper classes provide several methods for manipulating data. + +- + +Some of the methods provided by these classes: +- + +Double.parseDouble() to translate a String into a double value + +- + +Integer.parseInt() to translate a String into a int value + +- + +Character.getNumericValue() to translate a specified Unicode +character into the int value that it represents. + +- + +Note that there is no object associated with these methods + + STATIC METHODS +- + +Methods we have seen so far execute in response to method +calls on specific objects. + +- + +Sometimes a method performs a task that does not depend on an +object. These methods are called static/class methods. + +- + +To declare a method as static, place the static keyword before +the return type in the method’s declaration. +public static void myMethod( arguments ) { method body } + +- + +To call a class’s static method, specify the class name +followed by a dot (.), and the method name. +ClassName.methodName(arguments); + + STATIC METHODS +- + +Some of the static methods in the String class: +- + +String.valueOf() to get the String value of a given variable +of a primitive type +String s = String.valueOf( 350.4 ); +System.out.println( s.charAt(3) ); + +- + +String.format() to format a string, similar to sprintf in C. + +String.format("Account object: name = %s, balance = +$%.2f", name, balance); + + STATIC METHODS +- + +The class Math contains static methods for performing basic +numeric operations such as the elementary exponential, +logarithm, square root, and trigonometric functions + +- + +Here are a few class methods to try: +double absValPos = Math.abs(13) +double absValNeg = Math.abs(-13) +double minVal += Math.min(3, 4) + + OBJECT VS. STATIC METHODS +- + +There are two types of methods in Java +- + +- + +● + +Object methods +- + +Associated with an object + +- + +Sent as a message to an object + +- + +Implicitly passed to the current object + +- + +Keyword: this + +Class/Static methods +- + +Not associated with a particular object + +- + +Sent as a message to a class + +- + +Keyword: static + +When to use static methods - Stack Overflow + + CLASS ACTIVITY +- + +Given the strings below, which of the following lines contain +an object method? +String greeting = "HI"; +String obvious = "This is a string"; +String strWithSpace = " +1. + +greeting.toLowerCase(); + +2. + +String.valueOf(55); + +3. + +obvious.indexOf( "is"); + +4. + +String.valueOf(17.8); + +5. + +strWithSpace.trim(); + +This is a string. + +"; + + CLASS ACTIVITY +- + +Given the strings below, which of the following lines contain +an object method? +String greeting = + +"HI"; + +String obvious = "This is a string"; +String strWithSpace =᳚ " +1. + +greeting.toLowerCase(); + +2. + +String.valueOf(55); + +3. + +obvious.indexOf("is"); + +4. + +String.valueOf(17.8); + +5. + +strWithSpace.trim(); + +This is a string. + +"; + + ARRAYS AND ARRAYLISTS IN A JAVA CLASS +- + +In the case where a class variable contains a data structure, +multiple setter methods should be created. +- + +Setter to set the value of the entire data structure + +- + +Setter/Adder to add just one value to the data structure +public class HelloWorld{ +private String[] messages; +public void setMessages(String[] texts){ +this.messages = texts; +} +public void addMessage (String text){ +This.messages[0] = text; +} +public void addMessage (String text, int index){ +// code to add the value of text to the array +} +} + +Method Overloading + + ENHANCED for STATEMENT +- + +The enhanced for statement iterates through the elements of an +array/arraylist without using a counter! + +- + +for (paramType parameter : arrayName){ +/* statements that read/obtain array elements, cannot +modify elements with the enhanced for statement */ +} +parameter has a type and an identifier. + +- + +the type of the parameter must be consistent with the the type +of elements in the array +for (int x : myNumbers){ +sum = sum + x; +} + + JAVA PACKAGES +- + +Related classes are typically grouped into packages so that +they can be imported into programs and reused. + +- + +The ArrayList class is part of the java.util package, so the +package need to be imported to your class to be able to use +the ArrayList class. +import java.util.ArrayList; + +- + +The package java.lang is implicitly imported by the compiler, +so it is not necessary to import classes in that package to +use them. + +- + +String and Math are examples of classes in java.lang package + + CODE DEMO +- + +Create class(es) to +demo the use of arrays +and arraylists! +Create a class to demo +static methods and +variables. + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/06_File-IO.txt b/Summer-2024/CS-3443/Slides/txt/06_File-IO.txt new file mode 100644 index 0000000..f148ddb --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/06_File-IO.txt @@ -0,0 +1,281 @@ +Application +Programming +Hend Alkittawi + + File I/O +Working with File Input and Output + + WORKING WITH DATA +- + +Data can be stored on a computer in a file with a particular name! + +- + +There are two fundamentally different ways to store data in a +file: +- + +Text files store data in text format: data items are represented in +human readable form, and can be edited using simple text editors. +- + +- + +*.txt, *.java, *.html, *.csv + +Binary files store data in binary format: data items are +represented in bytes, and stored using an internal format that +requires special software to process. +- + +*.jpeg, *.pdf + + READERS, WRITERS, AND STREAMS +- + +Java APIs provide two set of classes for handling input and +output. + +- + +If data is stored in text form (as a sequence of characters), +the Reader and Writer classes and their subclasses are used to +produce input and output. + +- + +If data is stored in binary form (as a sequence of bytes), the +InputStream and OutputStream classes and their subclasses are +used to produce input and output. + + READERS, WRITERS, AND STREAMS +Reader + +Writer + +InputStream + +OutputStream + +InputStreamReader + +PrintWriter + +FileInputStream + +FileOutputStream + +FileReader + +OutputStreamWriter + +ObjectInputStream + +ObjectOutputStream + +FileWriter + +PrintStream + + READERS, WRITERS, AND STREAMS +- + +To read text data from a disk file, create a FileReader object + +- + +To read binary data from a disk file create a FileInputStream +object + +- + +To write text data to a disk file, create a FileWriter object + +- + +To write binary data to a disk file create a FileOutputStream +object + + THE Scanner CLASS +- + +The Scanner class is flexible in that Scanner objects +can be attached to many different kinds of input. + +- + +- + +input from the console + +- + +input from a file + +Reader + +When constructing a Scanner from a file object, the +Scanner automatically constructs a FileReader. + +- + +The Scanner class is part of the java.util package. + +- + +If the program is unable to locate the specified input + +InputStreamReader + +file, it will generate an exception which will prevent +the the program from continuing normal execution. +- + +You can throw the exception or handle it with a +try/catch. + +FileReader + + THE Scanner CLASS +- + +Some of the useful methods for reading input in the Scanner +class: +- + +- + +token-based processing +- + +hasNext(): checks if the input has a token to read + +- + +next(): reads and returns the next token as a String + +- + +nextInt(): reads and returns an int value + +- + +nextDouble(): reads and returns a double value + +line-based processing +- + +hasNextLine(): checks if the input has a line to read + +- + +nextLine(): reads and returns the next line of input as a String + + FILES AND File OBJECTS +- + +To access a file from inside a Java program, you need to +construct an internal object that will represent the file. + +- + +Once you have constructed the object, you can call a number of +methods to manipulate the file. +File myFile = new File ("myFile.txt"); +if (file.exists() && file.canRead()) { +// read the file! +} + +- + +The File class is part of java.io package. + + READING A FILE WITH THE Scanner CLASS +- + +Instead of instantiating objects with fixed values coded into +the application, we can instantiate objects by reading data +from a file. +- + +create a data directory in your Eclipse project, and place the +file in it. Then, add code to read the data from a file + +public void loadData(String fileName) throws FileNotFoundException { +File file = new File( "data/" + filename ); +Scanner scan = new Scanner( file ); +while( scan.hasNextLine() ) { +String line = scan.nextLine(); +String[] tokens = line.split(","); +// do sth with the string and/or tokens, we will create an object based on the tokens! +MyClass obj = new MyClass(tokens[0], Double.parseDouble(tokens[1]), ...); +} +scan.close(); +} + + To create a data directory in your Eclipse project +right-click on project > New > Folder + + Create a new file in the data directory, or copy and paste an existing file +right-click on data folder > New > File then enter data +OR +copy an existing file > right-click on data folder > paste + + THE FileWriter CLASS +- + +The FileWriter class can be utilized to write text data +to a file. + +- + +Writer + +Use the write() method to write a String to the output +file. + +- + +If the program is unable to locate the specified input +file, it will generate an exception which will prevent + +PrintWriter + +the the program from continuing normal execution. You +can throw the exception or handle it with a try/catch. +public void writeFile(String filename) throws IOException{ +File outFile = new File("data/" + filename); + +OutputStreamWriter + +FileWriter out = new FileWriter(outFile); +out.write("Success! \n"); +out.write("Keep it up ..."); +out.close(); +} + +FileWriter + + CODE DEMO +- + +Modify the classes +created in previous +sessions to demo file +I/O concepts. + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/07_Project-Overview.txt b/Summer-2024/CS-3443/Slides/txt/07_Project-Overview.txt new file mode 100644 index 0000000..ebacd55 --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/07_Project-Overview.txt @@ -0,0 +1,220 @@ +Application +Programming +Hend Alkittawi + + Project Overview +How to deliver a successful project! + + PROJECT + +June +05 + +June +12 + +June +19 + +June +26 + +July +03 + +July +31 + +Aug +07 + +Aug +07 + +TEAM +FORMATION + +TEAM +INTRODUCTION + +PROJECT +PROPOSAL + +PROJECT +PROTOTYPE + +CODE +DESIGN + +PROJECT +DEMO + +FINAL +APPLICATION + +SURVEY + +2 points + +2 points + +2 points + +2 points + +4 points + +2 points + +4 points + +2 points + +● If you don't incorporate feedback from a previous assignment into the next one, you will +receive a 0 on that assignment. +● Your project grade depends on your contribution to the project! + + PROJECT PROPOSAL +- + +The proposal will serve as the foundation for the +semester-long project +- + +Project Title and Overview + +- + +Project Goals and Objectives + +- + +Target Audience + +- + +Scope of the Project + +- + +User Interface (UI) Design + +- + +Competition + +- + +Team Agreement + +- + +Conclusion + + PAST LABS + + PAST LABS + + PROJECT PROTOTYPE +- + +The prototype will help you visualize the user interface and +user experience of your app before development begins. +- + +Adobe XD is a prototyping tool for user experience and +interaction designers to design websites, mobile apps, and +more. + +- + +Download Adobe XD and get started + +- + +Tutorial + + CODE DESIGN +- + +This assignment focuses on collecting the necessary data files +and obtaining a comprehensive overview of your application's +code design to ensure successful development of your +application. +- + +Collect and organize all data files relevant to your +application. This may include: csv files, txt files, image +files, and any other data sources integral to your +application. + +- + +Application UML diagram (MVC) + + PROJECT DEMO +- + +The demo is to showcase the functionality and features of your +Android app through a demonstration video. This will require +effective communication and presentation skills to highlight +key aspects of your app. + +- + +This assignment also aims to cultivate critical thinking +skills through the subsequent feedback survey evaluation +process. + + FINAL APPLICATION +- + +The final submission of your Android application project is a +crucial step in showcasing your team's work. This assignment +focuses on the successful delivery of your project code while +adhering to specific guidelines and ensuring the project’s +completeness. + +- + +I will be checking the GitHub repositories under the +organization for your final project submissions. +- + +Code + +- + +Readme + +- + +UML + + IMPORTANT + +When given the +choice between +being right or +being kind +choose kind! + + Check the Chocoholics +Anonymous Project Description +and Discuss the Basics of +Software Design Process + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/08_Inheritance.txt b/Summer-2024/CS-3443/Slides/txt/08_Inheritance.txt new file mode 100644 index 0000000..8290bb4 --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/08_Inheritance.txt @@ -0,0 +1,446 @@ +Application +Programming +Hend Alkittawi + + OOP Concepts +Introduction to Inheritance in Java + + INHERITANCE +- + +When creating a class rather than declaring completely new members +you can designate that the new class should inherit the members of +an existing class. + +- + +The existing class is called the superclass and the new class is +the subclass. + +- + +With inheritance the instance variables and methods that are the +same for all the classes in the hierarchy are declared in a +superclass. + +- + +In inheritance, a new class is created by acquiring an existing +class’s members and possibly embellishing them with new or +modified capabilities. + + public class Animal { + +} + +public class Dog extends Animal { + +public class InheritanceDemo { + +private String name; + +private String breed; + +public String getName() { +return name; +} + +public String getBreed() { +return breed; +} + +Animal animal = new Animal(); +animal.eat(); + +public void setName(String name) { +this.name = name; +} + +public void setBreed(String breed) { +this.breed = breed; +} + +Dog dog = new Dog(); +// setName() is an inherited method +dog.setName("Buddy"); + +public void eat() { +System.out.println(getName() + +" eats food."); +} + +public void bark() { +System.out.println("The dog barks."); +} + +// setBreed() is a method of Dog class +dog.setBreed("Golden Retriever"); + +} + +public static void main(String[] args){ + +// eat() is an inherited method +dog.eat(); +// bark() is a method of Dog class +dog.bark(); +} +} + + INHERITANCE +- + +The direct superclass is the superclass from which the subclass +explicitly inherits. + +- + +An indirect superclass is any class above the direct +superclass in the class hierarchy, which defines the +inheritance relationships among classes. + +- + +In Java, the class hierarchy begins with a class Object which +every class in Java directly or indirectly extends. + +- + +Java supports only single inheritance in which each class is +derived from exactly one direct superclass. + + INHERITANCE +- + +Inheritance and constructors +- + +Constructors are not inherited, a superclass’s constructors are +still available to be called by subclasses. + +- + +Java requires that the first task of any subclass constructor is to +call its direct superclass’s constructor to ensure that the +instance variables inherited from the superclass are initialized +properly. + +- + +Superclass constructor call syntax: + +keyword super followed by a + +set of parentheses containing the super class constructor arguments +which are you used to initialize the super class instance +variables. + + public class Animal { + +public class Dog extends Animal { + +private String name; + +private String breed; + +public Animal(String name) { +this.name = name; +} + +public Dog(String name, String breed) { +super(name); +this.breed = breed; +} + +public String getName() { +return name; +} + +} + +public static void main(String[] args){ +Animal animal = new Animal("Hazel"); +animal.eat(); +Dog dog = new Dog("A Name", "A Breed"); + +public String getBreed() { +return breed; +} + +public void setName(String name) { +this.name = name; +} +public void eat() { +System.out.println(getName() + +" eats food."); +} + +public class InheritanceDemo { + +// eat() is an inherited method +dog.eat(); + +public void setBreed(String breed) { +this.breed = breed; +} + +} + +public void bark() { +System.out.println("The dog barks."); +} + +// bark() is a method of Dog class +dog.bark(); +} +} + + INHERITANCE +- + +A subclass can add its own fields and methods; it is more specific than its +superclass. + +- + +A subclass exhibits the behavior of its superclass and can modify these +behaviors so that they operate appropriately for the subclass. A subclass can +customize methods that it inherits from its superclass to do this the +subclass overrides/redefines the superclass method with an appropriate +implementation. + +- + +To override a superclass method in a subclass, the subclass must declare a +method with the same signature as the superclass method. + +- + +When a subclass method overrides an inherited superclass method, the +superclass version of the method can be accessed from the subclass by +preceding the super-class method name with the keyword super and a DOT (.) +separator. + + public class Animal { + +public class Dog extends Animal { + +private String name; + +private String breed; + +public Animal(String name) { +this.name = name; +} + +public Dog(String name, String breed) { +super(name); +this.breed = breed; +} + +public String getName() { +return name; +} + +public static void main(String[] args){ +Animal animal = new Animal("Hazel"); +animal.eat(); +Dog dog = new Dog("A Name", "A Breed"); +// eat() is an inherited method +dog.eat(); + +public String getBreed() { +return breed; +} + +public void setName(String name) { +this.name = name; +} + +// bark() is a method of Dog class +dog.bark(); + +public void setBreed(String breed) { +this.breed = breed; +} + +public void eat() { +System.out.println(getName() + +" eats food."); +} + +} + +public class InheritanceDemo { + +// toString() in Dog redefines the +// behavior of toString() in Animal +String s = dog.toString(); + +public void bark() { +System.out.println("The dog barks."); +} + +@Override +public String toString() { +return "Name: " + getName(); +} +} + +@Override +public String toString() { +return super.toString() + " Breed: " ++ getBreed(); +} + +} +} + + PUBLIC, PRIVATE AND PROTECTED KEYWORDS +- + +A class’s public members are accessible wherever the program +has reference to an object of that class or one of its +subclasses. + +- + +A class’s private members are accessible only within the class +itself. + +- + +Using protected access modifier offers an intermediate level +of access between public and private; a superclass’s protected +members can be accessed by members of that superclass, by +members of its subclasses and by members of other classes in +the same package. + + PUBLIC, PRIVATE AND PROTECTED KEYWORDS +- + +Public members of the superclass become public members of the +subclass and protected members of the superclass become +protected members of the subclass. + +- + +Methods of a subclass cannot directly access private members +of their superclass. Declaring private instance variables +helps you test, debug and correctly modify systems. + + package inheritance; +public class Animal { + +package inheritance; +public class Dog extends Animal { + +private String name; +public String aString; +public String publicString; +protected String protectedString; + +private String breed; +public Dog(String name, String breed) { +super(name); +this.breed = breed; +} + +public Animal(String name) { +this.name = name; +} + +public String getBreed() { +return breed; +} + +public String getName() { +return name; +} + +public void setBreed(String breed) { +this.breed = breed; +} + +public void setName(String name) { +this.name = name; +} + +public void bark() { +System.out.println("The dog barks."); +} + +public void eat() { +System.out.println(getName() + +" eats food."); +} + +private void testAccess() { +// String s0 = name; // invalid +String s1 = getName(); // indirect access +String s2 = publicString; // insecure +String s3 = protectedString; // valid +} + +@Override +public String toString() { +return "Name: " + getName(); +} + +} + +private void animalMethod() { +// method body +} +} + +@Override +public String toString() { +return super.toString() + " Breed: " ++ getBreed(); +} + +package inheritance; +public class InheritanceDemo { +public static void main(String[] args){ +Animal animal = new Animal("Hazel"); +animal.eat(); +// animal.animalMethod(); // inavlid +// animal.bark(); // invalid +// animal.name = "some string"; // invalid +animal.publicString = "some string"; +animal.protectedString = "some string"; +Dog dog = new Dog("A Name", "A Breed"); +// eat() is an inherited method +dog.eat(); +// bark() is a method of Dog class +dog.bark(); +// toString() in Dog redefines the +// behavior of toString() in Animal +String s = dog.toString(); +// dog.name = "some string"; // invalid +dog.publicString = "some string"; +dog.protectedString = "some string"; +} +} + + CODE DEMO +- + +Create classes to demo +inheritance concepts! + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/09_Polymorphism.txt b/Summer-2024/CS-3443/Slides/txt/09_Polymorphism.txt new file mode 100644 index 0000000..aa202f7 --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/09_Polymorphism.txt @@ -0,0 +1,184 @@ +Application +Programming +Hend Alkittawi + + OOP Concepts +Polymorphism + + POLYMORPHISM +- + +Polymorphism enables you to write programs that processes +objects that share the same superclass either directly or +indirectly as if they were all objects of the superclass. + +- + +The polymorphism occurs when a program invokes a method +through a superclass variable, at execution time the correct +subclass version of the method is called based on the type of +reference stored in the superclass variable. + +- + +A program can determine the type of an object at execution +time and act on that object accordingly. + + POLYMORPHISM + +Animal + +Fish + +🐟 + +Frog + +🐸 + +Bird + +🐦 + +xy coordinates + +xy coordinates + +xy coordinates + +move() + +move() + +move() + + POLYMORPHISM +Quadrilatera +l + +Square + +Trapezoid + +Parallelogram +s + +color + +color + +color + +getPerimeter() + +getPerimeter() + +getPerimeter() + + POLYMORPHISM + +SpaceObject + +LaserBeam + +SpaceShip + +Plutonian + +picture + +picture + +picture + +draw() + +draw() + +draw() + + public class Animal { + +public class PolymorphismDemo { + +private String name; + +public static void main(String[] args) { + +public Animal(String name) { this.name = name; } + +// Animal reference but Dog object +Animal myAnimal = new Dog("Thunder", 30); +// Output: Thunder the dog barks. +myAnimal.makeSound(); + +public String getName() { return name; } +public void setName(String name) { this.name = name; } + +// Animal reference but Cat object +myAnimal = new Cat("Whiskers", "Persian"); +// Output: Whiskers the cat meows. +myAnimal.makeSound(); + +public void eat() { System.out.println(getName() + " eats food."); } +public void makeSound() { System.out.println("Animal makes a sound."); } +} + +} +} + +public class Dog extends Animal { +public class Cat extends Animal { +private int exerciseNeeds; // in min/day +private String breed; +public Dog(String name, int exerciseNeeds) { +super(name); +this.exerciseNeeds = exerciseNeeds; +} +public int getExerciseNeeds() { +return exerciseNeeds; +} +public void setExerciseNeeds(int exerciseNeeds) { +this.exerciseNeeds = exerciseNeeds; +} +@Override +public void makeSound() { +System.out.println(getName() + " the dog barks."); +} +} + +public Cat(String name, String breed) { +super(name); +this.breed = breed; +} +public String getBreed() { +return breed; +} +public void setBreed(String breed) { +this.breed = breed; } +@Override +public void makeSound() { +System.out.println(getName() + " the cat meows."); +} +} + + CODE DEMO +- + +Create classes to demo +polymorphism concepts! + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/10_Abstract-Classes.txt b/Summer-2024/CS-3443/Slides/txt/10_Abstract-Classes.txt new file mode 100644 index 0000000..1742dc9 --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/10_Abstract-Classes.txt @@ -0,0 +1,175 @@ +Application +Programming +Hend Alkittawi + + OOP Concepts +Java Abstract Classes + + ABSTRACT CLASSES +- + +Sometimes it's useful to declare classes for which you never +intend to create objects. These classes are called abstract +classes. + +- + +The purpose of an abstract class is to provide an appropriate +superclass from which other classes can inherit and thus share +common design. + +- + +Abstract classes are used only as superclasses in inheritance +hierarchies. + +- + +Abstract classes are incomplete, and cannot be used to +instantiate objects. + + ABSTRACT CLASSES +- + +To make a class abstract, declare it with the keyword abstract +public abstract class MyClass { … } + +- + +Abstract classes normally contain one or more abstract methods + +- + +An abstract method is an instance method with the keyword +abstract and its declaration + +- + +An Abstract method do not provide implementations +public abstract myMethod(); + +- + +Constructors and static methods cannot be declared as +abstract. + + ABSTRACT CLASSES +- + +Subclasses must declare the missing pieces to become concrete +classes from which objects can be instantiated. + +- + +Each concrete subclass of an abstract superclass must provide +concrete implementations of each of the superclass abstract +methods. + + public abstract class Shape { + +public class AbstractClassDemo { + +private String color; +public String getColor() { +return color; +} +public void setColor(String color) { +this.color = color; +} +public void display() { +System.out.println("This is a " + getType() + " shape. Its color is: " + +} +public abstract String getType(); +public abstract void draw(); + +public static void main(String[] args) { +Circle circle = new Circle(); +circle.setColor("red"); +circle.setRadius(5.0); +circle.draw(); // implemented abstract method +circle.display(); // concrete method from +abstract class +} +} +getColor()); + +} +public class Circle extends Shape{ +private double radius; +public double getRadius() { +return radius; +} +public void setRadius(double radius) { +this.radius = radius; +} +public void draw() { +System.out.println("Drawing a " + getColor() + " circle with radius " + getRadius() + "."); +} +@Override +public String getType() { +return "Circle"; +} +} + + public abstract class Shape { +private String color; +public Shape(String color) { this.color = color; } +public String getColor() { return color; } +public void setColor(String color) { this.color = color; } +public void display(){ System.out.println("This is a " + getType() + " shape. Its color is: " + +public abstract String getType(); +public abstract void draw(); + +getColor()); } + +} +public class Circle extends Shape{ + +public class AbstractClassDemo { + +private double radius; +public Circle(String color, double radius) { +super(color); +this.radius = radius; } + +public static void main(String[] args) { +//Shape shape = new Shape("blue"); // invalid +Circle circle = new Circle("red", 5.0); +circle.draw(); // implemented abstract method +circle.display(); // concrete method from +abstract class +} + +public double getRadius() { return radius; } +public void setRadius(double radius) { this.radius = radius; } +} +@Override +public void draw() { +System.out.println("Drawing a " + getColor() + " circle with radius " + getRadius() + "."); +} +@Override +public String getType() { +return "Circle"; } +} + + CODE DEMO +- + +Create classes to demo +abstract classes +concepts! + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/11_Interfaces.txt b/Summer-2024/CS-3443/Slides/txt/11_Interfaces.txt new file mode 100644 index 0000000..92c29be --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/11_Interfaces.txt @@ -0,0 +1,137 @@ +Application +Programming +Hend Alkittawi + + OOP Concepts +Introduction to Java Interfaces + + INTERFACES +- + +Java interfaces are particularly useful for assigning common +functionality to possibly unrelated classes + +- + +Java interfaces offer a capability requiring that unrelated classes +implement a set of common methods + +- + +A Java interface describes a set of methods that can be called on an +object to tell it to perform some tasks or return some piece of +information + +- + +An interface should be used in place of an abstract class when there is +no default implementation to inherit, that is, no fields and no +concrete methods implementations +- + +this allows objects of unrelated classes to be processed polymorphically + + INTERFACES +- + +An interface declaration begins with the keywords interface +and contains only constants and abstract methods +- + +all methods declared in an interface are implicitly public +abstract methods + +- + +all fields are implicitly public, static, and final +public interface InterfaceName { +public static final dataType varName; +public abstract returnType interfaceMethod(); +} + + INTERFACES +- + +To use an interface, a concrete class must specify that it +implements the interface and must declare each method in the +interface with the signature specified in the interface +declaration + +- + +Java does not allow subclasses to inherit from more than one +superclass, but it allows a class to inherit from one +superclass and implement as many interfaces as it needs +public class ClassName implements InterfaceName +or +public class ClassName extends SuperClass implements InterfaceName +where InterfaceName maybe a comma-separated list of interface names + + public interface Drawable { +public void draw(); +} + +public class InterfaceDemo { +public static void main(String[] args) { +// Creating objects of different +// classes that implement Drawable +Drawable rectangle = new Rectangle(2.5, 7.2); +Drawable tree = new Tree("Oak", 5.5); +Drawable person = new Person("John", 30); + +public class Tree implements Drawable { +private String type; +private double height; +public Tree(String type, double height) { +this.type = type; +this.height = height; } + +// Array of Drawable objects +Drawable[] drawables = {rectangle, tree, person}; + +// getters and setters are omitted + +// Drawing all drawable objects +for (Drawable drawable : drawables) { +drawable.draw(); +} + +@Override +public void draw() { +System.out.println("Drawing a tree with height " + getHeight() + " meters"); } +} + +} +} + +public class Rectangle implements Drawable{ +private double length; +private double width; +public Rectangle(double length, double width) { +this.length = length; +this.width = width; } +// getters and setters are omitted +public void draw() { +System.out.println("Drawing a rectangle with length " + length + " and width " + width); } +} + + CODE DEMO +- + +Create classes to demo +interfaces concepts! + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/12_UML-Diagrams-and-Class-Relationships.txt b/Summer-2024/CS-3443/Slides/txt/12_UML-Diagrams-and-Class-Relationships.txt new file mode 100644 index 0000000..defd578 --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/12_UML-Diagrams-and-Class-Relationships.txt @@ -0,0 +1,694 @@ +Application +Programming +Hend Alkittawi + + UML Diagrams +UML Diagrams and Class Relationships + + WHAT IS APPLICATION PROGRAMMING? + +Documentation +Testing +Coding + +Engineering + +Collaboration + + UML DIAGRAMS +- + +UML: Unified Modeling Language +- + +- + +Graphical models of object-oriented software + +What do you think such graphical models should include? + + UML DIAGRAMS +- + +UML: Unified Modeling Language +- + +Graphical models of object-oriented software + +Class Name + +Variables + +Methods + + UML DIAGRAMS +- + +Create the UML diagram for the Account.java class +public class Account { +private String name; +private double balance; +public Account(String name) {// method body here} +public void setName(String name) {// method body here} +public void setBalance(double bal) {// method body here} +public String getName() {// method body here} +public double getBalance() {// method body here} +} + +Class Name + +Variables + +Methods + + UML DIAGRAMS +- + +Create the UML diagram for the Account.java class +public class Account { +private String name; +private double balance; + +} + +public Account(String name, double balance) {// method body here} +public void setName(String name) {// method body here} +public void setBalance(double bal) {// method body here} +Account +public String getName() {// method body here} +public double getBalance() {// method body here} +name +balance +Account() +getName() +setName() +getBalance() +setBalance() + + UML DIAGRAMS +- + +Create the UML diagram for the Account.java class +- + +A <> tag indicates interface class + +- + +A <> tag indicates constructor + +- + +Include variables data types + +- + +Include method parameters and their data type + +- + +Include method return data type + +- + +An underscore (_) indicates static + +- + +A minus(-) indicates private + +- + +A plus (+) indicates public + +- + +A hash (#) indicates protected + +Account +- name: String +- balance: double +<> Account( name: String, balance: double ) ++ getName() : String ++ setName( name: String ) ++ getBalance() : double ++ setBalance( amount: double ) + + UML DIAGRAMS +- + +Create the UML diagram for the Account.java class + +public class Account { +private String name; +private double balance; +public Account(String name, double balance) {// method body here} +public void setName(String name) {// method body here} +public void setBalance(double bal) {// method body here} +public String getName() {// method body here} +Account +public double getBalance() {// method body here} +} + +- name: String +- balance: double +<> Account( name: String, balance: double ) ++ getName() : String ++ setName( name: String ) ++ getBalance() : double ++ setBalance( amount: double ) + + UML Diagrams +- + +Classes depend and interact with each other + +- + +UML diagrams can visually show the interactions and +dependencies between classes + +- + +Can you name relationships/dependencies between classes? + + JAVA CLASSES +- + +In a Java application classes are related to each other +- + +In an is-a relationship an object of a subclass can also be treated +as an object of its superclass, or an object that implements an +interface can be treated as an object of the interface +(polymorphism). + +- + +- + +Example: A SavingsAccount class that extends Account class + +- + +Example: An Invoice class that implements Payable interface + +In a has-a relationship, an object contains as members references +to other objects (composition). +- + +Example: An Employee class where an employee has one or more Date +objects + +- + +Example: A Bank class where a bank has one or more Account objects + + UML Diagrams +- + +Dependencies and relationships between classes can be +- + +Dependency relationship + +- + +Unidirectional association + +- + +Bidirectional association + +- + +Aggregation relationship + +- + +Composition relationship + +- + +Realization relationship + +- + +Generalization relationship + + UML DIAGRAMS +- + +Generalization relationship +- + +- + +indicates inheritance between classes + +ClassA has a generalization relationship +with ClassB implies + +Freight + +- + +ClassA inherits from ClassB + +Variables + +- + +ClassA is the subclass, and ClassB is + +Methods + +the superclass +- + +declared in code as ClassA extends + +Luggage + +Cargo + +ClassB + +Variables + +Variables + +Methods + +Methods + + UML DIAGRAMS +- + +Realization relationship +- + +indicates inheritance, where ClassB is +an interface + +- + +<> + +ClassA has a realization relationship with + +Mammal + +ClassB implies + +Variables + +- + +ClassA inherits from ClassB + +- + +declared in code as ClassA implements +ClassB + +Methods + +Cat + +Dog + +Variables + +Variables + +Methods + +Methods + + UML DIAGRAMS +- + +- + +Composition relationship +- + +indicates not-shared association + +- + +strong dependency + +ClassA has a composition relationship with ClassB implies +- + +ClassA is a container for a data structure of ClassB + +- + +there is not a super-sub / parent-child relationship between +ClassA and ClassB + +- + +if ClassA is deleted, ClassB need to be removed as well +Folder +- files: File[] +Methods + +File +Variables +Methods + + UML DIAGRAMS +- + +Aggregation relationship +- + +- + +indicates shared association + +ClassA has an aggregation relationship with ClassB implies +- + +ClassA references a data structure of ClassB, but is not the +only reference + +- + +ClassA does not own ClassB + +- + +there is not a super-sub / parent-child relationship between +ClassA and ClassB +Wheel +Variables +Methods + +Car +engine: Engine[] +wheels: Wheel[] +Methods + +Engine +Variables +Methods + + CLASS ACTIVITY +- + +What does this UML tell you about the corresponding Java code? + +Polygon + ++ computeArea() + +Triangle + +Rectangle + +Variables + +Variables + +Methods + +Methods + + CLASS ACTIVITY +- + +What does this UML tell you about the corresponding Java code? +- + +We have three Java classes + +- + +Polygon is an abstract class + +- + +computeArea() is an abstract method + +- + +A Rectangle is-a Polygon +- + +- + +Rectangle extends Polygon + +Polygon + ++ computeArea() + +A Triangle is-a Polygon +- + +Triangle extends Polygon + +Triangle + +Rectangle + ++ computeArea() + ++ computeArea() + + VIOLET UML EDITOR +- + +A free, cross-platform UML editor +- + +You can get it here + +- + +We will be creating Class Diagrams + +- + +The UML diagram is saved as an html file and can be exported +as an image (*. png) file + + Save As *.html +file + + Save As *.png +file + + UML DIAGRAMS +- + +Unidirectional association +- + +- + +indicates dependency of only one class on another + +ClassA has a unidirectional association with ClassB implies +- + +ClassA uses and depends on ClassB, but ClassB does not +reference ClassA + +- + +at least one ClassB object is referenced in ClassA + +- + +there is an import statement in ClassA for ClassB + +- + +there is not an import ClassA statement in ClassB +Employee + +Date + +hireDate: Date + +Variables + +Methods + +Methods + + UML DIAGRAMS +- + +Bidirectional association +- + +- + +indicates codependency of two classes + +ClassA has a bidirectional association with ClassB implies +- + +both depend upon each other + +- + +at least one ClassB object is referenced in ClassA + +- + +at least one ClassA object is referenced in ClassB + +- + +there is an import statement in ClassA for ClassB + +- + +there is an import statement in ClassB for ClassA +UserProfile + +ProfilePicture + +profilePic: ProfilePicture + +userProfile: UserProfile + +Methods + +Methods + + UML DIAGRAMS +- + +Dependency relationship +- + +a generalized connection between two classes if other +relationships are not meaningful! + +- + +- + +We will primarily use it for classes referenced in main(). + +ClassA depends on ClassB implies one or more of the following +- + +at least one ClassB object is referenced in ClassA + +- + +there is an import statement in ClassA for ClassB + +- + +at least one class method in ClassB is called by ClassA +AccountTest + ++_main( args : String[] ) + +Account +Variables +Methods + + UML DIAGRAMS +- + +Dependencies and relationships between classes can be +- + +General Dependency relationship + +ClassA + +ClassB + +- + +Unidirectional association + +ClassA + +ClassB + +- + +Bidirectional association + +ClassA + +ClassB + +- + +Aggregation relationship + +ClassA + +ClassB + +- + +Composition relationship + +ClassA + +ClassB + +- + +Realization relationship + +ClassA + +ClassB + +- + +Generalization relationship + +ClassA + +ClassB + + UML DIAGRAMS +- + +You might see UML diagrams in different formats + + UML RESOURCES +- + +UML relationships & associations + +- + +UML.org + +- + +The UML 2 class diagram - IBM Developer + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/13_Design-Practice.txt b/Summer-2024/CS-3443/Slides/txt/13_Design-Practice.txt new file mode 100644 index 0000000..a637d09 --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/13_Design-Practice.txt @@ -0,0 +1,60 @@ +Application +Programming +Hend Alkittawi + + Design Workshop +How to approach an app design! + + INTRODUCTION +Think about the +classes you need to +create for a Payroll +System application! +*Reference Document + + IMPORTANT + +At the design stage in an +object oriented system you +will often find that certain +classes are closely related. +You should factor out common +instance variables and +methods and place them in a +superclass, then use +inheritance to develop +subclasses, specializing them +with capabilities beyond +those inherited from the +superclass. + + DEMO +- + +UML diagram for the Payroll System in Chapter 10 + + Eclipse Hint! +- To automatically generate getters +and setters, right-click in the +code editor > Source > Generate +getters and setters. + +- This functionality is to save + +expert developers some time. Use +it when you are at that level! + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/14_Introduction-to-Android-and-Android-Studio.txt b/Summer-2024/CS-3443/Slides/txt/14_Introduction-to-Android-and-Android-Studio.txt new file mode 100644 index 0000000..fd8d8aa --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/14_Introduction-to-Android-and-Android-Studio.txt @@ -0,0 +1,300 @@ +Application +Programming +Hend Alkittawi + + Android Development +Introduction to Android Studio and +Android Apps Anatomy + + GRAPHICAL USER INTERFACES (GUIs) +- + +Console app vs. Mobile app! +>> Enter employee name: Ryan +>> Enter employee title: Product +Manager +>> Enter hire date: 06-03-2018 + +Employee Management +Employee Name +Employee Title + +⏬ + +Employee Hire Date 📅 +Submit + + ANDROID STUDIO +- + +Android Studio is an integrated development environment (IDE) +for building Android apps + +- + +Download and install Android Studio here + +- + +Installing Android Studio includes +- + +Android SDK (Software Development Kit) + +- + +Android SDK tools and platform tools (for debugging & testing) + +- + +A system image for the Android emulator + +- + +JDK + + HELLO, ANDROID STUDIO! +- + +In Android Studio, create a new project +- + +Select “Phone and Tablet” template → next + +- + +Select “Empty Views Activity” (different from “No Activity”) → +next + +- + +- + +Package name: edu.utsa.cs3443.projectName → next + +- + +Language: Java → next + +- + +Minimum SDK: Android 8 (Oreo) + +- + +Finish → Finish + +Android Studio may need to install several things if this is +your first project - be patient and do not close the IDE until +it is finished! + + 1 + +2 + +3 + +4 + + Project tool window + +Editor tool window + + HELLO, ANDROID STUDIO! +- + +Layout Editor +- + +drag and drop views in the Design mode + +- + +view the xml code by clicking the Code button in the top left + + HELLO, ANDROID STUDIO! +- + +Resource: a piece of your app that is +not code (e.g. image files, audio, XML) + +- + +Layout: Defines a set of UI objects and +the objects’ positions on the screen + +- + +View: UI objects (View is a superclass +of all UI components) + +- + +Inflate: parse an XML layout resource +and convert it to a hierarchy of View +objects + + HELLO, ANDROID STUDIO! +- + +Activity: a class in the Android SDK which represents an entry point to into your +app and is responsible for managing user interactions with a screen of information +- + +Name your Activity class: + +SomeNameActivity.java + +- + +Name your layout file: + +activity_some_name.xml + +In this example: +MainActivity.java +and +activity_main.xml + + HELLO, ANDROID STUDIO! +- + +MainActivity.java (default template) +- + +onCreate() is called when an instance of the activity subclass is +created + +- + +setContentView() assigns this activity the UI it manages; it +inflates the layout & puts it on the screen, instantiating all views in +the layout file as defined by their attributes +package edu.utsa.cs3443.hello_world; +import androidx.appcompat.app.AppCompatActivity; +import android.os.Bundle; +public class MainActivity extends AppCompatActivity { +@Override +protected void onCreate(Bundle savedInstanceState) { +super.onCreate(savedInstanceState); +setContentView(R.layout.activity_main); +} +} + + ANDROID SDK +- + +Immediately after installing Android Studio for the first time it +is likely that only the latest released version of the Android SDK +has been installed. + +- + +To install older versions of the Android SDK simply select the +checkboxes corresponding to the versions and click on the Apply +button. + +- + +This task can be performed by clicking on the More Actions link +within the welcome dialog or by clicking the Preferences menu +option, then selecting the SDK Manager option from the drop-down +menu, +- + +select Android Oreo (8.0) + + CREATING A VIRTUAL DEVICE +- + +An Android application may be tested by installing and running +it either on a physical device or in an Android Virtual Device +(AVD) emulator environment. + +- + +As part of the standard Android Studio installation, several +emulator templates are installed allowing AVDs to be +configured for a range of different devices. + +- + +New AVDs are created and managed using the Android Virtual +Device Manager. +- + +Tools > Device Manager (or the + +icon) + + ANDROID DEVELOPMENT RESOURCES +● + +Our Textbook Forum +○ + +● + +Documentation +○ + +● + +● + +https://developer.android.com/ + +Newsgroups And Forums +○ + +https://stackoverflow.com/questions/tagged/android + +○ + +https://androidforums.com/ + +Development Tips +○ + +● + +https://forums.bignerdranch.com/ + +https://android-developers.googleblog.com/ + +Videos And Tutorials +○ + +https://www.youtube.com/user/androiddevelopers + + CODE DEMO +- + +Create a HelloWorld +Android Application +using Android Studio +and walk through the +project content! + + IMPORTANT + +Run the HelloWorld +Android App on your +machine and/or VDI +before the end of +the week! + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/16_MVC.txt b/Summer-2024/CS-3443/Slides/txt/16_MVC.txt new file mode 100644 index 0000000..56a3feb --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/16_MVC.txt @@ -0,0 +1,312 @@ +Application +Programming +Hend Alkittawi + + MVC Architectural Pattern +Model-View-Controller Architectural +Pattern + + CODE DEMO +- + +Discuss the design of +a bank management app + + MODEL-VIEW-CONTROLLER +Welcome to UTSA Bank Management System +What would you like to do? +1. Display Accounts +2. Add Account +3. Remove Account +4. Exit +1 +Name: UTSA Bank +Account - name: Ash type: checking +Account - name: Sam type: saving +Account - name: Jen type: checking +Account - name: Mia type: saving +What would you like to do? +1. Display Accounts +2. Add Account +3. Remove Account +4. Exit +3 +Enter account name: +Mia +What would you like to do? +1. Display Accounts +2. Add Account +3. Remove Account +4. Exit +2 +Enter name and type: +Jim checking + +What would you like to do? +1. Display Accounts +2. Add Account +3. Remove Account +4. Exit +1 +Name: UTSA Bank +Account - name: Ash type: checking +Account - name: Sam type: saving +Account - name: Jen type: checking +Account - name: Jim type: checking +What would you like to do? +1. Display Accounts +2. Add Account +3. Remove Account +4. Exit +4 + + MODEL-VIEW-CONTROLLER + +Welcome to UTSA Bank +Management System + +What would you like to do? +View Accounts + +Welcome to UTSA Bank +Management System + +Welcome to UTSA Bank +Management System + +Welcome to UTSA Bank +Management System + +Here is a list of +accounts … + +Enter Account Name + +Enter Account Name + +Select Account type + +Add Account +Remove an Account + +Add Account + +Remove Account + + Welcome to UTSA BankManagement System +What would you like to do? +1. Display Accounts +2. Add Account +3. Remove Account +4. Exit +1 +Name: UTSA Bank +Account - name: Ash type: checking +Account - name: Sam type: saving +Account - name: Jen type: checking +Account - name: Mia type: saving +What would you like to do? +1. Display Accounts +2. Add Account +3. Remove Account +4. Exit +3 +Enter account name: +Mia +What would you like to do? +1. Display Accounts +2. Add Account +3. Remove Account +4. Exit +2 +Enter name and type: +Jim checking + + Welcome to UTSA Bank +Management System + +What would you like to do? +View Accounts +Add Account +Remove an Account + +Welcome to UTSA Bank +Management System + +Here is a list of +accounts … + + Welcome to UTSA Bank +Management System + +Welcome to UTSA Bank +Management System + +What would you like to do? + +Enter Account Name + +View Accounts + +Select Account type + +Add Account +Remove an Account + +Add Account + + Welcome to UTSA Bank +Management System + +What would you like to do? + +Welcome to UTSA Bank +Management System + +Enter Account Name + +View Accounts +Add Account +Remove an Account + +Remove Account + + MODEL-VIEW-CONTROLLER +- + +An architectural pattern captures the design structures of +various systems and elements of software so that they can be +reused. + +- + +Android applications can be designed around an architecture +called model-view-controller or MVC. + +- + +In MVC, all objects in your application must be a model +object, a view object, or a controller object. + +- + +MVC helps you design and understand an application, and makes +classes easier to reuse. + + MODEL-VIEW-CONTROLLER +- + +MVC is an architectural pattern which helps separate +- + +the application logic from the user interface + +- + +the control between the user interface and the application +logic + +model +data storage, +integrity, consistency, +queries & mutations + +controller +view +receive, interpret & +validate input, create & +update views, query and +modify models + +presentation assets & +code + +user + + MODEL +- + +The model represents the data and the rules that govern access +to and updates of this data, and the business logic + +- + +A model often serves as a software approximation of a +real-world process + +- + +Designed and implemented as one or more classes +- + +typically model the things your app is concerned with such as +a user, a product, a photo, at television show, … etc. + +- + +Model objects have no knowledge of the UI; its purpose is +holding and managing data. + + VIEW +- + +View objects know how to draw themselves on the screen + +- + +The view renders the contents of a model + +- + +The view specifies exactly how the model data should be +presented + +- + +If the model data changes, the view must update its +presentation as needed + +- + +Android provides a wealth of configurable view classes. You +can also create custom view classes. + + CONTROLLER +- + +Controller objects tie the View and Model objects together. +They contain application logic. + +- + +Controllers are designed to respond to various events +triggered by view objects and to manage the flow of data +between the model layer and the view layer. +- + +The controller translates the user's interactions with the +view into actions that the model will perform + +- + +In Android, a controller is typically a subclass of Activity, +Fragment, or Service. + +- + +Implemented as one or more classes + + DO YOU HAVE ANY +QUESTIONS? + +THANK +YOU! + +@ + +hend.alkittawi@utsa.edu + +By Appointment +Online + + \ No newline at end of file diff --git a/Summer-2024/CS-3443/Slides/txt/17_Android App Development - Rowdy Quiz V1.txt b/Summer-2024/CS-3443/Slides/txt/17_Android App Development - Rowdy Quiz V1.txt new file mode 100644 index 0000000..57ed02d --- /dev/null +++ b/Summer-2024/CS-3443/Slides/txt/17_Android App Development - Rowdy Quiz V1.txt @@ -0,0 +1,652 @@ +Application +Programming +Hend Alkittawi + + Android Development +Building Our First Android App + + OUR FIRST ANDROID APPLICATION +- + +What do you think we need to build this app? + +Rowdy Quiz + +Trivia Question Here + +True + +False +Next + + OUR FIRST ANDROID APPLICATION +- + +What do you think we need to build this app? +- + +- + +Model Objects +- + +Question.java + +- + +QuizBank.java + +View Objects +- + +- + +Rowdy Quiz + +layout xml file + +Controller Objects +- + +Trivia Question Here + +MainActivity.java +True + +False +Next + + OUR FIRST ANDROID APPLICATION + +Rowdy Quiz + +Trivia Question Here + +True + +False +Next + + OUR FIRST ANDROID APPLICATION +- + +Model Objects +- + +After you create the project in Android +Studio, create a model package + +- + +In edu.usta.cs3443.projectname +- + +right-click on the package + +- + +select New > Package + +- + +set the package name to model + +- + +create/place the model classes within +the model package + + OUR FIRST ANDROID APPLICATION +- + +View Objects +- + +layout xml file + +- + +Set up the layout (xml or drag and drop) +- + +Rowdy Quiz + +LinearLayout (Vertical) +- + +TextView - for Rowdy Quiz + +- + +TextView - for Trivia Question + +- + +LinearLayout (Horizontal) + +- + +- + +Button - for True + +- + +Button - for False + +Trivia Question Here + +True + +False + +Button - for Next + +Next + + TIPS FOR WORKING WITH LAYOUT XML FILES +- + +Views may have an integer id associated with them. These ids +are typically assigned in the layout XML files, and are used +to find specific views within the view tree. + +- + +Add id attributes for views that your code will be +interacting with + + + TIPS FOR WORKING WITH LAYOUT XML FILES +- + +Add strings to the string.xml resource file + +- + +res > values > strings.xml + +Rowdy Quiz +False +True +Next + + +- + +Use these strings with your views + + + + + + +