It’s a little unfair to criticise a CS course for not being a SWE course. But I agree that graduating students in CS without having covered the basic requirements in the SWE day job most of them will move into is a disservice.
I did CS (30 years ago) and things entirely missing in the syllabus back then:
any and all soft skills
version control
refactoring
testing and the value of testing
staging and replicated environments for raw dev, QA, live, etc
A part of the problem is that CS as a degree is really taught more as an applied math degree. There doesn’t seem to be a professional organization willing to really define what software engineering is.
It never fails too how many times I have to teach jr devs git right off the bat. Its just weird enough to require a little bit of handholding when they start.
Teaching about version control would be preferable to a singular tool. Git wasn’t always the #1 tool nor will it be forever, & there are some great tools pushing against Git as we speak which will be great for all of us when something truly better usurps—like Subversion, the former king. Training on a singular tool is like learning Microsoft Word instead of document processing where the broader concepts are more valuable for your career as you understand not just how but why.
Personally I had a lot of fun giving darcs & Pijul fair shakes in 2023 to understand what makes the patch theory cool to work with. You could probably do a whole course on VCSs & their models since you are correct that they are rather integral to real world teams & projects.
It doesn’t require university level study to understand. You took Comp Sci, not applied software development. If you can pass Comp Sci, you should be able to use a system like git without it having been part of a tertiary level curriculum.
it doesnt require university level study to understand
Yeah you can learn it outside of uni but I could say the same for anything in that course. Students wouldn’t know they need to learn it because they haven’t worked in the industry.
During the course you are doing projects with multiple people. Looking back it would have been a great place to introduce version control.
If you were to study version control in a comp sci degree, you would study the way it’s implemented, not how to use it. The data models for how to store and access repositories of many files with many changes is interesting, and can have different aspects depending on if it is text content or binary. Is it optimal to store each file as an aggregate of its diffs, no matter how many. Should there be snapshot points, etc?
Those are the aspects of version control that belong in tertiary level computer science. Learning how to use “git add” and “git push” don’t.
I can’t believe in my comp sci course they never went over git. Like cmon that’s core to software development these days.
It’s a little unfair to criticise a CS course for not being a SWE course. But I agree that graduating students in CS without having covered the basic requirements in the SWE day job most of them will move into is a disservice.
I did CS (30 years ago) and things entirely missing in the syllabus back then:
A lot of it is still missing today.
A part of the problem is that CS as a degree is really taught more as an applied math degree. There doesn’t seem to be a professional organization willing to really define what software engineering is.
Totally agree! git is a standard for a reason.
It never fails too how many times I have to teach jr devs git right off the bat. Its just weird enough to require a little bit of handholding when they start.
Teaching about version control would be preferable to a singular tool. Git wasn’t always the #1 tool nor will it be forever, & there are some great tools pushing against Git as we speak which will be great for all of us when something truly better usurps—like Subversion, the former king. Training on a singular tool is like learning Microsoft Word instead of document processing where the broader concepts are more valuable for your career as you understand not just how but why.
Personally I had a lot of fun giving darcs & Pijul fair shakes in 2023 to understand what makes the patch theory cool to work with. You could probably do a whole course on VCSs & their models since you are correct that they are rather integral to real world teams & projects.
It doesn’t require university level study to understand. You took Comp Sci, not applied software development. If you can pass Comp Sci, you should be able to use a system like git without it having been part of a tertiary level curriculum.
Yeah you can learn it outside of uni but I could say the same for anything in that course. Students wouldn’t know they need to learn it because they haven’t worked in the industry.
During the course you are doing projects with multiple people. Looking back it would have been a great place to introduce version control.
If you were to study version control in a comp sci degree, you would study the way it’s implemented, not how to use it. The data models for how to store and access repositories of many files with many changes is interesting, and can have different aspects depending on if it is text content or binary. Is it optimal to store each file as an aggregate of its diffs, no matter how many. Should there be snapshot points, etc?
Those are the aspects of version control that belong in tertiary level computer science. Learning how to use “git add” and “git push” don’t.
My comp sci course used SVN.
There was one tutor who used git on their course though, albeit via GitHub Classroom so that was probably more a convenience thing