+ All Categories
Home > Documents > CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of...

CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of...

Date post: 24-Jun-2020
Category:
Upload: others
View: 8 times
Download: 0 times
Share this document with a friend
73
CS 891: Introduction to Parallel Java Programming Overview & Logistics Douglas C. Schmidt [email protected] www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA
Transcript
Page 1: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

CS 891: Introduction to Parallel Java Programming Overview & Logistics

Douglas C. [email protected]

www.dre.vanderbilt.edu/~schmidt

Professor of Computer ScienceInstitute for Software Integrated Systems

Vanderbilt University Nashville, Tennessee, USA

Page 2: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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

source code

Page 3: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

3

Course Philosophy

Page 4: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

5

• Demand is driven by software/hardware infrastructure advances• e.g., multi-core & many

core processors, mass storage, ubiquitous network connectivity, & commodity hardware & software platforms

Course Philosophy

See www.gotw.ca/publications/concurrency-ddj.htm

Page 6: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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 a lot of hands-on software development & testing

Page 8: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

8

Summary of theCourse Contents

Page 9: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

9

Summary of Course Contents• Key Java parallelism frameworks

Including Java 8 object-oriented & functional programming language features

Fork-Join Pools

Parallel Streams

Completable Futures

Page 10: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

10

Summary of Course Contents• Key Java parallelism frameworks• Some Android UI & inter-process

communication (IPC) mechanisms

See www.coursera.org/specializations/android-app-development for more instruction on Android

Page 11: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

11

Summary of Course Contents• Key Java parallelism frameworks• Some Android UI & inter-process

communication (IPC) mechanisms• Some mobile & web communication

mechanisms

Socket

Socket

Page 12: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

12

Summary of Course Contents• Key Java parallelism frameworks• Some Android UI & inter-process

communication (IPC) mechanisms• Some mobile & web communication

mechanisms• Patterns/frameworks for parallel

programming

Page 13: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

13

Summary of Course Contents• Key Java parallelism frameworks• Some Android UI & inter-process

communication (IPC) mechanisms• Some mobile & web communication

mechanisms• Patterns/frameworks for parallel

programming• We assume you know (or can quickly

learn) Java, Android, & Git

See www.coursera.org/specializations/android-app-development

Page 14: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

14

Structure of the Lecture Material

Page 15: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

15

• This course has four main modulesStructure of the Lecture Material

Section TopicsJava object oriented & functional programming features

• Coverage of basic & advanced Java 8 programming features, e.g.• Abstraction, inheritance, & polymorphism• Lamba expressions, method references, & functional

interfaces

Page 16: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

16

• This course has four main modulesStructure of the Lecture Material

Section TopicsJava object oriented & functional programming features

• Coverage of basic & advanced Java 8 programming features, e.g.• Abstraction, inheritance, & polymorphism• Lamba expressions, method references, & functional

interfacesJava Parallelism • Coverage of Java 8 parallelism frameworks, e.g.

• Java fork-join framework• Java parallel (& sequential) streams• Java completable futures

Page 17: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

17

• This course has four main modulesStructure of the Lecture Material

Section TopicsJava object oriented & functional programming features

• Coverage of basic & advanced Java 8 programming features, e.g.• Abstraction, inheritance, & polymorphism• Lamba expressions, method references, & functional

interfacesJava Parallelism • Coverage of Java 8 parallelism frameworks, e.g.

• Java fork-join framework• Java parallel (& sequential) streams• Java completable futures

Mobile Web Communication

• HTTP communication & parsing libraries

Page 18: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

18

• This course has four main modulesStructure of the Lecture Material

Section TopicsJava object oriented & functional programming features

• Coverage of basic & advanced Java 8 programming features, e.g.• Abstraction, inheritance, & polymorphism• Lamba expressions, method references, & functional

interfacesJava Parallelism • Coverage of Java 8 parallelism frameworks, e.g.

• Java fork-join framework• Java parallel (& sequential) streams• Java completable futures

Mobile Web Communication

• HTTP communication & parsing libraries

Software Patterns • Parallel programming & communication patterns

Page 19: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

19

• This course has four main modulesStructure of the Lecture Material

Section TopicsJava object oriented & functional programming features

• Coverage of basic & advanced Java 8 programming features, e.g.• Abstraction, inheritance, & polymorphism• Lamba expressions, method references, & functional

interfacesJava Parallelism • Coverage of Java 8 parallelism frameworks, e.g.

• Java fork-join framework• Java parallel (& sequential) streams• Java completable futures

Mobile Web Communication

• HTTP communication & parsing libraries

Software Patterns • Parallel programming & communication patterns

We will bounce around a bit when covering these topics

Page 20: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

20

• This course has four main modules• Each module is

composed of lessons

Structure of the Lecture Material

Page 21: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

21

• This course has four main modules• Each module is

composed of lessons

• Each lessonis composed of parts

Structure of the Lecture Material

Page 22: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

22

• This course has four 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 23: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

24

• This course has four 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 24: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

25

• There will be a monthly quizzes on material covered in the lectures

Structure of the Lecture Material

Held on the first Wednesday of each month

Page 25: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

26

• There will be a monthly quizzes on material covered in the lectures• 1st quiz will be next Wednesday

Structure of the Lecture Material

All quizzes (& the final) are “closed book”

Page 26: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

27

• There will be a monthly quizzes on material covered in the lectures• 1st quiz will be next Wednesday• 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 27: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

28

