cs 891: parallel functional programming w/ java & android: … › ~schmidt › cs891f ›...
TRANSCRIPT
![Page 1: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/1.jpg)
CS 891: 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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/3.jpg)
3
Course Philosophy
![Page 4: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/8.jpg)
8
Summary of theCourse Contents
![Page 9: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/9.jpg)
9
Summary of Course Contents• Key Java parallelism frameworks
Also covers Java object-oriented & functional programming language features
Fork-Join Pools
Parallel Streams
Completable Futures
![Page 10: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/12.jpg)
14
Structure of the Lecture Material
![Page 13: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 fork-join framework
• Java completable futures
![Page 15: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 fork-join framework
• Java completable futures
Software Patterns • Parallel programming & communication patterns
![Page 16: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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/cs891f#lectures
![Page 19: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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
![Page 20: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/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 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/21.jpg)
25
• There will be bi-weekly quizzes on material covered in the lectures
• 1st quiz will be on Wednesday,September 11th
Structure of the Lecture Material
All quizzes (& the final) are “closed book”
![Page 22: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/22.jpg)
26
• There will be bi-weekly quizzes on material covered in the lectures
• 1st quiz will be on Wednesday,September 11th
• We’ll hand back & review quizzes at the start of the next class
Structure of the Lecture Material
One of the benefits of a smaller class ;-)
![Page 23: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/23.jpg)
27
• There will be bi-weekly quizzes on material covered in the lectures
• 1st quiz will be on Wednesday,September 11th
• We’ll hand back & review quizzes at the start of the 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/cs891f#lectures
![Page 24: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/24.jpg)
28
• There will be bi-weekly quizzes on material covered in the lectures
• 1st quiz will be on Wednesday,September 11th
• We’ll hand back & review quizzes at the start of the next class
• If you don’t attend the next class & don’t get your quiz you will be penalized 50%
Structure of the Lecture Material
See www.dre.vanderbilt.edu/~schmidt/cs891f/work-summary.html#quizzes
![Page 25: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/25.jpg)
29
• There will be bi-weekly quizzes on material covered in the lectures
• 1st quiz will be on Wednesday,September 11th
• We’ll hand back & review quizzes at the start of the next class
• If you don’t attend the next class & don’t get your quiz you will be penalized 50%
• Likewise, if you just show upfor the quiz & don’t attendclass you’ll be penalized 50%
Structure of the Lecture Material
See www.dre.vanderbilt.edu/~schmidt/cs891f/work-summary.html#quizzes
![Page 26: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/26.jpg)
30
• There will 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 9am to noon, Tuesday, December 10th in this room
![Page 27: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/27.jpg)
31
Overview of the Assignments & Assessments
![Page 28: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/28.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 Pie 9 (API 28)
Overview of Assignments & Assessments
![Page 29: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/29.jpg)
33
• Programming assignments should be written in Java 8 using Android Studio
• You’ll need to install the Java 8runtime environment (JRE)
See github.com/douglascraigschmidt/CS891/wiki/Installing-Software
Overview of Assignments & Assessments
![Page 30: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/30.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 31: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/31.jpg)
35
• Android programming assignments must be submitted using Android Studio
• Please install Android 9.x Pie (API level 28)
See en.wikipedia.org/wiki/Android_Pie
Overview of Assignments & Assessments
![Page 32: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/32.jpg)
36
• All source code for assignments & examples available at GitHub
Overview of Assignments & Assessments
Go to GitHub at github.com/douglascraigschmidt/CS891
![Page 33: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/33.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 34: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/34.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 35: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/35.jpg)
39
• Assignments will provide a range of experience with Java 8 & Android parallel programs
Overview of Assignments & Assessments
See github.com/douglascraigschmidt/CS891/tree/master/assignments
![Page 36: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/36.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 fork-join framework
• Java parallel streams
• Java completable futures
Overview of Assignments & Assessments
The topics covered by the assignments may change during the semester
![Page 37: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/37.jpg)
41
• Assignment assessments will be done via reviews by course staff
Overview of Assignments & Assessments
![Page 38: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/38.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/CS891/wiki/CS-891-FAQ
Overview of Assignments & Assessments
![Page 39: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/39.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 40: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/40.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/cs891f/assignments.html
![Page 41: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/41.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 42: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/42.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/cs891f/assignments.html
![Page 43: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/43.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 44: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/44.jpg)
48
• The relative weighting of each portion of the course is:
• 40% Quizzes
• 40% Programming projects
• 10% Final exam
• 10% Participation
• Participation is roughly 5% attendance & 5% in-class involvement in discussions
Overview of Assignments & Assessments
![Page 45: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/45.jpg)
49
• The relative weighting of each portion of the course is:
• 40% Quizzes
• 40% Programming projects
• 10% Final exam
• 10% Participation
• Participation is roughly 5% attendance & 5% in-class involvement in discussions
Overview of Assignments & Assessments
Attendance also affects other aspects of your quiz
& assignment grades
See www.dre.vanderbilt.edu/~schmidt/cs891f/work-summary.html#quizzes& www.dre.vanderbilt.edu/~schmidt/cs891f/assignments.html
![Page 46: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/46.jpg)
50
• The relative weighting of each portion of the course is:
• 40% Quizzes
• 40% Programming projects
• 10% Final exam
• 10% Participation
• Participation is roughly 5% attendance & 5% in-class involvement in discussions
Overview of Assignments & Assessments
Don’t expect to get an A in this class if you do not actively participate!!!!
![Page 47: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/47.jpg)
51
Setting Up the Android &
Java IDE on Android Studio
![Page 48: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/48.jpg)
52
Installing Eclipse Java/Android Developer Tools• To install Android, you need to install the latest release of Android Studio
See developer.android.com/studio
![Page 49: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/49.jpg)
53
Installing Eclipse Java/Android Developer Tools• Installation steps
![Page 50: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/50.jpg)
54
Installing Eclipse Java/Android Developer Tools• Installation steps
• Download & install the Java Standard Edition JDK & JRE 8
www.oracle.com/technetwork/java/javase/downloads
![Page 51: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/51.jpg)
55
Installing Eclipse Java/Android Developer Tools• Installation steps
• Download & install the Java Standard Edition JDK & JRE 8
• Download & install the latestversion of Android Studio
See developer.android.com/studio
![Page 52: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/52.jpg)
56
Add Components to the SDK• Launch the Android Studio
SDK Manager
• Select “Pie” version ofAndroid (9, API 28)
See developer.android.com/studio/intro/update.html
![Page 53: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/53.jpg)
57
Add Components to the SDK• Launch the Android Studio Virtual Device Manager
• Create an Android API 28 emulator
developer.android.com/tools/devices/managing-avds.html
![Page 54: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/54.jpg)
58
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 55: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/55.jpg)
59
Accessing Java &
Android Source Code
![Page 56: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/56.jpg)
60
Accessing Java & Android Source Code• Android source code is available
• For browsing android.googlesource.com
![Page 57: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/57.jpg)
61
Accessing Java & Android Source Code• Android source code is available
• For browsing android.googlesource.com
• For downloading source.android.com
![Page 58: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/58.jpg)
62
Accessing Java & Android Source Code• Java 8 source code is available
• For browsingzgrepcode.com
![Page 59: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/59.jpg)
63
Accessing Java & Android Source Code• Java 8 source code is available
• For browsingzgrepcode.com
• For downloading jdk8.java.net/download.html
![Page 60: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/60.jpg)
64
Summary
![Page 61: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/61.jpg)
65
• You will get out of this course what you put into it
Summary
![Page 62: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/62.jpg)
66
• You will get out of this course what you put into it
• Be prepared to work hard
Summary
![Page 63: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/63.jpg)
67
• You will get out of this course what you put into it
• Be prepared to work hard
• Do not miss deadlines…
Summary
![Page 64: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/64.jpg)
68
• 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/fall2019/cs891
![Page 65: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/65.jpg)
69
• 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
• No laptops/phones in class unless explicitly allowed
Summary
Failure to comply with this rule will cost you participation points..
![Page 66: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/66.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
• No laptops/phones in class unless explicitly allowed
• Avail yourself of available resources
CS 891
Office Hours
Textbooks
Video
Lectures
Slide
Links
Online
Forums
Summary
See www.dre.vanderbilt.edu/~schmidt/cs891f
![Page 67: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/67.jpg)
71
• 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
• No laptops/phones in class unless explicitly allowed
• 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 68: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/68.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
• No laptops/phones in class unless explicitly allowed
• Avail yourself of available resources
• There are abundant opportunities!
See www.naceweb.org/job-market/compensation/the-top-paid-majors-for-the-class-of-2018
Summary
![Page 69: CS 891: Parallel Functional Programming w/ Java & Android: … › ~schmidt › cs891f › 2019-PDFs › CS-891-co… · 28 •There will be bi-weekly quizzes on material covered](https://reader030.vdocuments.us/reader030/viewer/2022040205/5f0cb9ee7e708231d436d490/html5/thumbnails/69.jpg)
73
Summary• If there’s an emergency, pay attention to
the escape route!
• See engineering.vanderbilt.edu/about/evacuationplans.php