# The bi-weekly ODD seminar series at CCSE

The Open Discussions on Didactics (ODD) is a seminar series on Tuesdays at 14.00 every other week (odd week numbers) on Zoom.

## Previous

In this talk I report on my experiences in teaching programming for humanities students. I have taught this in a variety of ways, as a course for PhD and MA students in linguistics specifically, as a BA-level course in the honours program and as a general BA course for humanities students. The two latter courses were developed in collaboration with CCSE. I will try to say something about why programming is difficult for humanitites students, how it can be made easier and more relevant, and what worked and didn't work in our latest incarnation of the course.

Our world is increasingly computational. In the fields of science, mathematics, engineering, and technology the effects of this shift are well established and ongoing. But what does this mean for other fields, like the arts, humanities, the trades, or agriculture? I will kick off this session by presenting a few ideas and observations on the importance of expanding our notion of computational literacy outside of purely scientific and technical fields, based on my experiences growing up in a farming community and my family network of farmers. Then, we will shift gears to a discussion of what this lens of computational literacy might mean for a general pre-college education and how we can provide a computational education to students outside of traditionally technical fields.

Programming is a useful tool in several disciplines, but teaching programming in a disciplinary context can be quite different than teaching programming for computer scientists. How can we motivate students with different backgrounds to make sure that programming is perceived as relevant? And how does this affect what the students learn? We will talk about how we can teach programming for biologists, chemists, teachers and high school students, and what this teaching implies.

An obvious purpose of computer code is that it gives some desired results when executed on a computer. This is often the overarching focus in programming education, especially outside informatics programs. However, it is in most cases also desirable that code is easily readable and modifiable to humans - this e.g. makes it easier to eradicate bugs or to modify/extend code for new purposes. Many programmers in industry and science are thus arguing for improved programming practices, where the focus is not just on solving one given problem at a time, but on writing code that can be reused and extended to increase productivity in the long run. What is often not explicitly factored into such argumentation, however, is that both learning and applying good programming practices requires effort. This raises two core questions: what level of code quality is typically most pragmatic to aim for in science settings, and how valuable is it to spend course time on learning to improve code quality?

We have encouraged students to develop their own physics problems, explore them and report on their results in the form of a computational essay in the course in elementary electromagnetism (Fys1120) from 2018 to 2021. In parallel we have developed new learning material and supporting exercises to provide students with sufficient skills and knowledge to succeed with an essay project. In 2021 the computational essay project was used as an extended home exam counting 50% towards the final grade.

In this talk, I will discuss experiences and reflections on the use of computational essays and how we plan to develop this activity in the coming years.

Computational thinking (CT) has been added to many educational standards around the world. However, this new content presents challenges around preparing teachers to incorporate computational thinking into the STEM disciplines. In this talk, I will first give a review of the literature around preparing pre-service secondary STEM teachers to incorporate computational thinking into their subjects. I will then present data from interviews with pre-service secondary subject teachers in the STEM teacher education program at UiO . The data highlight a current gap in the research on teacher preparation: that the computation learned in upper division subject courses does not directly translate to the computational thinking that they will be teaching their future students. Finally, I give some suggestions for remedying this gap.

I will present a possible model for task design of mathematical programming problems (MPPs), where both the overarching design and a concrete example is given.

Following the implementation of the design into a mathematics classroom, I will present the students interactions when they were working on MPPs as well as a short analysis of the findings.

Finally, presenting the types of obstacles students encounter when working on MPPs and a discussion regarding the different types. There will be examples from the MPPs, experiences from the implementation, and questions/discussion throughout the module.

In chemistry, students typically have their first encounter with quantum theory in a dense course covering an extremely broad range of topics to a somewhat shallow degree. Chemists require some knowledge of basic quantum theory, many body theory, time-dependent theory and spectroscopy.

BraketLab is a Python module being developed at the Hylleraas Centre of Quantum Molecular Sciences, which aims to provide a framework where the algebra and logic of quantum theory are automatically enforced, thus allowing the students to freely explore the quantum world and intuitively learn the rules while exploring.

I'll present the module, show some exercises and tutorials, and briefly share some experiences we've gained from teaching with it this semester.

Marcos Caballero: Integrating computation in American high schools - a tale of resourcing, federalism, and equity

Tor Ole Odden: Everything can be a vector! An approach to teaching machine learning to early physics students?

Statistics courses typically come in two different flavors:

1) A first type of course seeks deep understanding based on mathematical reasoning and proofs.

2) A second type of course focuses on practical applications, primarily based on fixed recipes without delving into underlying details.

