cs 891: parallel functional programming w/ java & android: … › ~schmidt › cs891f ›...

69
CS 891: Parallel Functional Programming w/ Java & Android: 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

Upload: others

Post on 24-Jun-2020

13 views

Category:

Documents


0 download

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

CS 891: Parallel Functional Programming

w/ Java & Android: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

73

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

the escape route!

• See engineering.vanderbilt.edu/about/evacuationplans.php