This document discusses abstract data types (ADTs), data structures, and generic data structures in Java. It defines ADTs as descriptions of how a data type will work without implementation details. Data structures are implementations of ADTs that organize information, usually in computer memory, for better algorithm efficiency. The document then discusses how Java uses generic types to allow data structures like ArrayList to hold different data types safely and without casting.
core & advanced java classes in Mumbai
best core & advanced java classes in Mumbai with job assistance.
our features are:
expert guidance by it industry professionals
lowest fees of 5000
practical exposure to handle projects
well equiped lab
after course resume writing guidance
core & advanced java classes in Mumbai
best core & advanced java classes in Mumbai with job assistance.
our features are:
expert guidance by it industry professionals
lowest fees of 5000
practical exposure to handle projects
well equiped lab
after course resume writing guidance
Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...John Andrews
SlideShare Description for "Chatty Kathy - UNC Bootcamp Final Project Presentation"
Title: Chatty Kathy: Enhancing Physical Activity Among Older Adults
Description:
Discover how Chatty Kathy, an innovative project developed at the UNC Bootcamp, aims to tackle the challenge of low physical activity among older adults. Our AI-driven solution uses peer interaction to boost and sustain exercise levels, significantly improving health outcomes. This presentation covers our problem statement, the rationale behind Chatty Kathy, synthetic data and persona creation, model performance metrics, a visual demonstration of the project, and potential future developments. Join us for an insightful Q&A session to explore the potential of this groundbreaking project.
Project Team: Jay Requarth, Jana Avery, John Andrews, Dr. Dick Davis II, Nee Buntoum, Nam Yeongjin & Mat Nicholas
Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...John Andrews
SlideShare Description for "Chatty Kathy - UNC Bootcamp Final Project Presentation"
Title: Chatty Kathy: Enhancing Physical Activity Among Older Adults
Description:
Discover how Chatty Kathy, an innovative project developed at the UNC Bootcamp, aims to tackle the challenge of low physical activity among older adults. Our AI-driven solution uses peer interaction to boost and sustain exercise levels, significantly improving health outcomes. This presentation covers our problem statement, the rationale behind Chatty Kathy, synthetic data and persona creation, model performance metrics, a visual demonstration of the project, and potential future developments. Join us for an insightful Q&A session to explore the potential of this groundbreaking project.
Project Team: Jay Requarth, Jana Avery, John Andrews, Dr. Dick Davis II, Nee Buntoum, Nam Yeongjin & Mat Nicholas
Opendatabay - Open Data Marketplace.pptxOpendatabay
Opendatabay.com unlocks the power of data for everyone. Open Data Marketplace fosters a collaborative hub for data enthusiasts to explore, share, and contribute to a vast collection of datasets.
First ever open hub for data enthusiasts to collaborate and innovate. A platform to explore, share, and contribute to a vast collection of datasets. Through robust quality control and innovative technologies like blockchain verification, opendatabay ensures the authenticity and reliability of datasets, empowering users to make data-driven decisions with confidence. Leverage cutting-edge AI technologies to enhance the data exploration, analysis, and discovery experience.
From intelligent search and recommendations to automated data productisation and quotation, Opendatabay AI-driven features streamline the data workflow. Finding the data you need shouldn't be a complex. Opendatabay simplifies the data acquisition process with an intuitive interface and robust search tools. Effortlessly explore, discover, and access the data you need, allowing you to focus on extracting valuable insights. Opendatabay breaks new ground with a dedicated, AI-generated, synthetic datasets.
Leverage these privacy-preserving datasets for training and testing AI models without compromising sensitive information. Opendatabay prioritizes transparency by providing detailed metadata, provenance information, and usage guidelines for each dataset, ensuring users have a comprehensive understanding of the data they're working with. By leveraging a powerful combination of distributed ledger technology and rigorous third-party audits Opendatabay ensures the authenticity and reliability of every dataset. Security is at the core of Opendatabay. Marketplace implements stringent security measures, including encryption, access controls, and regular vulnerability assessments, to safeguard your data and protect your privacy.
Explore our comprehensive data analysis project presentation on predicting product ad campaign performance. Learn how data-driven insights can optimize your marketing strategies and enhance campaign effectiveness. Perfect for professionals and students looking to understand the power of data analysis in advertising. for more details visit: https://bostoninstituteofanalytics.org/data-science-and-artificial-intelligence/
Quantitative Data AnalysisReliability Analysis (Cronbach Alpha) Common Method...2023240532
Quantitative data Analysis
Overview
Reliability Analysis (Cronbach Alpha)
Common Method Bias (Harman Single Factor Test)
Frequency Analysis (Demographic)
Descriptive Analysis
1. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 1
Topic 12
ADTS, Data Structures, Java Collections
and Generic Data Structures
"Get your data structures correct
first, and the rest of the program will
write itself."
- David Jones
2. Abstract Data Types
Abstract Data Types (aka ADTs) are
descriptions of how a data type will work
without implementation details
Example, Stack at NIST DADS
– http://xw2k.nist.gov/dads/HTML/stack.html
Description can be a formal, mathematical
description
Java interfaces are a form of ADTs
– some implementation details start to creep in
CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 2
3. CS 307 Fundamentals of
Computer Science ADTs and Data Structures
3
Data Structures
A Data Structure is:
– an implementation of an abstract data type and
– "An organization of information, usually in
computer memory", for better algorithm
efficiency."
aList
List Object
size
myElements
5
A C E B A
0 1 2 3 4 5 6 7 8 9 10
4. CS 307 Fundamentals of
Computer Science ADTs and Data Structures
4
Data Structure Concepts
Data Structures are containers:
– they hold other data
– arrays are a data structure
– ... so are lists
Other types of data structures:
– stack, queue, tree,
binary search tree, hash table,
dictionary or map, set, and on and on
– www.nist.gov/dads/
– en.wikipedia.org/wiki/List_of_data_structures
Different types of data structures are optimized for
certain types of operations
5. CS 307 Fundamentals of
Computer Science ADTs and Data Structures
5
Core Operations
Data Structures will have 3 core operations
– a way to add things
– a way to remove things
– a way to access things
Details of these operations depend on the
data structure
– Example: List, add at the end, access by
location, remove by location
More operations added depending on what
data structure is designed to do
6. CS 307 Fundamentals of
Computer Science ADTs and Data Structures
6
ADTs and Data Structures in
Programming Languages
Modern programming languages usually
have a library of data structures
– Java collections framework
– C++ standard template library
– .Net framework (small portion of VERY large
library)
– Python lists and tuples
– Lisp lists
7. CS 307 Fundamentals of
Computer Science ADTs and Data Structures
7
Data Structures in Java
Part of the Java Standard Library is the
Collections Framework
– In class we will create our own data structures
and discuss the data structures that exist in Java
A library of data structures
Built on two interfaces
– Collection
– Iterator
http://java.sun.com/j2se/1.5.0/docs/guide/coll
ections/index.html
8. CS 307 Fundamentals of
Computer Science ADTs and Data Structures
8
The Java Collection interface
A generic collection
Can hold any object data type
Which type a particular collection will hold is
specified when declaring an instance of a
class that implements the Collection interface
Helps guarantee type safety at compile time
9. CS 307 Fundamentals of
Computer Science ADTs and Data Structures
9
Methods in the Collection interface
public interface Collection<E>
{ public boolean add(E o)
public boolean addAll(Collection<? extends E> c)
public void clear()
public boolean contains(Object o)
public boolean containsAll(Collection<?> c)
public boolean equals(Object o)
public int hashCode()
public boolean isEmpty()
public Iterator<E> iterator()
public boolean remove(Object o)
public boolean removeAll(Collection<?> c)
public boolean retainAll(Collection<?> c)
public int size()
public Object[] toArray()
public <T> T[] toArray(T[] a)
}
10. CS 307 Fundamentals of
Computer Science ADTs and Data Structures
10
The Java ArrayList Class
Implements the List interface and uses an
array as its internal storage container
It is a list, not an array
The array that actual stores the elements of
the list is hidden, not visible outside of the
ArrayList class
all actions on ArrayList objects are via the
methods
ArrayLists are generic.
– They can hold objects of any type!
11. CS 307 Fundamentals of
Computer Science ADTs and Data Structures
11
ArrayList's (Partial)
Class Diagram
AbstractCollection
Object
AbstractList
ArrayList
Iterable
Collection
List
12. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 12
Back to our Array Based List
Started with a list of ints
Don't want to have to write a new list class
for every data type we want to store in lists
Moved to an array of Objects to store the
elements of the list
// from array based list
private Object[] myCon;
13. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 13
Using Object
In Java, all classes inherit from exactly one
other class except Object which is at the top
of the class hierarchy
Object variables can point at objects of their
declared type and any descendants
– polymorphism
Thus, if the internal storage container is of
type Object it can hold anything
– primitives handled by wrapping them in objects.
int – Integer, char - Character
14. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 14
Difficulties with Object
Creating generic containers using the Object
data type and polymorphism is relatively
straight forward
Using these generic containers leads to
some difficulties
– Casting
– Type checking
Code examples on the following slides
15. Attendance Question 1
What is output by the following code?
ArrayList list = new ArrayList();
String name = "Olivia";
list.add(name);
System.out.print( list.get(0).charAt(2) );
A. i
B. O
C. l
D. No output due to syntax error.
E. No output due to runtime error.
CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 15
16. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 16
Code Example - Casting
Assume a list class
ArrayList li = new ArrayList();
li.add(“Hi”);
System.out.println( li.get(0).charAt(0) );
// previous line has syntax error
// return type of get is Object
// Object does not have a charAt method
// compiler relies on declared type
System.out.println(
((String)li.get(0)).charAt(0) );
// must cast to a String
17. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 17
Code Example – type checking
//pre: all elements of li are Strings
public void printFirstChar(ArrayList li){
String temp;
for(int i = 0; i < li.size(); i++)
{ temp = (String)li.get(i);
if( temp.length() > 0 )
System.out.println(
temp.charAt(0) );
}
}
// what happens if pre condition not met?
18. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 18
Too Generic?
Does the compiler allow this?
ArrayList list = new ArrayList();
list.add( "Olivia" );
list.add( new Integer(12) );
list.add( new Rectangle() );
list.add( new ArrayList() );
A. Yes
B. No
19. Is this a bug or a feature?
CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 19
20. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 20
"Fixing" the Method
//pre: all elements of li are Strings
public void printFirstChar(ArrayList li){
String temp;
for(int i = 0; i < li.size(); i++){
if( li.get(i) instanceof String ){
temp = (String)li.get(i);
if( temp.length() > 0 )
System.out.println(
temp.charAt(0) );
}
}
}
21. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 21
Generic Types
Java has syntax for
parameterized data types
Referred to as Generic Types in most of the
literature
A traditional parameter has a data type and
can store various values just like a variable
public void foo(int x)
Generic Types are like parameters, but the
data type for the parameter is data type
– like a variable that stores a data type
22. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 22
Making our Array List Generic
Data type variables declared in class header
public class GenericList<E> {
The <E> is the declaration of a data type
parameter for the class
– any legal identifier: Foo, AnyType, Element,
DataTypeThisListStores
– Sun style guide recommends terse identifiers
The value E stores will be filled in whenever
a programmer creates a new GenericList
GenericList<String> li =
new GenericList<String>();
23. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 23
Modifications to GenericList
instance variable
private E[] myCon;
Parameters on
– add, insert, remove, insertAll
Return type on
– get
Changes to creation of internal storage
container
myCon = (E[])new Object[DEFAULT_SIZE];
Constructor header does not change
24. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 24
Using Generic Types
Back to Java's ArrayList
ArrayList list1 = new ArrayList();
– still allowed, a "raw" ArrayList
– works just like our first pass at GenericList
– casting, lack of type safety
25. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 25
Using Generic Types
ArrayList<String> list2 =
new ArrayList<String>();
– for list2 E stores String
list2.add( "Isabelle" );
System.out.println(
list2.get(0).charAt(2) ); //ok
list2.add( new Rectangle() );
// syntax error
26. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 26
Parameters and Generic Types
Old version
//pre: all elements of li are Strings
public void printFirstChar(ArrayList li){
New version
//pre: none
public void printFirstChar(ArrayList<String> li){
Elsewhere
ArrayList<String> list3 = new ArrayList<String>();
printFirstChar( list3 ); // ok
ArrayList<Integer> list4 = new ArrayList<Integer>();
printFirstChar( list4 ); // syntax error
27. CS 307 Fundamentals of
Computer Science
ADTS and Generic Data Structures 27
Generic Types and Subclasses
ArrayList<ClosedShape> list5 =
new ArrayList<ClosedShape>();
list5.add( new Rectangle() );
list5.add( new Square() );
list5.add( new Circle() );
// all okay
list5 can store ClosedShapes and any
descendants of ClosedShape