4 ms·
It is interesting that no software engineering or computer science course I’ve seen has ever spent any time on CI/CD. Jenkins, Docker, Kubernetes, none of thes
by LPisGood 1y ago
It is interesting that no software engineering or computer science course I’ve seen has ever spent any time on CI/CD.
Jenkins, Docker, Kubernetes, none of these sorts of things - and I don’t even mean these specific technologies, but moreover nothing even in their ballpark.
- hotstickyballs 1y agoPersonally it felt quite natural once you start to work on real software projects.
- LPisGood 1y agoI have never felt that way, and I’ve worked on a variety of projects at a variety of companies. Everyone has a bespoke mishmash of nonsense pipelines, build tools, side cars, load balancers, Terragrunt, Terraform, Tofu, Serverless, Helm charts, etc. There are enough interesting things here that you wouldn’t even need to make a tool heavy project style software engineering course - you could legitimately make a real life computer science course that studies the algorithms and patterns and things used.
- bckr 1y agoMerging strategies, conflict resolution, bisect debugging, and version control in general are very computer sciencey. Would make a great course.
- LPisGood 1y agoThat’s not even getting into the fact that you could basically teach multiple graduate level distributed computing courses with k8s as a case study
- andoando 1y agoWell this has nothing to do with computer science so there's that
- LPisGood 1y agoI could not disagree with you more. It would be easy for me to agree with you. I hold a graduate degree in computer science and I’m named for my contributions proofreading/correcting a graduate text about algorithms in computability theory. I love abstraction and algorithms and pure theory, but this whole “computer science is a branch of mathematics, nothing more” idea has always struck me as ridiculous. Are you willing to throw out all of the study of operating systems, networking, embedded systems, security (hardware and software), a good chunk of AI, programming languages, UI/UX/human computer interaction, graphics, just to draw a line around algorithms and Turing Machines and say this is all there is to computer science?
- andoando 1y agoCryptography is all math, networking is largely math and algorithms (IMO yes this should really be replaced with information theory. Just understanding Shannons paper would have been more valuable than learning about how routers work), AI is mostly statistics (And AI as a whole Id argue is the essence of computer science), graphics is largely math and algorithms. Yes I very much think a computer science degree should be as close to the foundation of theory as possible. And still learning Jenkins and kuberenetes or even a general course on how effectively push code is still far from the things you listed. Theres so much computer science that isnt even covered that id include before including courses on CI/CD
- LPisGood 1y agoYeah cryptography mostly (but certainly not all) math but it accounts for a negligible (pun intended) portion of interesting security work. AI is a lot of math, especially if you hang out with the quasiconvex optimization crowd, but a vast majority of work in that field can not properly constitute “theory” I think it’s clear in practice that computer science has officially strayed beyond whatever narrow bounds people originally wished to confine it to.
- andoando 1y ago
- raphman 1y agoI'm doing this in the software engineering¹ course I teach. However: a) Practical CI/CD requires understanding (and some practical experience) of many other concepts like Linux shell scripting, version control, build automation, containers, server administration, etc. As few students (in our degree programme) have sufficient experience in these concepts, I spend about half of the semester teaching such devops basics instead of actual software engineering. b) Effectively, teaching CI/CD means teaching how GitHub or GitLab do CI/CD. I feel a little bit uncomfortable teaching people how to use tech stacks owned by a single company. ¹) Actually it's more a course on basic software craftsmanship for media informatics students because no such course exists in our curriculum and I find it more important that students learn this than that they understand the V model.
- wpollock 1y ago> It is interesting that no software engineering or computer science course I’ve seen has ever spent any time on CI/CD. It's hard to fit everything student needs to know in the curriculum. Someone else posted here they had 10 pages of proofs per week, for one course. I would have been fired for assigning so much homework! I was a CS professor at a local college. My solution was to ignore CS1 and CS2 curriculum (we were not ABET accredited, so that's okay) in the second course of Java programming. Instead, I taught students Maven/Gradle, Git and GitHub, workflows, CI/CD, regular expressions, basic networking, basic design patterns, Spring Boot, and in general everything I thought new programmers ought to know. I even found a book that covered much of this stuff, but in the end I wrote my own learning materials and didn't use a book. The course was a victim of its success. The school mandated the course for non-Java programmers too, resulting in a lot of push-back from the non-Java students. If anyone is interested, I have the syllabus online still (I've since retired) at <https://wpollock.com/ https://wpollock.com/>. Look for COP2800 and COP2805C. I can also send the Java teaching materials as a PDF to anyone interested (book length, but sadly not publishable quality).
- ykonstant 1y ago>Someone else posted here they had 10 pages of proofs per week, for one course. Huh. As a professor, I would not be able to grade this kind of volume in any serious capacity. Especially since proofs need to be scrutinized carefully for completeness and soundness. I wonder how their instructor manages.
- LPisGood 1y agoIt’s possible that person was new to writing proofs; inexperienced people going in the wrong direction can tend to ramble, for lack of a better word.