Slide 1

Slide 1 text

Using Industry Standard Tools in Computer Science Education Neil Ernst Assistant Professor Computer Science University of Victoria [email protected]

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

The Challenge: Academia’s Role Courtesy Jessica Shabatura 4

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Solutions • Use industry-like tools (for cheap) • Leverage groupware+collab software • Study real projects 6

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

8

Slide 9

Slide 9 text

9

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

11

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Industry Tools: BetterCodeHub • Problem: motivate need for code quality • Solution: BetterCodeHub leaderboard 13

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

18

Slide 17

Slide 17 text

UVic DSA 19

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Diversity Gender Identity Grade

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Challenges & Solutions • Use industry-like tools • Leverage groupware+collab software • Study real projects • Broaden the pool 25 Web: neilernst.net • Twitter: @neilernst