85
Casey O’Brien Java Tutor

Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Embed Size (px)

Citation preview

Page 1: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Casey O’Brien

Java Tutor

Page 2: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Python

Java

Page 3: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Python

6.01

Java

Page 4: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Python

6.01

6.02

Java

Page 5: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Python

6.01

6.02 6.034

Java

Page 6: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Python

6.01

6.02 6.034

6.006

Java

Page 7: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Python

6.01

6.02 6.034

6.006

Java

6.005

Page 8: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Hello World

Page 9: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Hello World

Page 10: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Hello World

Page 11: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Python at MIT

Page 12: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Python at MIT

• Take 6.00

Page 13: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Python at MIT

• Take 6.00

• Take 6.S189

Page 14: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Python at MIT

• Take 6.00

• Take 6.S189

• Take 6.01

Page 15: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Python at MIT

• Take 6.00

• Take 6.S189

• Take 6.01

• Online Tutor

Page 16: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Python Online Tutor

Page 17: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Python Online Tutor

Page 18: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java at MIT

Page 19: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java at MIT

• Take 1.00

Page 20: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java at MIT

• Take 1.00

• Take 6.S092

Page 21: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java at MIT

• Take 1.00

• Take 6.S092

• Take 6.005

Page 22: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java at MIT

• Take 1.00

• Take 6.S092

• Take 6.005

• ???

Page 23: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java in 6.005

Page 24: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java in 6.005

Fall 2012 Semester: Java Oracle Tutorial

Page 25: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java in 6.005

Fall 2012 Semester: Java Oracle Tutorial

Page 26: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java in 6.005

Page 27: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java in 6.005

Spring 2013 Semester: Java Crash Course

Page 28: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java in 6.005

Spring 2013 Semester: Java Crash Course

Page 29: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Learning Java in 6.005

Other Options:

• http://www.learnjavaonline.org/

Page 30: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Problem

Java is a lot harder than Python!

Page 31: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

My Proposal

Page 32: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

My Proposal

• Online System

Page 33: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

My Proposal

• Online System

• Interactive

Page 34: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

My Proposal

• Online System

• Interactive

• “Convert” Python to Java

Page 35: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

My Proposal

• Online System

• Interactive

• “Convert” Python to Java

• SuperUROP

• Supervisor: Professor Rob Miller

• Mentor: Max Goldman

Page 36: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

ExamplesPython Java

Page 37: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

ExamplesPython Java

print System.out.println()

Page 38: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

ExamplesPython Java

print System.out.println()

__str__ toString()

Page 39: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

ExamplesPython Java

print System.out.println()

__str__ toString()

== equals()

Page 40: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

ExamplesPython Java

print System.out.println()

__str__ toString()

== equals()

list ArrayList

Page 41: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

ExamplesPython Java

print System.out.println()

__str__ toString()

== equals()

list ArrayList

dictionary HashMap

Page 42: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

System Overview

Page 43: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

System Overview

Server

Page 44: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

System Overview

Server

Student A

Page 45: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

System Overview

Server

Student A

Student B

Page 46: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

System Overview

Server

Student A

Student B

Student C

Page 47: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

System Overview

Server

Student A

Student B

Student C

Student D

Page 48: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

System Overview

Server

Student A

Student B

Student C

Student D …

Page 49: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Tools

Page 50: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Tools

• Server

Page 51: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Tools

• Server

• Development Machine

Page 52: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Tools

• Server

• Development Machine

• Languages

Page 53: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Tools

• Server

• Development Machine

• Languages

• Python Tutor: Python, Javascript

Page 54: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Tools

• Server

• Development Machine

• Languages

• Python Tutor: Python, Javascript

• Ruby on Rails

Page 55: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Tools

• Server

• Development Machine

• Languages

• Python Tutor: Python, Javascript

• Ruby on Rails

• PHP

Page 56: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

1. Back-End Structure

2. Web Interface

3. Testing

4. Publication

Page 57: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

1. Back-End Structure

2. Web Interface

3. Testing

4. Publication

Page 58: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

1. Back-End Structure

Page 59: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

1. Back-End Structure

• Examine Python Tutor

Page 60: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

1. Back-End Structure

• Examine Python Tutor

• Develop sample questions

Page 61: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

1. Back-End Structure

• Examine Python Tutor

• Develop sample questions

• Develop structure

Page 62: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

1. Back-End Structure

2. Web Interface

3. Testing

4. Publication

Page 63: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

2. Web Interface

Page 64: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

2. Web Interface

• Design UI

Page 65: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

2. Web Interface

• Design UI

• Handle online compiler

Page 66: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

2. Web Interface

• Design UI

• Handle online compiler

• Develop web interface

Page 67: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

1. Back-End Structure

2. Web Interface

3. Testing

4. Publication

Page 68: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

3. Testing

Page 69: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

3. Testing

• User Testing

Page 70: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

3. Testing

• User Testing

• Analysis

Page 71: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

1. Back-End Structure

2. Web Interface

3. Testing

4. Publication

Page 72: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

4. Publication

• Write publication

Page 73: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

4. Publication

• Write publication

• Final edits

Page 74: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Implementation

4. Publication

• Write publication

• Final edits

• Submit to Computer Human

Interaction Conference (CHI)

Page 75: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Schedule9-2-13

9-9-13

9-16-13

9-23-13

9-30-13

10-7-13

10-14-13

10-21-13

10-28-13

11-4-13

11-11-13

11-18-13

11-25-13

12-2-13

12-9-13

12-16-13

12-23-13

12-30-13

1-6-14

1-13-13

Meet with Supervisor

Examine Python Tutor

Develop sample questions

Design structure

Design UI

Handle online compiler

Develop web interface

User Testing

Analysis

Write publication

Final Publication Edits

Submit to CHI

Page 76: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Risks

Page 77: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Risks

• Turns out similar to other options

Page 78: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Risks

• Turns out similar to other options

• Cannot be implemented in time

Page 79: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Risks

• Turns out similar to other options

• Cannot be implemented in time

• Online Tutor is not best fit

Page 80: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Risks

• Turns out similar to other options

• Cannot be implemented in time

• Online Tutor is not best fit

• Students do not find Tutor useful

Page 81: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Further Work

Page 82: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Further Work

• Testing in 6.005

Page 83: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Further Work

• Testing in 6.005

• Developing more complicated

examples

Page 84: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Further Work

• Testing in 6.005

• Developing more complicated

examples

• MITx

Page 85: Casey O’Brien Java Tutor. Python Java Python 6.01 Java

Further Work

• Testing in 6.005

• Developing more complicated

examples

• MITx

• Generalizing beyond Java