Two top-level goals steered the course design and planning work:
- As a response to the needs of the job market an international Master’s program, Software Engineering – Web & Cloud, was established a few years ago in Hervanta Campus. (So long “Pervasive Systems” 🙂 ). We wanted to have a proper course offering that matches the implicit promise of the master program.
- The merger of two universities led to a need to harmonize the course offering. This Web & Cloud area was selected as a pilot for the harmonization work. It has been a challenge to be among the first areas of harmonization.
I group of ~10 teachers were involved in the planning. The process was started by investigating the current state of matters. We knew in advance that the three campuses (Hervanta, center, Pori) had a different set of courses. In the analysis we also learned that the other stakeholders had related courses for little bit different audiences, e.g., Information Management and User Experience had their own courses. The interest was wide and our Web and Cloud courses should serve several study programs (sorry “Study Modules” in Sisu-language).
We also had to deal with different heritage of the campuses. The assumed pre-requisites and phases in studies also varied between study programs and the campuses. The campuses had different practices, tools, etc., too. The differences included the learning environment (Plussa vs. Weto), the role and use of peer feedback and many other things.
As expected, the creation of a uniform course set was a non-trivial task. Obviously, compromises were ahead. In the later phase of the design and implementation the Covid-19 pandemic prevented meetings. Thus, we are not ready yet, and the courses are still under development. Thus, all comments will be welcome.
The new courses
For the software engineering and development students we have the core of two courses:
Web Development 1 – programming (COMP.CS.500) teaches the fundamentals of end-to-end Web applications. The minimal pre-requisite of this course is programming 2, but further programming courses and basics of data bases are recommended. In most cases this course is taken already during the bachelor studies.
Web Development 2 – architecting (COMP.CS.510) continues from the previous course and, as the name indicates, it teaches how bigger Web systems are built.
On top of these two courses, we have two advanced courses that are typically taken towards the end of the master’s studies.
Advanced Front-Ends (COMP.CS.520) explores the modern approaches of building front-ends of Web applications. The focus is on the front end.
Continuous Development and Deployment – DevOps (COMP.SE.140) dives in the approaches related to development of cloud software. This course covers both process and technical aspects of “DevOps”. For example, cloud-native architectures and continuous deployment pipelines are covered. This course can be included in post-graduate studies.
We also have two courses that are more basic and directed for a wider audience.
Web for Content Authors and Information Scientists (COMP.CS.200). This course is primarily to students that do not want to the take the “nerd path” of Web Development 1 and 2 or need background studies before taking the more challenging Web Development 1.
Cloud Platforms (COMP.SE.151) teaches the basics of cloud computing and infrastructures. In the early phases of the planning we assumed that this course will be in the core of software engineering studies, but it was later refocused to serve other study programs, open university and our “life-long” studies. The software engineering students get same information, but from different angle from the other courses.
Temporary arrangements due to transfer and Covid-19
Even if the courses change, we will not want to force major changes in the students HOPS planning. Thus, the courses credit-transfer rules. For instance
- CS.200 is equal to TIETA09
- CS.500 is equal to TIE-23500, TIE-23506, TIE-23510, TIE-23516, PLA-32812, TIETA12
For COMP.CS.520 we have had a special arrangement for background compatibility. It has been implemented a copy of previous Pori course PLA-32832 Web-järjestelmät. This will not continue for in academic year 2021-22.
During Covid-19 all universities have encouraged use of on-line courses from other universities. In this spirit we have accepted replacing of Web Development 1 (COMP.CS.500) with corresponding parts of “Fullstack open” from University of Helsinki.
It should be noted that these courses do include everything that a professional Web and Cloud developer needs to know. Most Web system deal with data. Thus, courses like Database System: SQL (COMP.DB.200) and Database Systems: NoSQL (COMP.DB.300) are very useful. In addition, Data-Intensive Programming (COMP.CS.320) teaches how so called “big data” applications should be made. Core elements of software engineering, e.g., courses Software Testing (COMP.SE.200) and Software Product and Process Management (COMP.SE.121). COMP.SE.121 is new course that replaces a bunch of old courses – maybe my next blog is about that.
Accessibility is now a hot topic and our university has created two small (1cr) online courses Web accessibility I – technical (ACC.180) and Web accessibility II – content (ACC.190) that introduce guidelines and other standards related to web accessibility, such as Web Content Accessibility Guidelines (WCAG).
The area of Web and Cloud is rapidly changing, and technologies come and go. This evidently challenges our teaching. We could have selected the today’s most popular technologies, like Kubernetes and React, and build our teaching on those. This may have given a short-term advantage to students since many recruiters ask knowledge of those. However, our aim is to teach future professionals that adopt to or even select the technology. Thus, we want to teach fundamentals and the under-the-hood aspects.
The first implementations of most courses have been done, and we have recognized several needs for changes. In addition to what we have discovered by ourselves, we also welcome all input from students.
Kari Systä, email@example.com