visually explaining source code in cs education · sebastian baltes – visually explaining source...

18
Software Engineering Group Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) @s_baltes [email protected] Visually Explaining Source Code in CS Education Benjamin Biegel, Sebastian Baltes, Bob Prevos, and Stephan Diehl University of Trier, Germany IEEE Symposium on Visual Languages and Human-Centric Computing October, 18-22 – Atlanta, USA

Upload: others

Post on 12-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

@[email protected]

Visually Explaining Source Code in CS Education

Benjamin Biegel, Sebastian Baltes, Bob Prevos, and Stephan DiehlUniversity of Trier, Germany

IEEE Symposium onVisual Languages and Human-Centric Computing

October, 18-22 – Atlanta, USA

Page 2: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Motivation

• In CS education, teachers have to present concrete source code examples and related abstract concepts

• Traditional presentation tools have shortcomings:

PowerPoint• Easy-to-use drawing features

(shapes, colors, etc.)• But: Linear, predefined

presentation• Interaction with audience?• Source code formatting?

Whiteboards• Flexible, but depending on

drawing skills of teacher• Difficult to prepare or

modify content• Not suitable for longer

source code examples

Code Editors / IDEs• Exploration and modification of source

code possible• But: Not designed for presenting source

code (e.g. step-by-step revealing)• Visualization difficult

Page 3: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Motivation

Tradeoff:

Common scenario:Switching between PowerPoint and source code editor

3

Our goal: New tool for presenting source code combining:• Drawing features of PowerPoint• Flexibility of source code editors• Interactivity of whiteboards

visually appealing but static flexible but text-oriented

flexible but cumbersome

Page 4: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Our Approach

4

Page 5: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Requirements

5

• Create content in advance

• Prepared content can be reused

• Step-by-step revealing of visuals and code

• Highlighting during lecture

• Content available to students immediately after lecture

Preparation Presentation Follow-up

Flexibility

• Modifying and adding content during the lecture

Page 6: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Vision

• Digital canvas with source code editor

• Teacher defines beforehand in which order source code is revealed

• Drawing features similar to PowerPoint, but intended to be used also during lecture

• Drawings and code can be linkedà Position is updated if code is inserted

• Highlighting features for both source code and drawings

• Presentation can be saved and shared any time during the lecture

• Students can branch documents for own annotations

6

Page 7: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Vision

• Digital canvas with source code editor

• Teacher defines beforehand in which order source code is revealed

• Drawing features similar to PowerPoint, but intended to be used also during lecture

• Drawings and code can be linkedà Position is updated if code is inserted

• Highlighting features for both source code and drawings

• Presentation can be saved and shared any time during the lecture

• Students can branch documents for own annotations

7

Page 8: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Linking of Code and Drawings

8

Page 9: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Linking of Code and Drawings

9

Page 10: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Linking of Code and Drawings

10

Page 11: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Prototype Implementation

11

Page 12: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Prototype Implementation

• Web-based• Runs on both desktop and tablet browsers (Firefox and Safari)• Source code “animation” using XML file

12

Page 13: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Practical Experiences

13

Page 14: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Practical Experiences

Evaluation in two undergraduate lectures:

1. Software engineering (design patterns)• Interviewed three students and two teachers

2. Programming concepts (binary search tree implementation)• Interviewed three students and two teachers• Questionnaire

We used an ad-hoc visual notation, often utilizing color to indicate relation:

14

Page 15: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Practical Experiences

15

Page 16: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Students’ View

• Ad-hoc notation understandable• Appreciated step-by-step revealing of source code and linking• Liked that teacher can immediately respond to questions• “VisualCues prevents the teacher from doing PowerPoint karaoke.”• Questionnaire:

16

Count

S6

S5

S4

S3

S2

S1

60 40 20 0 20 40 60

0

1

23

4

Statement

Count

S6

S5

S4

S3

S2

S1

60 40 20 0 20 40 60

0

1

23

4

Statement

“For future lectures, I would like source code examples to be presented mainly using…”

PowerPoint

Blackboard

VisualCues

Live coding n=63Likert scale items ranging from 0=“I do not agree” to 4=“I agree”

Page 17: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Teachers’ View

• 50% of drawings prepared, 50% created ad-hocduring lecture

• Often framed code with colored rectangleand used same color for corresponding drawings

• Tried to used shapes consistently• Better support for planning the lecture requested

17

Page 18: Visually Explaining Source Code in CS Education · Sebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15) Software Engineering Group Requirements 5 •

Software Engineering GroupSebastian Baltes – Visually Explaining Source Code in CS Education (VL/HCC’15)

Conclusion and Future Work

18

@[email protected]

Demo video and supplementary material:http://st.uni-trier.de/visualcues

• Students not happy with status quo(presenting source code with PowerPoint)

• VisualCues was well received• But also strong preference for live coding

• Future work:• Combine VisualCues and live coding• Evaluation in larger context• Make VisualCues also available for

students during lecture?