3 ms·
I attend a school solely offering Software Engineering. For my BSc degree I had two theoretical computer science courses, digging deep into theory of computatio
by bartman 16y ago
I attend a school solely offering Software Engineering. For my BSc degree I had two theoretical computer science courses, digging deep into theory of computation and formal languages; two math courses (logics, algebra, analysis, very little statistics); 1 semester digital logic (all the way up from transistors to finite automata to microprocessor internals - very intense); databases are offered as a specialized field of study if you're into that with one mandatory course for everybody.
Compared to what I hear from friends in computer science programs we have around half the amount of math they have, the remaining basics are about the same.
The software engineering aspect shows in the many projects we do. In every semester we had group projects, both programming and software modeling, with at least 5 fellow students. The last year of studies focusses on a project with 4-8 people and an external partner who's the customer for whatever you do. We had two intense lectures on project management/planning of software projects that mainly focussed on agile methods. One of these classes was accompanied by a software project of the entire class of 80 people: we ended up having 10 development teams, each doing SCRUM (including SCRUM Master and Product Owner), the scrum masters and product owners of these teams met and organized inter-team collaborations, the product owners also interviewed potential customers (startups in the local region) and gathered their requirements and thus steered the whole project. This was an incredible experience - except that we used svn.
I am obviously biased, yet I feel the focus on group work taught me lessons that would take many years longer to learn in industry and will help me a lot in my future life. +1 Software Engineering
edit: Another observation that struck me was that we had about 25% people who never programmed before, 50% who did something in school and maybe a little in their free time and 25% who've been into all that since they were kids or teens. Yet in the third year all of them worked full time on a software project and would get along pretty well. The lack of years of experience was still noticeable, but rarely ever an issue in day to day work - they did good or better work than some of the year-long programmers and had solid theoretical foundations on patterns, architecture etc. Of course there are some who just struggled through, but it's still pretty amazing to me.
- baddox 16y agoOK, I admit that sounds awesome. It actually sounds like you covered most of the "computer sciency" stuff my CS program covers, just in fewer/more condensed courses. Did you study operating systems in depth, like deadlock, page replacement strategies, file systems, etc? That's one of the big courses in my program, and frankly one that I think should be reorganized. Knowing your way around a Unix system is pivotal, but it's difficult to teach in one semester or in a textbook. The group project stuff in theory sounds awesome, but I'm not very social with most classmates, even the CS people I see every semester, and I generally groan whenever I hear that there's going to be a group project that requires out of class meetings with random students. All in all, I don't think my program and yours could exist distinctly at the same university. They would just be subtly different emphases, and it sounds like the fundamentals would overlap so much that having two different majors would be mostly nominal.
- bartman 16y agoI forgot about the operating systems - we did have that one too. It's split into two semesters, of which only the first is mandatory. We did all the synchronization techniques, page replacement, scheduling, memory management and general structure with assignments being coding on the Windows Research Kernel (which is surprisingly well written). I think the second semester talked more about file systems, but I didn't take that. I agree that group projects can be really annoying, the main point seem to be the "random students". Over time (and projects) I found a group of people I could work and have fun with very well, so late night shifts weren't as annoying as they could otherwise have been.