Dr. Alexandra I. Cristea acristea/ CS 253: Topics in Database Systems: C3.
CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... ·...
Transcript of CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... ·...
![Page 1: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/1.jpg)
CS 253: Parallel Functional Programming
w/ Java & Android: Overview & Logistics
Douglas C. Schmidt
www.dre.vanderbilt.edu/~schmidt
Professor of Computer Science
Institute for Software Integrated Systems
Vanderbilt University Nashville, Tennessee, USA
![Page 2: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/2.jpg)
2
Learning Objectives in this Lesson• Understand the course topics &
logistics
• Course philosophy
• Course contents
• Structure of the lecture material
• Overview of the assignments & assessments
• Setting up the Java & Android IDE on Android Studio
• Accessing Android & Javasource code
![Page 3: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/3.jpg)
3
Course Philosophy
![Page 4: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/4.jpg)
4
• There’s a growing need for software developers who know how to write parallel programs for a range of computing platforms
• e.g., mobile devices, laptops, desktops, & cloud environments
Course Philosophy
![Page 5: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/5.jpg)
5
• Demand is driven by software/hardware infrastructure advances
Course Philosophy
See www.gotw.ca/publications/concurrency-ddj.htm
![Page 6: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/6.jpg)
6
• Effective techniques & practices for developing parallel programs & mobile apps are not best learned through generalities & platitudes
Course Philosophy
“Sitting & thinking” is not sufficient…
![Page 7: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/7.jpg)
7
• Instead, it’s better to see by example how these programs can be made
• easier to write & read,
• easier to maintain & modify,
• more efficient & resilient
by applying time-proven software patterns & object-oriented & functional design & programming techniques
Course Philosophy
This course involves lots of hands-on software development & testing!
![Page 8: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/8.jpg)
8
Summary of theCourse Contents
![Page 9: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/9.jpg)
9
Summary of Course Contents• Key Java parallelism frameworks
Also covers Java object-oriented & functional programming language features
Reactive Streams
Parallel Streams
Completable Futures
![Page 10: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/10.jpg)
12
Summary of Course Contents• Key Java parallelism frameworks
• Patterns for parallel programming
See www.dre.Vanderbilt.edu/~Schmidt/POSA
![Page 11: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/11.jpg)
13
Summary of Course Contents• Key Java parallelism frameworks
• Patterns for parallel programming
• We assume you know (or can quickly learn) Java, Android, & Git
See www.coursera.org/specializations/android-app-development
![Page 12: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/12.jpg)
14
Structure of the Lecture Material
![Page 13: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/13.jpg)
15
• This course has three main modules
Structure of the Lecture Material
Section Topics
Java functional programming features
• Coverage of Java functional programming features, such as lambda expressions, method references, & functional interfaces
• Assume you know Java’s support for abstraction, inheritance, & polymorphism
![Page 14: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/14.jpg)
16
• This course has three main modules
Structure of the Lecture Material
Section Topics
Java functional programming features
• Coverage of Java functional programming features, such as lambda expressions, method references, & functional interfaces
• Assume you know Java’s support for abstraction, inheritance, & polymorphism
Java Parallelism • Coverage of Java 8 parallelism frameworks, e.g.
• Java sequential & parallel streams
• Java completable futures
• Reactive streams (e.g., RxJava & Project Reactor)
![Page 15: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/15.jpg)
18
• This course has three main modules
Structure of the Lecture Material
Section Topics
Java functional programming features
• Coverage of Java functional programming features, such as lambda expressions, method references, & functional interfaces
• Assume you know Java’s support for abstraction, inheritance, & polymorphism
Java Parallelism • Coverage of Java 8 parallelism frameworks, e.g.
• Java sequential & parallel streams
• Java completable futures
• Reactive streams (e.g., RxJava & Project Reactor)
Software Patterns • Parallel programming & communication patterns
![Page 16: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/16.jpg)
19
• This course has three main modules
• Each module is composed of lessons
Structure of the Lecture Material
![Page 17: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/17.jpg)
20
• This course has three main modules
• Each module is composed of lessons
• Each lessonis composed of parts
Structure of the Lecture Material
![Page 18: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/18.jpg)
21
• This course has three main modules
• Each module is composed of lessons
• Each lessonis composed of parts
• Each part is a single lecture
Structure of the Lecture Material
Screencasts of each lesson “part” & PDF versions of the slides will be uploaded to www.dre.vanderbilt.edu/~schmidt/cs253#lectures
![Page 19: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/19.jpg)
23
• This course has three main modules
• Each module is composed of lessons
• Each lessonis composed of parts
• Each part is a single lecture
• Each part is composed ofsegments
Structure of the Lecture Material
We’ll leverage YouTube’s “progress bar” feature to demarcate segments!
![Page 20: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/20.jpg)
24
• There will be bi-weekly quizzes on material covered in the lectures
Structure of the Lecture Material
![Page 21: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/21.jpg)
25
• There will be bi-weekly quizzes on material covered in the lectures
• 1st quiz will be on Wednesday,September 2nd
Structure of the Lecture Material
All quizzes are “closed book” & are given on Brightspace
![Page 22: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/22.jpg)
26
• There will be bi-weekly quizzes on material covered in the lectures
• 1st quiz will be on Wednesday,September 2nd
• We strive to hand back & review quizzes at the start of next class
Structure of the Lecture Material
One of the benefits of a smaller class ;-)
![Page 23: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/23.jpg)
27
• There will be bi-weekly quizzes on material covered in the lectures
• 1st quiz will be on Wednesday,September 2nd
• We strive to hand back & review quizzes at the start of next class
Structure of the Lecture Material
I recommend that you study for quizzes by reviewing slides & watching screencasts available at www.dre.vanderbilt.edu/~schmidt/cs253#lectures
![Page 24: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/24.jpg)
30
• There may be a cumulative final exam that covers all the lectures
• The focus will be on the lastweeks of the semester
Structure of the Lecture Material
The final exam is 2 to 5pm, Tuesday, December 10th via Brightspace
![Page 25: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/25.jpg)
31
Overview of Assignments & Assessments
![Page 26: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/26.jpg)
32
• Programming assignments should be written in Java 8 using Android Studio
You can use any IDE, but your final submission must build & run with the latest Android Studio & Android 11/10+ (API 30)
Overview of Assignments & Assessments
![Page 27: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/27.jpg)
33
• Programming assignments should be written in Java 8 using Android Studio
• The Java 8 runtime environment (JRE) is pre-installed with Android
See github.com/douglascraigschmidt/CS253/wiki/Installing-Software
Overview of Assignments & Assessments
![Page 28: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/28.jpg)
34
• Android programming assignments must be submitted using Android Studio
• A wizard for creating new apps• A visual editor for creating GUIs• An editor for manipulating
Android XML descriptors needed for your app
• An emulator for testing your apps on your PC
• A debugger for finding errors in the emulator or on a device
See developer.android.com/sdk
Overview of Assignments & Assessments
![Page 29: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/29.jpg)
35
• Android programming assignments must be submitted using Android Studio
• Please install Android 11/10+ (API level 30)
See en.wikipedia.org/wiki/Android_11
Overview of Assignments & Assessments
![Page 30: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/30.jpg)
36
• All source code for assignments & examples available at GitHub
Overview of Assignments & Assessments
Go to GitHub at github.com/douglascraigschmidt/CS253
![Page 31: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/31.jpg)
37
• All source code for assignments & examples available at GitHub
• You will need to learn how to use GitLab et al.
Overview of Assignments & Assessments
![Page 32: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/32.jpg)
38
• All source code for assignments & examples available at GitHub
• You will need to learn how to use GitLab et al.
• Be prepared to update yourrepositories occasionally
Overview of Assignments & Assessments
![Page 33: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/33.jpg)
39
• Assignments will provide a range of experience with Java 8 & Android parallel programs
Overview of Assignments & Assessments
Go to GitHub at github.com/douglascraigschmidt/CS253
![Page 34: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/34.jpg)
40
• Assignments will provide a range of experience with Java 8 & Android parallel programs
• Implement an image crawler app on Androidusing various Java 8 features, e.g.
• Java lambda expressions, method references, & functional interfaces
• Java sequential streams
• Java parallel streams
• Java completable futures
• Java reactive streams
Overview of Assignments & Assessments
The topics covered by the assignments may change during the semester
![Page 35: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/35.jpg)
41
• Assignment assessments will be done via reviews by course staff
Overview of Assignments & Assessments
![Page 36: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/36.jpg)
42
• Assignment assessments will be done via reviews by course staff
• Assignments must be submitted on time or you’ll get a 0
See github.com/douglascraigschmidt/CS253/wiki/CS-253-FAQ
Overview of Assignments & Assessments
![Page 37: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/37.jpg)
43
• Assignment assessments will be done via reviews by course staff
• Assignments must be submitted on time or you’ll get a 0
• Your initial submission mustcompile & be largely completeor you won’t get a review ora final grade
Overview of Assignments & Assessments
SubmitProgram
Feedback tostudents
Final grade
Instructor
Review
Assignment
Due
Revise
Program
ResubmitProgram
TA/Grader
Review
![Page 38: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/38.jpg)
44
• Assignment assessments will be done via reviews by course staff
• Assignments must be submitted on time or you’ll get a 0
• Your initial submission mustcompile & be largely completeor you won’t get a review ora final grade
• You will not receive a grade for assignments if you do notattend class regularly
Overview of Assignments & Assessments
See www.dre.vanderbilt.edu/~schmidt/cs253/assignments.html
![Page 39: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/39.jpg)
45
• Assignment assessments will be done via reviews by course staff
• Assignments must be submitted on time or you’ll get a 0
• Your initial submission mustcompile & be largely completeor you won’t get a review ora final grade
• You will not receive a grade for assignments if you do notattend class regularly
• Work must be your own
• This goes for quizzes &programming assignments
Overview of Assignments & Assessments
www.vanderbilt.edu/student_handbook/the-honor-system#statement-of-the-honor-code
![Page 40: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/40.jpg)
46
• Assessment criteria Assessment Category %
Execution correctness 40%
Structure (e.g., modularization, information hiding, etc.)
30%
Insightful programming (e.g., developing reusable class components, etc.)
10%
Consistent style (e.g., capitalization, indenting, etc.)
10%
Appropriate commenting style 10%
Overview of Assignments & Assessments
See www.dre.vanderbilt.edu/~schmidt/cs253/assignments.html
![Page 41: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/41.jpg)
47
• The relative weighting of each portion of the course is:
• 40% Quizzes
• 40% Programming projects
• 10% Final exam
• 10% Participation
Overview of Assignments & Assessments
These weightings may change, depending on various factors
![Page 42: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/42.jpg)
48
• The relative weighting of each portion of the course is:
• 40% Quizzes
• 40% Programming projects
• 10% Final exam
• 10% Participation
• Participation is ~5% attendence &involvement & ~5% “following directions”
Overview of Assignments & Assessments
![Page 43: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/43.jpg)
49
• The relative weighting of each portion of the course is:
• 40% Quizzes
• 40% Programming projects
• 10% Final exam
• 10% Participation
• Participation is ~5% attendence &involvement & ~5% “following directions”
Overview of Assignments & Assessments
Attendance also affects other aspects of your quiz
& assignment grades
See www.dre.vanderbilt.edu/~schmidt/cs253/work-summary.html#quizzes& www.dre.vanderbilt.edu/~schmidt/cs253/assignments.html
![Page 44: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/44.jpg)
50
• The relative weighting of each portion of the course is:
• 40% Quizzes
• 40% Programming projects
• 10% Final exam
• 10% Participation
• Participation is ~5% attendence &involvement & ~5% “following directions”
Overview of Assignments & Assessments
Don’t expect to get an A in this class if you do not actively participate!!!!
![Page 45: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/45.jpg)
51
Setting Up the Android &
Java IDE on Android Studio
![Page 46: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/46.jpg)
52
Installing Eclipse Java/Android Developer Tools• To use Android, you need to install the latest release of Android Studio
See developer.android.com/studio
![Page 47: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/47.jpg)
53
Installing Eclipse Java/Android Developer Tools• Installation steps
![Page 48: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/48.jpg)
54
Installing Eclipse Java/Android Developer Tools• Installation steps
• Download & install the latestversion of Android Studio
See developer.android.com/studio
![Page 49: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/49.jpg)
55
Add Components to the SDK• Launch the Android Studio
SDK Manager
• Select the “R” version of Android (11/10+, API 30)
See developer.android.com/studio/intro/update.html
![Page 50: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/50.jpg)
56
Add Components to the SDK• Launch the Android Studio Virtual Device Manager
• Create an Android API 30 emulator
developer.android.com/tools/devices/managing-avds.html
![Page 51: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/51.jpg)
57
Intel HAXM Virtualization Driver• Requirements
• Intel virtualization extensions (VT, VT-x, vmx)
• AMD virtualization extensions (AMD-v, SVM) [only supported on Linux]
• Download an x86 emulator image
• Windows & Mac OSX
• <sdk>/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.exe/dmg
• Linux
• Install KVM & pass “-enable-kvm” flag to emulator when starting
developer.android.com/studio/run/emulator-acceleration
![Page 52: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/52.jpg)
58
Accessing Java &
Android Source Code
![Page 53: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/53.jpg)
59
Accessing Java & Android Source Code• Android source code is available
• For browsing android.googlesource.com
![Page 54: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/54.jpg)
60
Accessing Java & Android Source Code• Android source code is available
• For browsing android.googlesource.com
• For downloading source.android.com
![Page 55: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/55.jpg)
61
Accessing Java & Android Source Code• Java 8 source code is available
• For browsingzgrepcode.com
![Page 56: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/56.jpg)
62
Accessing Java & Android Source Code• Java 8 source code is available
• For browsingzgrepcode.com
• For downloading jdk8.java.net/download.html
![Page 57: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/57.jpg)
63
Summary
![Page 58: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/58.jpg)
64
• You will get out of this course what you put into it
Summary
![Page 59: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/59.jpg)
65
• You will get out of this course what you put into it
• Be prepared to work hard
Summary
![Page 60: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/60.jpg)
66
• You will get out of this course what you put into it
• Be prepared to work hard
• Do not miss deadlines…
Summary
![Page 61: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/61.jpg)
67
• You will get out of this course what you put into it
• Be prepared to work hard
• Do not miss deadlines…
• Participate in discussions in class & on piazza
Summary
See piazza.com/vanderbilt/fall2020/cs253
![Page 62: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/62.jpg)
70
• You will get out of this course what you put into it
• Be prepared to work hard
• Do not miss deadlines…
• Participate in discussions in class & on piazza
• Avail yourself of available resources CS
253
Office Hours
Textbooks
Video
Lectures
Slide
Links
Online
Forums
Summary
See www.dre.vanderbilt.edu/~schmidt/cs253
![Page 63: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/63.jpg)
72
• You will get out of this course what you put into it
• Be prepared to work hard
• Do not miss deadlines…
• Participate in discussions in class & on piazza
• Avail yourself of available resources
Please resist the urge to email me directly unless it’s a confidential matter or you’d like to schedule a meeting!
Summary
![Page 64: CS 253: Parallel Functional Programming w/ Java & Android: …schmidt/cs253/2020-PDFs/CS-253... · 2020. 8. 24. · 16 •This course has three main modules Structure of the Lecture](https://reader033.fdocuments.in/reader033/viewer/2022060901/609e184ba5a332324e49cc86/html5/thumbnails/64.jpg)
73
• There are abundant opportunities!
See www.naceweb.org/job-market/compensation/stem-majors-projected-to-be-class-of-2019s-top-paid/
Summary