Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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
Tweet

More Decks by Neil Ernst

Other Decks in Education

Transcript

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

    Assistant Professor Computer Science University of Victoria [email protected]
  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: 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
  5. 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
  6. 8

  7. 9

  8. 10

  9. 11

  10. 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
  11. 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
  12. 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
  13. 18

  14. 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
  15. 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
  16. Challenges & Solutions • Use industry-like tools • Leverage groupware+collab

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