My applied teaching philosophy
In my approach to teaching, the teaching philosophies discussed above have been applied. Below, different approaches and examples from my teaching are discussed in this context.
Computer science with laboratory exercises
In computer science, the practical exercises developing the students experiences with problem solving are an important part of the learning environment. The only way to gain knowledge and competence at an appropriate level is to practice problem solutions using the available (programming) tools. This can not be taught only through lectures and text book reading. Students are exposed to exercises where the knowledge and competence of the learning goals have to be applied to solve the problems. Like in math, the students have to do such task repetitively to gain enough speed and experience to be able to solve such problems at the appropriate level. The experiences from these exercises obviously contribute to the inductive part of the learning model. The students can generalise knowledge from the accumulated experiences. However, the knowledge gain from the deductive part of the learning model (for instance in lectures) should be applied in these exercises.
Since the computer science laboratory is an important part of the learning environment, it is important to motivate the students to invest time and resources in this part of the learning. This can be done by force: a number of the practical exercise are mandatory or part of the exam and grading. This can also be done by making the exercises relevant for the exam: students that are putting a lot of effort into the practical exercises are also better prepared for the final exam and grading.
When designing a course and the practical exercises, a main focus is how the computer science laboratory can be used to contribute to the learning goals of the course. If we are able to make exercises that both contribute to a better understanding of the theoretical part of the course and to the knowledge and competence necessary to solve problems based on the learning goals, then we have successful exercises.
To effectively implement the computer science laboratory in courses, a number of teaching assistants (experienced students) are used. These teaching assistants will present the exercises for the students, and then help and guide them when solving the exercises. For this to function well, it is important that the teacher uses time and resources to guide the teaching assistents and get feedback from them. Typically a weekly meeting with all teaching assistent is used to explain current focus in the laboratory exercises (synchronised with the current lectures), share knowledge and experiences between the teaching assistants, and get feedback from the teaching assistants. In many courses the teaching assistants are the best source of information about, and feedback from, the students in the course.
All courses I have been responsible for has a laboratory part where the students gain practical experience solving problems relevant for the learning goals. One big success criteria of our students are their ability to use the tools they have learned to do problem solving. Feedback from companies recruiting our students confirm that they have gain a lot of knowledge from the experiences throughout the practical exercises, and that this knowledge is highly appreciated in these companies. This also matches the principles of the curriculum and important characteristics of the graduates presented above.
Abductive learning through self-defined student projects
The exercises that are part of the practical in normal courses contributes to both to the inductive and deductive learning. However, abductive learning is not typically a main part of these courses. The reason is that many courses need a focused and well planned progress with well defined (and limited) exercises. However, it is a goal to learn our students to present and analyse their own hypotheses or big-ideas. To achieve this we have developed courses and seminars where students can do larger projects based on their own ideas and hypotheses. This contributes to the abductive part of the learning model.
UICC and NFC programming
The first approach to such a course was the UICC and NFC programming course in 2013. This course was open for students with a minimum of three years computer science studies (students with a bachelor degree or similar). In the course, we presented some (complex) mobile technologies (NFC, Near Field Communication and UICC, Universal Integrated Circuit Card) and som ideas and example of how this could be used (Andersen et al. 2011; Lomsdalen 2015; Grønli 2014a, 2014b; Henriksen and Mortensen 2014; Christensen 2012; Alvestad 2012). We also made a laboratory with this technology available for the students. We then told the students that they should come up with their own idea (project) to do in this course, using this technology. They were given a limited time to learn more about the technology and to specify a project using this technology. We had to adjust our expectations a lot. They were to low. Many project suggestions were using a risk-taking strategy with ideas that we never had thought of. This was a positive surprise for us, but it also meant that we had to be prepared for some failures. The consequence was that the supervision of the projects had to be adapted to the common high-risk strategy among the students. We organised the course in milestones with deliverables, similar the real world software development approaches. We also asked students to document every step during the project. This was important if a project later failed (because of the high-risk). A well documented failed project should be able to get good grading. The learning outcome for students in a failed project can be as good as the learning outcome of students in a successful project. At the end the project the students submitted a report and had an aural exam were they presented their results. The results presented were very impressive. The students achieved a lot in the limited time available. One project failed with the original idea, but back-tracked and started on a new less risky idea. Since both the failure and the new successful, but less risky, project were well documented and analysed in the report and the presentation, the project got a good grading.
The UICC and NFC programming course was a collaboration with Telenor. Telenor provided both technology (hardware, software and infrastructure) and teaching resources. The use of external collaborators in teaching is also very motivating for the students. A company like Telenor represents the real world and real world problems.
The second approach was the game development course1 in 2015. This was done in a collaboration with the game development (and game development related) industry in Tromsø (Ramberg 2015). Other external collaborators also contributed to the course. Again, the students were suppose to do their own project from idea to a functional product. This time the milestones were organised as a typical game development project: high concept, design, prototype, alpha, beta, and live. Each milestone had a deadline, and at each milestone each project presented their current status. Also this time, many projects were in the high-risk strategy category. We used the milestones actively to suggest adjustments to the project to minimize the chances of failures. However, we organised the course so that a project failure did not mean bad grading in the exam.
In the course we used a lot of external collaborators in the lectures. Their main contribution was to motivate (and learn) the students to the right choices when developing a game. One thing that we did differently in this course was that we tried to involve the students more in the other students projects. At each milestone the students were given the opportunity to give feedback to the other projects. The students also used their fellow students to test and give feedback in the different phases of the game development (and game testing).
The results of the student projects in the game development course were impressive. What the students were able to do in this limited time based on their own ideas and concepts was beyond my understanding. One of the failed projects actually got one of the best gradings. In this project the student completely failed to develop the originally planned game, but the result was a game development environment (game engine) that only could had come from his original game idea. And since this was well documented and analysed, the result of the grading was very positive for the student.
IoT / LoRaWAN
The third approach is the IoT/LoRaWAN course in 2017. Also this is in a collaboration with Telenor. In this course, we followed the same approaches as in the previous courses. The students were given an introduction the Internet of Things (IoT) and the LoRaWAN network infrastructure and a few examples of possible usages. A laboratory with the necessary devices and infrastructure is made available for the students to experiment with. We have also organised a few mini-hackathons were the student spent a few hours working on completely different ideas using the available technology. The motivation for this was to make the students think outside the project they were currently working on. This could produce new insight for their own project and for the projects of their fellow students. During the course students submitted and presentedd the current status of the project through a series of milestones. At the milestone presentation they were given feedback and guidance from the lecturers and their fellow students.
Also this time, a large number of the students designed projects in the high-risk strategy category. Their abductive approach to solve the selected challenges made them own their own hypotheses of how this could be done. They first developed their own hypotheses. This hypotheses was then evaluated through the on-going work in the course. As described above, this includes both abductive, deductive and inductive learning. This course following the desribed approach has been repeated in 2018 and 2019.
Programming for computational sciences
Learning in the computational sciences is a challenging process. You need to combine a solid theoretical background (that is difficult to grasp in a short time) with concrete and relevant problem solving challenges. Relevant such tasks motivates the students in the learning process.
To achieve this we wanted to introduce programming as a tool for computational science students from the beginning. In addition, programming can be introduced as a throughout part in the subsequent courses in their curriculum. The original Introduction to programming course (Inf-1100) taught at the Department of computer science, UiT, has a strong focus in the learning goals of the computer science students, including computer architecture. The computational science students struggled with their motivation in this course. They could not see the direct relevance of what is taught in Inf-1100 with their own field of interest. Most programming examples are not relevant for what they learn in the other courses in their curriculum, and the strong focus on details related to he understanding of computers is far away from their interest in using programming as a tool for their learning.
To better match the needs of the students in computational sciences we developed a new course in programming: Inf-1049, Introduction to computational programming (Introduksjon til beregningsorientert programmering). The Department of Computer Science, UiT, is responsible for this course, but the course was developed as a joint project at the Faculty of Science and Technology (NT-fak). The main contributors to this project are Department of computer science, Department of Physics and Technology, Department of Chemistry, Department of Mathematics and Statistics and Department of Geosciences. The course is mandatory for the students from Department of Physics and Technology and Department of Mathematics and Statistics. For the other students at NT-fak the course is currently voluntary. However, Department of Physics and Technology, Department of Chemistry and Department of Mathematics and Statistics have incorporated programming in to the rest of the curriculum of their students.
The joint project work developing this course started in August 2016. The course was taught for the first time autumn 2017. The contributions from the other departments were essential. For the practical exercises in the course different exercises matching the background of the students were created. For example, a given mandatory exercise in the course can include one part that all students have to do, and one part where the students have to choose from a set of exercises. In this set it can be one exercise targeting the math students, one exercise targeting the physics students, one exercise targeting the chemistry students, one exercise targeting the geosciences students, and one exercise targeting the general student (not matching any of the other groups). In addition it is a goal to coordinate the lectures and the exercises in the course with the parallell courses of the students. When a topic is introduced in the math course the students are following in parallell, this topic is used as an example in the Inf-1049 lecture and used in the practical exercises in the course, subsequently.
In the development of the course we used experienced students from the different departments at NT-fak. They worked in the summer break with the course exercises. In addition, each department at NT-fak with interests in the course contributed to this work.
The development of this course was a large task for Department of computer science and the other involved departments at NT-fak. To be able to improve the quality of the teaching, the practical and the course itself, we applied for development funding (Utviklingsmidler) from the program for education quality (Program for undervisningskvalitet) at Result, UiT. The application, titled ITBeregn (“ITBeregn – Introduksjon Til Beregningsorientert Programmering: Fremragende Læring Med Beregningsmetoder” 2017), was joint work of Department of Computer Science, Department of Physics and Technology, Department of Chemistry, Department of Mathematics and Statistics, and Department of Geosciences. Another application to fund the development of the course was submitted to NT-fak (Andersen 2017). Both applications were successfull.
The work in establishing this new course was very successful. The collaboration between the different departments at NT-fak, the students representatives, and NT-fak itself, worked surprisingly well. I think the main reason for this success is that the Department of computer science decided to provide a course for the students in computational sciences based on their actual needs and in close collaboration with the other departments. We had a very open discussion from the beginning including all groups with interests in the course. We also decided to use significant resources in the development of the course to ensure that we meet the expectations from all participants in this joint project. The experiences in the development of this course will be presented at the 2019 MNT conference (Andersen, Anfinsen, and Frediani 2019).
Between August 2016 and August 2017 I was responsible for coordinating and managing the development of the course. I have also strongly pushed the open and collaborative approach in the course development. I belive that this collaboration makes all contributors feel ownership in the resulting course, and therefor also responsibility for continuous collaboration and support with the course staff.
Early on, we also established an external collaboration with CCSE at UiO. Their experience developing similar courses (and curriculum) over years have been a major input to our work developing this course (Mørken et al. 2011; Hjorth-Jensen et al. 2009; Langtangen 2016).
Alvestad, Per Olav Aukrust. 2012. “Near Field Communication – NFC.” TV, Schrødingers katt NRK (Anders Andersen, Arne Munch-Ellingsen programme participants).
Andersen, Anders. 2017. “Ressurser Til Utvikling Av Nytt Emne Inf-1049.” Søknad om finansiering fra NT-fak til etablering av nytt emne. NT-Fak, UiT Norges Arktiske Universitet.
Andersen, Anders, Stian Normann Anfinsen, and Luca Frediani. 2019. “Fremragende Læring Med Beregningsorientert Programmering.” In MNT-Konferansen 2019. Tromsø.
Andersen, Anders, Øyvind Holmstad, Randi Karlsen, and Tor Kreutzer. 2011. “NFC City Context Sensitive and Social Networking Experiments.” In PDT’11, Proceedings of the Workshop on Posters and Demos Track at Middleware 2011. Lisbon, Portugal: ACM.
Christensen, Arnfinn. 2012. “Mobiltaggerne.” Internet, Forskning.no (Anders Andersen, Randi Karlsen interview subjects).
Grønli, Kristin Straumsheim. 2014a. “Derfor Kan Du Betale Med Mobilen Først Nå.” Internet, Teknisk Ukeblad, www.tu.no (Sigmund Akselsen, Dag Slettemeås, Anders Andersen interview subjects).
———. 2014b. “Snart Fart På Mobilsveip.” Internet, Forskningsrådet, www.forskningsradet.no (Sigmund Akselsen, Dag Slettemeås, Anders Andersen interview subjects).
Henriksen, Thor Harald, and Terje Mortensen. 2014. “Din Nye Mobil-Hverdag.” Newspaper, VG (Sigmund Akselsen, Anders Andersen, Bente Evjemo, Simen Lomås Johannessen interview subjects).
Hjorth-Jensen, Morten, Knut Mørken, Annik Myhre, and Hanne Sølna. 2009. “Computers in Science Education: A New Way to Teach Science?” In Ringer I Vann: Lenge Leve Fleksibel Læring Ved Universitetet I Oslo, edited by Susanne Kjekshus Koch, 29–40. Universitetets senter for informasjonsteknolog, UiO.
“ITBeregn – Introduksjon Til Beregningsorientert Programmering: Fremragende Læring Med Beregningsmetoder.” 2017. Prosjektbeskrivelse UiT Norges arktiske universitet ved Strategisk utdanningsutvalg prosjektmidler for 2017, Program for undervisningskvalitet – Utviklingsmidler.
Langtangen, Hans Petter. 2016. A Primer on Scientific Programming with Python. 5th ed. Texts in Computational Science and Engineering. Springer-Verlag.
Lomsdalen, Per Haakon. 2015. “NFC City I Tromsø Testet Ut Tallrike Bruksområder for Nærkommunikasjon: Stort Potensial.” Newspaper, Kapital No. 2 (Anders Andersen interview subject).
Mørken, Knut, Nina Sasaki Aanesen, Lars Oswald Dahl, Hugo Lewi Hammer, Terje Brinck Løyning, Anders Malthe-Sørenssen, Elisabeth Nøst, Ingve Simonsen, Jon Eivind Vatne, and Tone Skramstad. 2011. “Beregningsorientert Utdanning: En Veileder for Universiteter Og Høgskoler I Norge.” Rapport. Det matematisk naturvitenskaplige fakultet, UiO.
Ramberg, Ida. 2015. “Kan Ta Studiepoeng I Spill.” Newspaper, iTromsø, itromso.no.