A new batch of students started their IT studies at the University of Jyväskylä this month. I graduated from the very same university just recently, so why not share a few thoughts on the experiences I had. This post is a mixture of facts about what the university studies are like, and how I personally perceived them.
Degrees and study lines
I completed both the bachelor degree and masters degree in IT (Mathematical Information Technology), which is a standard combo for all new IT students. New students apply to study both degrees automatically, and generally cannot choose to apply for just the bachelor degree. However, students that have completed studies equivalent of the bachelor degree can apply for just the masters degree. It takes about three years to complete the bachelor degree, and two years to complete the masters degree.
Both degrees are split into study lines that student can choose to specialise in. The study lines change over the years, but usually there are at least three options to choose from: computational science, educational technology, and software and telecommunications technology. Computational science study line teaches the principles for solving scientific problems using mathematical simulation models. Educational technology study line focuses on the research of technology as an educational tool.
I chose to specialise in software and telecommunications technology. It is the pretty much the most standard study line available in IT. It provides both the theoretical and practical background for developing software and researching software practices. Most of the early studies focus on the theoretical side with courses on algorithms, automatons and formal languages. The later studies focus on practices used in real-world software development such as software architectures, requirements engineering, and testing and quality assurance.
The choice to specialise in software and telecommunications technology was OK at the time. There's a large variety of courses available every year, and generally many of the courses from other study lines fit into it as well. However, as I'm beginning to get more and more interested in data sciences and machine learning, I feel like getting a more in-depth background computational sciences or a related study line would have been more useful.
Math and other minor studies
In addition to the study lines, the students are expected to complete minor studies. Students have to complete either basic studies in two different subjects or both basic and intermediate studies in one subject.
Students are pretty much free to choose which ever minors they like, but they are generally recommended to take some studies in mathematics. Mathematics used to be a mandatory minor for all students, but these days it is mandatory to only specific study lines such as the computational sciences.
There are two ways to complete minor studies in mathematics. Either follow the same path as the math majors (choice A) or follow a path designed for those who study math as a minor (choice B). The choice B involves mostly calculus based math, while choice A goes directly into mathematical analysis. The choice A studies feel like they require a lot of devotion in order to pass them, while the choice B studies can be completed quite nicely on the side of all of the IT studies.
Most students also choose B over A, and even less choose to study math at all as more alternatives have become available. I suspect that the trend wont change either since the IT and math studies are not integrated well to begin with. I started math studies in the choice A, but I later switched to choice B. I switched mostly because I felt the math courses were too intensive to study at the same time with IT courses, and because I lacked the devotion necessary to study "real" math.
Common studies in all study lines are academic communication and writing courses, the mandatory English and Swedish courses, the theses, the theses related seminars, and some of the core IT studies such as Programming 101. The rest of the studies described in the curriculum work as a baseline to build your degrees on: students are expected to follow the curriculum, but in many cases courses can be replaced with alternative courses.
The freedom of choosing your courses leaves a lot of room for customisation, but it also makes each student responsible for planning their own studies. In fact, every student has to keep track of their own personal study plan. The faculty student advisors assist students at building their study plans.
The downside of customisability is that it makes it impossible for the faculty to plan the curriculum for the academic year without causing some conflicts in students' study plans. The freshman year for students is usually pretty straightforward, but usually there is at least a few courses that have overlapping schedules in the following years. With a unified plan, the faculty could easily streamline the courses and offer much more advanced lectures. With the flexible study plans, students themselves are responsible for choosing which course events to go to.
Fortunately, it's not mandatory to attend to most of the IT course lectures, and a lot of the course material in the IT courses is available in the web. Most of the lectures are recorded, reading and exercise material are made available in HTML/PDF formats, and the lecturer, teacher's assistants, and other students can be reached via course mailing lists. With the help of the course material, students can easily keep track of courses they cannot always participate in physically. In some courses, I relied on the course material alone while I was working at a job simultaneously.
The customisability of courses also mean that the progress of studies is mostly measured in courses passed instead of years studied. There is not really a way to "repeat a year" because of failed studies. Instead, you simply repeat the courses that you were not able to finish.
Theory vs practice
There's a tension between teaching theory and practice in the university. Academic nature of the university pulls towards theoretical studies, while there is a growing interest in introducing courses that teach the practical side of things.
Most courses focus on either theory or practice. For example, automatons and formal languages course focuses entirely on teaching the theory, and introduction to computer graphics only slightly touches existing graphics APIs such as OpenGL during the last week. On the other hand, courses such as GUI programming teach you how to work with a GUI programming library/framework such as WinForms and WPF. Occasionally, private companies offer their own courses through the university to promote their own platforms. Examples of these courses are Microsoft's Windows phone programming courses and Digia's Qt/QML programming courses.
While I agree that there is a need for providing practical courses, I preferred almost all of the theoretical courses over the practical ones. I feel like most of the things I learned during the practical courses I could have learned during a job when necessary, while the theoretical background could provide me a more abstract set of tools that are harder to pick up later on.
I wish the studies were more well structured than they were, but I guess the university was just there to provide the tools that I could use to learn. One way to keep myself on track was to constantly keep my study plan up to date. I kept reordering and optimizing my course schedule according to what was being taught during the year, and I threw out the old plans I no longer was interested in following.
Getting a job made it awfully difficult to study. Like most IT students, I got a bit greedy and continued working as a full-time employee after my practical training. I couldn't really attend most of the lectures, and ultimately I couldn't focus on the more advanced classes I kind of wish I had studied.
In any case, I'm quite satisfied with the knowledge and experience I got from the university. I got a pretty solid base to start developing my craft on, and I made great friends and contacts during the years.