using python travis ci and github to effectively teach
play

Using Python, Travis CI, and GitHub to Effectively Teach - PowerPoint PPT Presentation

Using Python, Travis CI, and GitHub to Effectively Teach Programming Gregory M. Kapfhammer October 5 at PyGotham 2018 Hi! My name is GREGORY M. KAPFHAMMER @GregKapfhammer www.gregorykapfhammer.com Roadmap for this Talk Introduce


  1. Using Python, Travis CI, and GitHub to Effectively Teach Programming Gregory M. Kapfhammer October 5 at PyGotham 2018

  2. Hi! My name is GREGORY M. KAPFHAMMER @GregKapfhammer www.gregorykapfhammer.com

  3. Roadmap for this Talk Introduce strategies and tools for effectively teaching programming

  4. USE INDUSTRY STANDARD SOFTWARE IN ALL COURSES

  5. SUITABLE FOR INSTRUCTORS IN INDUSTRY OR ACADEMIA

  6. Exploring Technologies GitHub Travis Python Discuss in greater detail!

  7. GitHub

  8. Travis

  9. Python

  10. Important Goals Clear Key Fast Status Ideas Grading

  11. HELP STUDENTS AND TEACHERS EFFECTIVELY COLLABORATE

  12. Deliverables to Check Source Code Technical Writing Commit Counts Commit Messages Program Output Data Files

  13. LEVERAGE EXISTING TOOLS WHENEVER POSSIBLE

  14. Tools to Support Checks Source code linting Markdown linting Prose checking JUnit test suite Pytest test suite Automated build tools

  15. DEVELOP NEW SOLUTIONS IN PYTHON WHEN NECESSARY

  16. Bene�ts of Python Tools Packages Testing

  17. Tools for Development Black Flake8 Pipenv Pylint Pytest Pytest Plugins (e.g., Codecov)

  18. DESIGN PRINCIPLES THAT GUIDED DEVELOPMENT Inspired by John Ousterhout's A Philosophy of Software Design

  19. Design Principles ‣ Working code is not suf�cient: aim for simplicity ‣ Code that hasn't been executed does not work ‣ Simple interfaces over simple implementations ‣ Great documentation encourages contributions

  20. Flexible Checking Local Travis See GatorGrader and GatorGradle in the GatorEducator organization on GitHub

  21. CREATE TWO REPOSITORIES FOR EACH ASSIGNMENT

  22. Using Travis CI Solution Starter Check

  23. THE STARTER REPOSITORY SHOULD NOT PASS THE TESTS

  24. Ef�cient Project Grading Python Gradle Supporting different programming languages, the Gradle plugin runs GatorGrader checks in parallel

  25. Let's Con�gure Travis CI! 1. # use Java and non-root 2. dist: trusty 3. sudo: false 4. language: Java 5. jdk: oraclejdk8 6. Travis CI runs private builds for every student 7. # ignore the virtualenv that Travis creates 8. env: 9 global:

  26. Let's Con�gure GatorGrader! 1. --- 2. name: cmpsc-100-fall-2018-lab3 3. break: true 4. indent: 4 5. --- 6. # --> check the source code for various Configure GatorGrader for use through Gradle characteristics 7. # note that without an "--exact" the check is an "at least"

  27. GatorGrader's Output ✘ Repository has at least 14 commit(s) ➔ Found 9 commit(s) in the Git repository ✘ The writing has at least 100 word(s) ➔ Found 12 word(s) in a paragraph ✘ The output has one of the '28.75' ➔ Found 0 fragment(s) in the output Passed 6/13 (46%) of checks for f2018-lab3

  28. Courses and Topics Computational Expression Data Abstraction Software Engineering Web Development Arti�cial Intelligence Different topics, goals, languages, and levels Used during laboratory, practical, and class

  29. GatorGrader is like having a constant coach! I liked receiving feedback on the quality of my source code and writing before turning in the �nal version of my lab. - ANNA YEAGER

  30. Ideas for Experiments Deliverables Insights

  31. WHAT CODE AND CONCEPTS CAUSE STUDENT FRUSTRATION?

  32. Let's Collaborate New Checks Bug Reports See GatorGrader and GatorGradle in the GatorEducator organization on GitHub

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend