Using Industry Standard Tools in Computer Science Education

Using Industry Standard Tools in Computer Science Education

This was a talk at the Microsoft Higher ED summit in Vancouver. The day long event brought together industry, government and academia to discuss the need for skilled graduates in BC. My talk focused on some of the things I have used to move students closer to industry.


Neil Ernst

March 11, 2019


  1. Using Industry Standard Tools in Computer Science Education Neil Ernst

    Assistant Professor Computer Science University of Victoria
  2. About Me Software architecture consultant, CMU Currently assistant professor in

    CS at UVic Undergrad in Geography/Geomatics PhD in software engineering and CS Learner Educator Study software design and use in the “machine learning” era Extensively study and use data science in my research Researcher Learner 2
  3. The Challenge: Industry Needs “15+ years of Tensorflow” Analytical communicators:

    writing and speaking collaboration and teamwork Technical skills: optimization, discrete math, stats data structures, algorithms, neural networks 3
  4. The Challenge: Academia’s Role Courtesy Jessica Shabatura 4

  5. The Challenge: Pragmatics • In an engineering discipline, → Show

    real problems, in 13 weeks, 3 hours a week → About one full work week! • From instructors who are – (mostly) Not practicing engineers – Constantly working to keep current (a security course from 2015 is now outdated) “Ancient and shriveled, many people said he hadn’t noticed he was dead. He had simply got up to teach one day and left his body behind him in an armchair in front of the staff room fire; his routine had not varied in the slightest since. Prof. Binns: 5
  6. Solutions • Use industry-like tools (for cheap) • Leverage groupware+collab

    software • Study real projects 6
  7. Industry Tools: Github • How to work in teams (version

    control, task management, planning) • Previously: – expensive enterprise licences (Perforce, TFS) – academic-only tools (Moodle, Blackboard etc) • Github (and others) offers industry-standard tooling for collaboration and versioning 7
  8. 8

  9. 9

  10. 10

  11. 11

  12. Industry Tools: Github • Free to use • Similar or

    identical to tools used in industry • Teaches concepts of version control by repeated practice • Not just for CS courses! • Other free alternatives: Bitbucket, Gitlab 12
  13. Industry Tools: BetterCodeHub • Problem: motivate need for code quality

    • Solution: BetterCodeHub leaderboard 13
  14. Industry Tools: Slack • Other groupware tools like Piazza very

    useful, but no use in industry • Force students to standardize on collaboration • Potential pain for instructors – Requests come at all hours, possibly to your personal device – Overtakes other Slack workspaces (e.g. for research group) – Lack of clarity around nationals of “embargo’d” countries • Alternative: Gitter, IRC 16
  15. Study Real Projects: UVicDSA • Challenge: some estimate 60% of

    time as developer is reading other people’s code. • Solution: introduce tools and techniques to practice reading software • Pick a project under active development, moderately large. Get a deep understanding. Write documentation of the system. • Examples: Tensorboard, RocketChat (group chat), IPython 17
  16. 18

  17. UVic DSA 19

  18. Ongoing challenges • Diversifying and broadening the intake – Encouraging

    anyone to take CS – Leveling up in math without discouraging those with less previous math skill – Retrain and re-skill • 2nd entry program like UBC’s BCS or Uvic’s M.A.Sc in Data Science • Ethical thinking • Privacy and data collection • Bringing research/analytics into software engineering 20
  19. Increase Participation: HighTechU • real-world, technology-focused experiential learning opportunities for

    high school students • 7 week, weekend academy to build skills • 8 week paid internships • Work in collaboration with local high schools and local industry (SendWithUs, CoastCapital) 21
  20. None
  21. Diversity Gender Identity Grade

  22. None
  23. Challenges & Solutions • Use industry-like tools • Leverage groupware+collab

    software • Study real projects • Broaden the pool 25 Web: • Twitter: @neilernst