Aalto CS Bachelor curriculum development 2024–2026
Jukka Suomela · last updated on November 21, 2022
Curriculum development workshops
I will organize two workshops related to the planning of the 2024–2026 curriculum of our Computer Science Bachelor major and minor. Everyone interested in what we teach to our CS Bachelor students is very welcome to join!
When?
The time slots are these, and you can take part in one of them or both of them:
- Friday, October 7, at 10.15–12.00.
- Friday, November 25, at 13.15–15.00.
What?
The tentative program of the events is as follows:
- 15 min: a short opening presentation by me
- 10 min: general discussions, clarifying the goals
- 40 min: split in groups, each focusing on one theme (see below for the list of themes)
- 40 min: groups present their ideas.
If there is interest, the groups can continue to meet and discuss after the workshop, and we can organize smaller follow-up meetings afterwards.
Where?
The workshops are organized in the School of Business building (Ekonominaukio 1), in hall T003. It is in the ground floor of the building (see the map below).
Themes to discuss in the workshops
In the workshops, we will organize discussions in four themes (see below). I have written down here some starting points for discussions, but please feel free to consider also any other curriculum-level issues.
All themes: General perspectives to consider
With all themes, it is good to consider e.g. these perspectives:
- Needs and expectations of future employers, especially for those students who do not continue their studies after their BSc. Let us keep in mind the broad range of jobs where computer science is needed, also outside IT industry (e.g. public-sector jobs).
- Needs and expectations of Master’s programs, both at Aalto and elsewhere, both in CS and other areas. What do other universities expect if they admit a student with a CS Bachelor?
- Preferences and expectations of our students. Can we explain to our students why they are required to learn these skills? Do we cater sufficiently for students with different backgrounds, including those who have already got working experience in IT? Does our CS major look attractive from the perspective of potential students? Does it help to attract a diverse student population?
- Expectations of other stakeholders: school, university, government, politicians, general public, etc. Can we explain our choices to those who pay the bill?
- How can our choices make the world a better place? For example, can we equip our students with skills and understanding that help them to develop a more sustainable future?
- Where is the role of a university most critical? What are skills that students could easily self-study later; what are skills that are hard to acquire through any other means besides traditional university education? Where do we have e.g. long prerequisite chains?
- There are other places to learn CS; it can be good that e.g. different universities have different profiles. We do not need to cover everything; we can focus on our strengths, keeping in mind our research focus.
- Is there some underused potential at Aalto that our CS major could benefit from?
- What kinds of standards and recommendations exist for the contents of a CS or ICT degree? See e.g. ACM Computing Curricula recommendations and FINEEC Standards and Procedures for Engineering Programme Accreditation (see Section 2.1).
- Is it something everyone absolutely must study, or something we can include in the list of optional courses, or something we can include in the list of recommended electives?
- Who will teach it? What are topics our faculty would like to teach? Can we ensure we have got volunteers also in the future? Can we find TAs? Can we handle 100+ students?
- Let us keep in mind external constraints: the same courses are used in other majors; our major is part of a school-wide Bachelor's program; there are dependencies between the courses; the needs of minor students differ from CS major students.
Let us try to focus on curriculum-level issues. In particular, if there are some changes we could do inside a single course, we can discuss those separately with the relevant teachers.
Theme 1: Core CS topics
What kind of CS topics do we cover, and how?
Here are some more concrete questions to consider:
- Exactly what do we teach in the first autumn? What are the first CS topics our students will encounter? Certainly there will always be something similar to Programming 1, but what else should be there? For example, would it make sense to have Databases already in the first autumn?
- What should be the role of computer architecture in our teaching? There is some computer architecture in Programming 2, and in non-mandatory courses also in Operating systems and Programming parallel computers. Is this enough? Are these the right places? Is there suboptimal overlap?
- Do we have some courses in the list of recommended elective courses that we could upgrade to optional courses in the CS major? Conversely, what should we remove from the list of optional courses?
- How do we help our students to make the right choices? For example, students can nowadays choose whether they take Operating systems and Computer networks, but in some tracks in the Master’s program these would be very helpful. Do we need to have ready-made recommended packages for students depending on their Master-level plans?
- More generally, how much freedom of choice there should be? For example, would it be a good idea or bad idea to have a possibility of focusing more heavily in algorithms/theory? Or if one is very interested in web development, how many credits related to web development one can reasonably have in one CS degree?
Theme 2: Math and physics
What kind of math and physics do we teach to our CS major students, and how?
Here are some more concrete questions to consider:
- Should there be a possibility of taking more advanced math courses instead of our standard 25-credit package?
- How to ensure that more TCS-oriented students will be able to e.g. write mathematical proofs? This seems to be a common challenge when our students start their Master’s studies.
- How do we make better use of the physics courses in our CS teaching? The core question in all CS is understanding what can be automated efficiently, and a key part of this is understanding what can be automated in the physical world we are living in. The understanding of e.g. electromagnetism and quantum mechanics should form a great foundation for exploring such questions, but do we ever explicitly discuss these kinds of ideas in our CS courses?
- Conversely, how could the physics courses connect to what our students are learning in CS? Can we make use of CS in the physics courses? Discuss the physical reality from the perspective of information and computation? Make use of programming skills in learning physical ideas?
Theme 3: Broader competences
What else should we cover besides CS, math, and physics?
Under this theme we can discuss e.g. the following topics, and if and how we should try to cover these competences in our CS degree:
- multidisciplinary competences
- understanding of human beings, environment, society, health, safety, sustainability, equality, law, ethics, government, economy
- work-life skills, study skills, research skills
- team work, cooperation, project management, leadership
- product design and development, doing experiments, laboratory work
- communication, languages, writing and presenting, information retrieval
- business understanding, economic thinking
- getting things done, solving problems.
Here are some more concrete questions to consider:
- Do our students acquire sufficient methodological skills before the Bachelor’s thesis?
- Is the Bachelor’s thesis enough, or should there be more opportunities for learning research and communication skills?
- CS major students cannot do a minor in CS, to ensure that the minor is serving the purpose of students learning also something outside their own major. But how should this be defined precisely? For example, is a minor in data science OK? Is a minor in electrical engineering OK even if it contains mostly just programming courses?
- How do we best benefit from the broad study opportunities provided by Aalto?
Theme 4: Minor students
How do we teach CS to non-CS students?
We need to keep in mind at least the following groups of non-CS students:
- majors that include advanced CS courses like Programming 1–2 (e.g. many SCI students)
- majors that include elementary CS courses like Basics in programming Y1–Y2 (e.g. many non-SCI students)
- those who choose the CS minor and follow the advanced path; such students may have already got some programming courses in their major
- those who choose the CS minor and follow the beginner’s path; such students may have already got some programming courses in their major
- those who want to use CS minor as a path to transfer from non-CS studies to the CCIS Master’s program.
Here are some more concrete questions to consider:
- Are the topics that we cover in Basics in programming Y1–Y2 the right ones?
- Are the topics that we cover in Programming 1–2 the right ones from the perspective of non-CS students? Note that CS major students take also Programming studio courses, but most non-CS-students students do not. Are there sufficient opportunities for non-CS-students to get practice in designing and implementing a complete computer program?
- Should we also offer something like Programming studio 1–2 to minor students? Recommend? Require? Let students choose between e.g. Programming 2 and Programming studio 2?
- Should the English version of the CS minor include Databases? Should it be recommended? Mandatory?
- What is a meaningful path for those who started with the beginner’s path but then realize they want to get much deeper into CS? How does one switch from the beginner’s path to the advanced path?
- Should the transcript of studies be more explicit about the level of the minor (advanced/beginner)? If not, where is the level of the minor documented, especially in exceptional cases?
Other curriculum-planning challenges
These are questions not directly related to the above themes, but that we need to also discuss when planning the 2024–2026 curriculum:
- How can we help to ensure that as many students as possible graduate in 3 years, as expected?
- Do the time slots of the lectures and exercise sessions make sense? Should we do a major re-planning at some point?
- How does the recommended schedule of studies work for those who will do exchange studies? Especially, how are half-year exchange studies compatible with the schedule of Software project 1–2?
- More generally, should we have multiple model timetables that are adjusted to different situations?
- Do we still allow students to include both Programming 1–2 and Basics in programming Y1–Y2 in the same degree? Exactly how do we specify all these restrictions?
- When are various MOOCs, life-wide learning courses, etc. acceptable as electives? When are they acceptable as a substitute for our courses?
- What are the key challenges with our teaching resources (people, facilities, tools, etc.) that prevent us from teaching what we want?
- What are the best practices and procedures we should follow to keep our curriculum in good shape also in the future?
Please let me know if you have got any further ideas that we should remember to discuss!
Updates for the November workshop
In the second workshop we will continue with the same high-level themes (see above). If you also took part in the first workshop, you are free to continue with the same theme, or join a different group. Material produced in the first workshop is available in the Google Drive folder, and you are encouraged to use it as a starting point.