3) I will here propose a third way, which seeks understanding of fundamental concepts, but through programming and simulation instead of mathematical proofs. This third way is thus geared towards students that have a stronger background in programming than mathematics, and that seek to understand the fundamentals as a basis for developing statistical analyses and data science methodology. This third way would also exploit its basis in programming to promote self-driven exploration, drawing inspiration from how computing has been integrated into science education through the long-running CSE initiative. I will provide examples ranging from how to explore the central limit theorem to performing Bayesian marginalization.

In this talk, I will briefly describe four different perspectives from the educational research literature on what it means to learn scientific computing: 1) modeling, 2) practices, 3) computational thinking, and 4) computational literacy.

I will also touch on the epistemologies inherent to each theory - what they have to say about scientific knowledge, cite key references, and suggest instructional approaches tailored to each approach.

Constructive alignment of learning aims, examination and learning activities is a convincing principle for course design. However, to make a meaningful alignment, we first need to precisely define and understand these aspects in the context of a given course. For instance, if learning aims are to truly guide/define examination and learning activities, we need a rich conception of learning aims that goes well beyond the short, general and typically vague formulations provided on course web pages. As always, devil is in the details. To initiate a discussion, I will show examples of how we have tried to face the challenge of being sufficiently concrete in our approach to constructive alignment in the course IN1000 (a large introductory programming course at UiO).

After having taught computing in a mathematical setting for many years, I have collected a number of observations and hypotheses about how students develop their understanding. In particular I have seen many examples of how computing triggers understanding of mathematical concepts. Some of these are quite standard, eg. numerical integration as a tool to extend the understanding of the definition of the integral. In this talk I will discuss some fairly obvious examples of this kind, but I will focus on some less obvious examples. Hopefully, this will illustrate that computing can be integrated fruitfully with mathematics in areas far beyond what we do today.

In the new CompSci MSCA PhD program we will educate 32 PHD-students across the faculty. They will all have a 20 ECTS intensive introduction course in computing and data science. This will open new opportunities to develop PhD-level courses in the spirit of the CS program. I will introduce a discussion of what the contents and level of such courses should be with a particular focus on how Fys4150 and Fys-stk4155 can be adapted to students with diverse computational skills.

It would be a mistake to assume that students have learned the thing you just presented to them. Formative assessment is thus concerned with informing both the teacher and the student about how much students understand about a topic, and discover any misunderstandings.

The seminar will be in Norwegian: "Vi presenterer en modell for kompetanseheving i realfaglig programmering for lærere. Modellen tar for seg opplæring i programmering på fagenes premisser, og vi ser på hvordan en slik modell kan brukes for lærere i høyere utdanning."

Computational thinking are by some defined as the capability to resolve problems algorithmically and logically, including skills related to representing, organizing and identifying patterns in data. This may be seen as leaning in a direction of discrete and observable processes. The Norwegian translation to "algoritmisk tenkning" can be read even clearer in the direction of defining explicit, deterministic instructions to achieve a well understood outcome. At the same time, computational thinking is not only promoted as a means to allow the development of concrete code/algorithms, but also as a way of thinking constructively about phenomena in a variety of fields. And it is clearly not the case that all phenomena in nature and society only involve discrete, directly observed entities - to the contrary, many relations and processes we may be interested in are continuous and probabilistic in their nature, where we have to constructively relate to risks, uncertainties and underlying patterns. An interesting question is whether the ability to devise algorithms to solve well defined problems and the ability to relate constructively to questions in an uncertain world should be seen as two aspects of the same skillset, or as separate skills that are cultivated through separate learning experiences.

What do we mean by "learning programming", why do many find it challenging to learn, what are really the main challenges, which aspects do people in different settings need to learn and how do they best learn it? Geir Kjetil Sandve will give a brief introduction to a discussion where we look forward to hearing experiences and viewpoints inspired by the myriad settings where people in our environment have been involved in programming.

Tor Ole Odden:

"The field of educational research has a massive literature base, with many journals that have been publishing articles for almost a century (or longer). How do we sort through and make sense of literature at this scale? We have begun using an unsupervised machine learning technique from the field of natural language processing, known as latent Dirichlet allocation, to analyze articles from the fields of physics education research and science education research. This technique allows us to extract latent themes, or topics, from the literature and quantify the rise and fall of those topics over time.

In this talk, I will present the basics of the technique, describe some of its underlying theory and applications, and showcase some of the trends that it reveals in how science education theory and practice has evolved over the last 20-100 years."