• There will be a monthly quizzes on material covered in the lectures• 1st quiz will be next Wednesday• 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 28: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

29

• There will be a monthly quizzes on material covered in the lectures• 1st quiz will be next Wednesday• 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 29: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

30

• There will be a monthly quizzes on material covered in the lectures• 1st quiz will be next Wednesday• 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 30: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

31

• There will be a cumulative final exam that covers all the lectures

Structure of the Lecture Material

The final exam will be held 2 to 5pm, Monday, December 10th in this room

Page 31: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

32

Overview of the Assignments & Assessments

Page 32: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

33

• Programming assignments should be written in Java 8 using Android Studio

You can use any IDE, but your final submission must build/run with Android Studio 3.2.x & Android Pie 9 (API 28)

Overview of Assignments & Assessments

Page 33: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

34

• Programming assignments should be written in Java 8 using Android Studio• Please install the Java 8

runtime environment (JRE)

See github.com/douglascraigschmidt/CS891/wiki/Installing-Software

Overview of Assignments & Assessments

Page 34: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

35

• Android programming assignmentsmust 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 35: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

36

• Android programming assignmentsmust 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 36: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

37

• All source code for assignments & examples available at GitHub

Go to GitHub at github.com/douglascraigschmidt/CS891

Overview of Assignments & Assessments

Page 37: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

38

• 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 38: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

39

• All source code for assignments & examples available at GitHub• You will need to learn how

to use GitLab et al.• Be prepared to update your

repositories occasionally

Overview of Assignments & Assessments

Page 39: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

40

• Assignments will provide a range of experience with Java 8 & Android parallel programs

See github.com/douglascraigschmidt/CS891/tree/master/assignments

Overview of Assignments & Assessments

Page 40: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

41

• Assignments will provide a range of experience with Java 8 & Android parallel programs• Implement an image crawler app on Android

using various Java 8 features, e.g.• Java lambda expressions, method

references, & functional interfaces• Java fork-join framework• Java sequential & parallel streams• Java completable futures

Overview of Assignments & Assessments

The topics covered by the assignments may change a bit during the semester

Page 41: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

42

• Assignment assessments will be done via reviews by course staff

Overview of Assignments & Assessments

Page 42: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

43

• 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 43: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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 must

compile & be largely completeor you won’t get a review ora final grade

Overview of Assignments & Assessments

SubmitProgram

Feedback tostudents

Final grade

InstructorReview

Assignment Due

ReviseProgram

ResubmitProgram

TA/GraderReview

Page 44: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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 must

compile & 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/cs891s/assignments.html

Page 45: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

46

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

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

www.vanderbilt.edu/student_handbook/the-honor-system#statement-of-the-honor-code

Overview of Assignments & Assessments

Page 46: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

47

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

See www.dre.vanderbilt.edu/~schmidt/cs891s/assignments.html

Overview of Assignments & Assessments

Page 47: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

48

• 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 48: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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

Page 49: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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

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 50: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

51

• 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 51: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

52

Setting Up the Android & Java IDE on Android Studio

Page 52: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

53

Installing Eclipse Java/Android Developer Tools• See developer.android.com/sdk

Page 53: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

54

Installing Eclipse Java/Android Developer Tools• Installation steps

Page 54: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

55

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 55: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

56

Installing Eclipse Java/Android Developer Tools• Installation steps

• Download & install the Java Standard Edition JDK & JRE 8

• Download & install Android Studio 3.2.x

developer.android.com/studio/preview

Page 56: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

57

Add Components to the SDK• Launch the Android Studio

SDK Manager• Select “Pie” version of

Android (9, API 28)

See developer.android.com/studio/intro/update.html

Page 57: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

58

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 58: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

59

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/tools/devices/emulator.html#acceleration

Page 59: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

60

Accessing Java & Android Source Code

Page 60: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

61

Accessing Java & Android Source Code• Android source code is available

• For browsing android.googlesource.com

Page 61: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

62

Accessing Java & Android Source Code• Android source code is available

• For browsing android.googlesource.com

• For downloading source.android.com

Page 62: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

63

Accessing Java & Android Source Code• Java 8 source code is available

• For Browsinggrepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java

Page 63: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

64

Accessing Java & Android Source Code• Java 8 source code is available

• For Browsinggrepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/java

• For downloading jdk8.java.net/download.html

Page 64: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

65

Summary

Page 65: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

66

• You will get out of this course what you put into it

Summary

Page 66: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

67

• You will get out of this course what you put into it • Be prepared to work hard

Summary

Page 67: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

68

• You will get out of this course what you put into it • Be prepared to work hard • Do not miss deadlines…

Summary

Page 68: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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

Summary

See piazza.com/vanderbilt/fall2018/cs891

Page 69: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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

Summary

Failure to comply with this rule will cost you participation points

Page 70: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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

CS 891

Office Hours

Textbooks

VideoLectures

SlideLinks

OnlineForums

Summary

See www.dre.vanderbilt.edu/~schmidt/cs891f

Page 71: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

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

Please resist the urge to email me directly unless it’s a confidential matter or you’d like to schedule a meeting!

Summary

Page 72: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

73

• 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 73: CS 891: Introduction to Parallel Java Programmingschmidt/cs891f/2018-PDFs/... · Screencasts of each lesson “part” & PDF versions of the slides will ... A wizard for creating

74

Summary• If there’s an emergency, pay attention to

the escape route!• See engineering.vanderbilt.edu/

about/evacuationplans.php


Recommended