Using GitHub, Travis CI, and Python to Introduce Collaborative - - PowerPoint PPT Presentation

using github travis ci and python to introduce
SMART_READER_LITE
LIVE PREVIEW

Using GitHub, Travis CI, and Python to Introduce Collaborative - - PowerPoint PPT Presentation

Using GitHub, Travis CI, and Python to Introduce Collaborative Software Development Rowan Castellanos, Gregory M. Kapfhammer, Nicholas Tocci PyCon 2018 Education Summit May 10, 2018 Challenges Existing tools support effective teaching But,


slide-1
SLIDE 1

Using GitHub, Travis CI, and Python to Introduce Collaborative Software Development

Rowan Castellanos, Gregory M. Kapfhammer, Nicholas Tocci PyCon 2018 Education Summit May 10, 2018

slide-2
SLIDE 2

Challenges

Existing tools support effective teaching But, we needed a tool to solve extant concerns Here are some of the key challenges that we faced!

slide-3
SLIDE 3

Version Control is … Only the First Step!

slide-4
SLIDE 4

Start a New Repository

Version Control is … Only the First Step!

Populate the Repository Students Copy Files

slide-5
SLIDE 5

Start a New Repository

Version Control is … Only the First Step!

Populate the Repository Students Copy Files Students Edit Files Finalize a Repository Grade the Submission

slide-6
SLIDE 6

Teaching Computer Science is Hard!

Unclear Status Tricky Teamwork Messy Code Exhausting Evaluation

slide-7
SLIDE 7

Teaching Computer Science is Hard!

Professor Teaching Assistant Student Unclear Status Tricky Teamwork Messy Code Exhausting Evaluation

slide-8
SLIDE 8

What Are the Key Educational Goals?

slide-9
SLIDE 9

What Are the Key Educational Goals?

Clear Status Effective Teamwork Standardized Code Efficient Evaluation

slide-10
SLIDE 10

What Are the Key Educational Goals?

Clear Status Effective Teamwork Standardized Code Efficient Evaluation Critical Ideas Industrial Tools

slide-11
SLIDE 11

Tools Solve Some Issues … Not Others!

Automate a Build + Check in the Cloud + Collaborate with GitHub But, certain solution properties are difficult to check!

slide-12
SLIDE 12

Solutions

Adopt existing tools whenever possible Use Python language for prototyping and testing Here is how we created the GatorGrader tool!

slide-13
SLIDE 13

GatorGrader Checks Code and Writing

Inspect the source code, program output, and technical writing Source Code GatorGrader Technical Writing

slide-14
SLIDE 14

GatorGrader Can Check Other Entities!

Ensure GitHub collaboration and the existence of arbitrary files GitHub Repository GatorGrader Data & Images

slide-15
SLIDE 15

Performing Checks with GatorGrader

Gradle plugin calls GatorGrader and gives feedback to a student GatorGrader Supports dependencies between checks and parallel builds

slide-16
SLIDE 16

Where Does GatorGrader Run?

GatorGrader gives regular feedback both locally and in the cloud GatorGrader Travis CI Student Laptop

slide-17
SLIDE 17

Why Pick Python for Programming?

Packages Testing Versatility Many versatile packages support development and exploration Using pytest leads to a confidence in tool correctness

slide-18
SLIDE 18

What Courses Have Used GatorGrader?

Computational Expression Data Abstraction

slide-19
SLIDE 19

What Courses Have Used GatorGrader?

Computational Expression Data Abstraction Web Development Software Engineering

slide-20
SLIDE 20

Feedback

GatorGrader promotes technical skill mastery Automated checkers can become a limiting crutch Increases confidence in delivery of correct labs

slide-21
SLIDE 21

Professor

GitHub Classroom, Travis CI, and GatorGrader made it easier for me to effectively deliver programming labs in an introductory computer science course!”

Janyl Jumadinova Assistant Professor

slide-22
SLIDE 22

Assistant

This approach ensures that the source code and GitHub repositories are

  • rganized. It is easier for

me to help the students who are struggling in an introductory course.”

Saejin Mahlau-Heinert Teaching Assistant

slide-23
SLIDE 23

Assistant

You need to be really careful to ensure that students do not become

  • verly reliant on the

automated tools that check their source code and technical writing.”

Race Mahoney Teaching Assistant

slide-24
SLIDE 24

Assistant

This tool suite made it easier for me to talk with students about technical

  • requirements. It helped

me to make complex assignments more accessible to students.”

Maria Kim Teaching Assistant

slide-25
SLIDE 25

Student

GatorGrader encouraged me to add better code comments and try out language constructs that I would not have

  • therwise investigated.

The tool was a big help!”

Samantha Darris Introductory Student

slide-26
SLIDE 26

Student

GatorGrader is like having a constant coach! I liked receiving feedback

  • n the quality of my

source code and writing before turning in the final version of my lab.”

Anna Yeager Introductory Student

slide-27
SLIDE 27

Conclusion

GatorGrader aids the building of positive habits Python was the right programming language There are many avenues for exciting future work!

slide-28
SLIDE 28

Experiments with GitHub & GatorGrader

Experimentally study student writing, source code, and emotions Source Code GatorGrader Novel Insights What source code and technical concepts lead to frustration?

slide-29
SLIDE 29

Use and Contribute to GatorGrader!

New Courses Constructive Feedback

slide-30
SLIDE 30

Use and Contribute to GatorGrader!

New Courses Constructive Feedback Pull Requests Defect Reports

slide-31
SLIDE 31

GitHub + Travis + Python + GatorGrader

Clear Status Effective Teamwork Standardized Code Efficient Evaluation Critical Ideas Industrial Tools