• No results found

Developing an online learning module for C programming and Lego robot EV3 programming

N/A
N/A
Protected

Academic year: 2021

Share "Developing an online learning module for C programming and Lego robot EV3 programming"

Copied!
174
0
0

Loading.... (view fulltext now)

Full text

(1)

Developing an online learning module for C programming and Lego robot EV3 programming

GUSTAV BÖHLMARK JINLEI LI

KTH

SKOLAN FÖR KEMI, BIOTEKNOLOGI OCH HÄLSA

(2)
(3)

Abstract

Recently, the school of electrical engineering and computer science (EECS) at the Royal institute of technology (KTH) proposed to introduce a new learn- ing module for the course Engineering Methods - II1300. The module is to introduce both C programming and LEGO robot EV3 programming, to help the students to complete a course project.

A literature study was first conducted to investigate how a learning module should be designed and what information was needed. Data from a survey rou- tinely performed by the department and another in this work were collected.

The data showed a wide variety in background knowledge among the students who attended the course. Many students believed that they did not receive enough learning material to complete the C assignments nor sufficient instruc- tions for programming the LEGO robot.

Based on the data analyses and guided with the Constructive Alignment method and the Scaffolding theory, a specification was created, and the desired learning module was developed. The module provides necessary instructions, good code examples and relevant resources that may be needed. It arranges a balanced amount of learning activities. It is expected to guide the learn- ing process and improve the learning efficiency, and to facilitate the teaching process and reduce the workload.

The learning module highlights a structured and modular way to teach fun- damentals of C programming using the Scaffolding teaching method in con- junction with Constructive Alignment. The module can be reused with small modifications for similar courses by substituting the contents. Moreover, the strategy and the methods, which the project adopted to develop the module, are rather general and in principle are applicable to most online course devel- opment.

Keywords: Teaching, C, Programming, LEGO, EV3, Scaffolding, Construc- tive Alignment, Online course, Course Module

(4)

ii

Sammanfattning

Nyligen föreslog Skolan för elektroteknik och datavetenskap (EECS) på Kung- liga Tekniska Högskolan (KTH) att införa en ny inlärningsmodul för kursen Engineering Methods - II1300. Modulen ska introducera både C-programmering och LEGO-robot EV3-programmering, för att hjälpa eleverna att slutföra ett kursprojekt.

En litteraturstudie genomfördes först för att undersöka hur en inlärnings- modul ska utformas och vilken information som behövs. Data från en under- sökning som rutinmässigt utförts av institutionen och en annan i detta arbete samlades in. Uppgifterna visade en stor variation i bakgrundskunskaper bland de studenter som deltog i kursen. Många studenter trodde att de inte fick till- räckligt med läromedel för att slutföra C-uppgifterna eller tillräckliga instruk- tioner för att programmera LEGO-roboten.

Baserat på dataanalyserna och med hjälp av Constructive Alignment och Scaffoldning skapades en specifikation som användes för att utveckla inlär- ningsmodulen. Modulen innehåller nödvändiga instruktioner, bra kodexempel och relevanta resurser som kan behövas. Det ordnar en balanserad mängd lä- rande aktiviteter. Det förväntas vägleda inlärningsprocessen och förbättra in- lärningseffektiviteten och underlätta undervisningsprocessen och minska ar- betsbelastningen.

Lärningsmodulen belyser ett strukturerat och modulärt sätt att undervisa i grunderna i C-programmering med hjälp av undervisningsmetoden Scaffol- ding i samband med Constructive Alignment. Modulen kan återanvändas med små ändringar för liknande kurser genom att ersätta innehållet. Dessutom är strategin och metoderna, som projektet antog för att utveckla modulen, ganska allmän och är i princip tillämpliga för de flesta onlinekursutveckling.

Nyckelord: Utlärning, C, Programming, LEGO, EV3, Scaffolding, Constructi- ve Alignment, Onlinekurs, Kursmodul

(5)

Acknowledgements

A special thanks to our advisors at KTH, Royal Institute of Technology, Fadil Galjic, Anders Sjögren and Ibrahim Orhan, for providing with valuable in- sights and feedback throughout the degree project.

Stockholm, June 5

Jinlei Li and Gustav Böhlmark

(6)
(7)

1 Introduction 1

1.1 Background . . . 1

1.2 Problem . . . 2

1.2.1 Research Questions . . . 2

1.3 Purpose . . . 2

1.4 Goals . . . 3

1.5 Research Methodology . . . 3

1.6 Delimitations . . . 4

1.7 Structure of the thesis . . . 5

2 Background 7 2.1 Teaching methods . . . 7

2.1.1 Constructive Alignment . . . 7

2.1.2 Scaffolding . . . 8

2.2 Course - Engineering Methods . . . 10

2.3 Programming . . . 10

2.3.1 C . . . 10

2.3.2 Not eXactly C . . . 11

2.4 LEGO Mindstorm . . . 11

2.4.1 NXT . . . 11

2.4.2 EV3 . . . 12

2.5 Resource Efficiency . . . 12

3 Methods 15 3.1 Research Process . . . 15

3.1.1 Qualitative method . . . 16

3.1.2 Bunge’s method . . . 16

3.1.3 Research Model . . . 17

3.2 Literature Study . . . 18

v

(8)

vi CONTENTS

3.3 Survey . . . 18

3.3.1 Questionnaire . . . 18

3.3.2 The target population . . . 19

3.3.3 The questions . . . 19

3.3.4 Sample size . . . 20

3.3.5 Implementation . . . 20

3.4 The Case Study . . . 20

3.4.1 MoSCoW . . . 21

3.5 Development . . . 21

3.6 Evaluation . . . 22

4 The Case Study 25 4.1 Questionnaire . . . 25

4.1.1 Result of the routine course evaluation . . . 25

4.1.2 Result of the project survey . . . 26

4.1.3 Implications on module design . . . 33

4.2 Course Site . . . 34

4.2.1 Course information . . . 34

4.2.2 Course content . . . 34

4.2.3 Usage of the old course . . . 36

4.3 Conclusion . . . 36

4.3.1 Specification . . . 37

5 The Module Design 39 5.1 Module Architecture . . . 39

5.1.1 Design . . . 40

5.2 Module Content . . . 41

5.2.1 The C submodule . . . 41

5.2.2 The LEGO Submodule . . . 45

6 Discussion 47 6.1 Methods and their implications . . . 47

6.1.1 Case study . . . 47

6.1.2 Module evaluation . . . 48

6.2 Answering the Research Questions . . . 50

6.2.1 RQ1: How do you create a module that the students can learn from? . . . 50

6.2.2 RQ2: How can learning material that engages the stu- dent be created? . . . 51

(9)

6.2.3 RQ3: How does a learning module improve the time

efficiency for both students and teachers? . . . 53

6.3 Reflections/Different Aspects . . . 55

6.3.1 Portability and sustainability . . . 55

6.3.2 Equality and diversity . . . 55

7 Conclusions 57 7.1 Summary . . . 57

7.2 Suggestions to KTH . . . 58

7.3 Future work . . . 58

Bibliography 61 A Survey 65 A.1 Questionnaire . . . 66

A.2 Results from the project questionnaire . . . 69

A.3 Course evaluation . . . 70

B Old course material 91 B.1 C-programming . . . 92

B.2 EV3 Concept Model . . . 104

B.3 Assignment C-programming . . . 105

C C course submodule 107 C.1 C-programming tutorial . . . 108

C.2 Quiz . . . 127

C.3 Seminar Questions . . . 138

D Lego course submodule 139 D.1 Introduction - EV3 . . . 140

D.2 Get started with EV3 . . . 144

D.3 EV3DEV . . . 146

D.4 EV3DEV installation . . . 147

D.5 EV3DEV programming . . . 151

D.6 Terminal - Cheat sheet . . . 155

D.7 Lego C examples . . . 158

(10)
(11)

Introduction

A learning module is conceptualized as self-contained "units” of contents or techniques [1]. They are instructions for students to follow to master required knowledge for a specific subject. New students at universities often have differ- ent backgrounds and therefore the previous knowledge of a subject may vary greatly between individual students. While some might have in-depth knowl- edge in the subject, others might never have touched upon on the subject at all.

Those with less background knowledge have a lower tendency to complete the course [2]. To help these students, it is required to tailor learning material to a wide variety of students, so that it not only gives everyone the opportunity to expand their knowledge, but also helps the students with less knowledge to catch up. Having a modular learning platform should not only allow teach- ers to quickly adapt material to the students experience level, but also allow students to consume relevant material to their own knowledge level.

1.1 Background

The course Engineering Methods (II1300) at Royal Institute of Technology (KTH) mainly aimed to teach knowledge of engineering practices as well as basic skills in using engineering tools. A course project about LEGO robot programming was to practice the knowledge and skills that the students ac- quired from the course. In the project the students were asked to program a LEGO robot to make it complete a delivery task.

However, there were some issues in the old course. Many students thought the learning materials for programming were deficient, and with the course in- troducing a new robot, EV3, the old LEGO documentation became unusable since the old hardware used NXC for programming, instead of C, which is go-

1

(12)

2 CHAPTER 1. INTRODUCTION

ing to be the introductory programming language for the course. Additionally, the course layout needed to be improved. Therefore, the school of electrical engineering and computer science (EECS) at the KTH offered a proposal to design a new learning module for the course Engineering Methods - II1300.

The new learning module are expected to contain introduction to both C fun- damentals and LEGO robot programming with C.

In this thesis, when referring to a module, we are referring to learning ma- terial that can be divided into sections, where each section can be changed without greatly affecting others. It is directly related to the teaching plat- form used by KTH, Canvas, where one can create modules containing pages, quizzes, discussion forums, etc.

1.2 Problem

The task given by KTH is to create a learning module that can be used in the course Engineering Methods - II1300. The learning module should contain two submodules, one should introduce C programming fundamentals. The other one should include an introduction on how to program the LEGO Mind- storm device called EV3. Specifically, the module content should include the following:

• Basic tutorials on C programming

• Instruction on LEGO EV3 programming

• Necessary teaching activities and assessments

1.2.1 Research Questions

• How do you create a module that the students can learn from?

• How can learning material that engages the student be created?

• How does a learning module improve the time efficiency for both stu- dents and teachers?

1.3 Purpose

The project purpose is to provide the course responsible for Engineering Methods with an alternative module consisting of materials and resources that

(13)

students can use to complete the course and gain knowledge for later courses.

Another purpose of the project is to fulfil the objectives of the degree project and to show that the requirements of the course are met.

The general academic purpose is to create a learning module and related material that both engages and teaches students at the same time, which in- cludes helping the students understand the basics of C programming so that they later can program a functional LEGO robot with the help of the LEGO programming instructions. The purpose of the module design is to reasonably organize all the materials into the module for efficient learning.

1.4 Goals

The goal of the project is to design a learning module that can be used to teach in a structured and modular way the basic knowledge/technique that are used to program a LEGO robot. This has been divided into the following three sub-goals, which are of same importance.

1. The module should contain module information, example applications, scheduled activities and other necessary materials and resources.

2. The teachers can use the learning module as an effective tool to coordi- nate and control the learning pace and content, be able to interact with students and evaluate their studying results.

3. The students can use the module to follow the guidelines of the learning objectives in this module and complete the module task smoothly.

1.5 Research Methodology

To be able to reach the goals of the thesis as well as answer the research ques- tions, a strategy for how to carry out the project is needed. This strategy con- sists of methods that will ensure that the project is conducted in a successful manner. The research methods can be generally grouped into two categories, qualitative methods and quantitative methods, although some methods can be- long to both.

Because the main users of the learning module are teachers and students and this module is targeted for a specific course, meeting their needs on teach- ing and learning is the most important. To create a good learning module, an investigation into the students and teachers specific demands will be made

(14)

4 CHAPTER 1. INTRODUCTION

before starting the module design. A suitable way to gather this data is to use a qualitative method such as a case study to gain the information require to create the module and as a result, answer the research questions.

The research will be structured as following:

1. A literature study to gain the required background knowledge of the subject such as learning strategies, programming languages, the LEGO robot, etc. The literature study will also include studying how to cor- rectly perform a survey and how to later conduct a proper case study.

2. A survey on the students of course II1300 to gain the relevant data needed in the case study.

3. A case study to gather the required information so that a specification can be made on how the module should be constructed.

4. Module prototype development based on the specification constructed from the results of the literature study and the case study.

5. Evaluation of the prototype in regards to the teaching methods chosen and the case study conducted. This allows us to see if the prototype has met the required goal and helps understand the results and to be able to answer each of the research questions listed in this study.

1.6 Delimitations

The Case Study is limited to the course Engineering Methods HT2019 and its students.

The project will be limited to the basics of C programming and basic intro- duction to the LEGO robot EV3 provided by the course. Materials for multiple programming languages will not be created or evaluated.

In this project, the framework when creating the learning activities and assessment will be Constructive Alignment, while the material created will follow the teaching method Scaffolding.

(15)

1.7 Structure of the thesis

The remainder of the thesis is structured as below:

• Chapter 2 presents relevant background information of the thesis in de- tail, so that readers would be able to fully understand the rest of the the- sis. The background information includes the learning theory on which the design of this learning module is based, background of C program- ming and the modelling method, background of the LEGO-robot and re- lated programming techniques. Learning materials from the old course are also brought up.

• Chapter 3 presents the methodology and method used to solve the prob- lem during the project, including both the research and practical meth- ods. A case study method is used to study the teaching methods in the course Engineering skill. A literature study was set up and used to get information in relevant areas. A questionnaire as a survey method is used for requirement analysis. Methods used in development and eval- uation have also been demonstrated. Discussions are made to explain why each method is chosen for the project.

• Chapter 4 describes how the result of the case study performed on the old course. It includes the results of the questionnaire to the students who attended the course and their implication on the module design. It also shows the course content picked from the old course site and analyse what the materials can be reused in the new C module.

• Chapter 5 describes the project result, i.e. the C learning module. It demonstrates the content of the module and how they are structured. It also shows the evaluation of the completed learning module.

• Chapter 6 analyses the methods used in the thesis, their implications, the evaluation of the project, and answers each of the three research questions. Ethical and sustainability aspects related to the work are also discussed.

• Chapter 7 summarizes the conclusions of the thesis and its implications, as well as gives suggestions for future work based on the current solu- tion.

(16)
(17)

Background

To gain an understanding of the subject in this project some background in- formation is required. This chapter describes information about the teaching method that is being used, relevant information of how the course II1300 is constructed, information about the LEGO robot that the course uses, and lastly, information about what time efficiency entails.

2.1 Teaching methods

When creating learning material for a course, you will need to follow some sort of guide to give each student the best possibility of learning and the teacher a way to assess the learning process. There are many ways to do this, but this study will look into two specific educational design methods, Constructive alignment and Scaffolding.

2.1.1 Constructive Alignment

Constructive alignment, devised by John B. Biggs, is centred around having a predetermined outcome from the learning experience. That is, the student should know beforehand the learning outcome of the education and how they will be assessed in the end. This allows for a clear path from start to finish in the learning process, not only for the student, but also for the teacher assessing the performance [3]. The workflow of Constructive Alignment when designing material is as followed:

1. Describe the intended learning outcomes for the student.

7

(18)

8 CHAPTER 2. BACKGROUND

2. Create a learning environment that engages the students in each learning outcome.

3. Create assessment tasks to help judge students’ performances.

4. Use the judgements to give students a final grade.

The design of the architecture of the module is based on Constructive Alignment, where all teaching and assessment is aligned with the intended outcomes and the alignment is centred around that learners actively construct their own understanding. Figure 2.1 illustrates how the elements of a module should fit together in constructive alignment [4].

Figure 2.1: Constructive alignment of the teaching module elements

2.1.2 Scaffolding

The learning environment that will be used in this project (step 2 in construc- tive Alignment) will be scaffolding. Created by Jerome Bruner, the theory building upon Lev Vygothsk’s social constructivism theory, introduces the idea of instructional scaffolding, where the students "scaffolds" gradually gets reduced as the students gain more knowledge within the subject [5]. The main ideas of the theory can be summarized as follows [6]:

(19)

• Learning is an active process. Learners select and transform informa- tion.

• Learners use prior experience to fit new information into the pre-existing structures.

• Teachers should offer support for learning. This assistance becomes gradually less frequent as it becomes unnecessary.

• The intellectual development includes three stages. The enactive stage which refers to learning through actions. The iconic stage which refers to the learners use of pictures or models. The symbolic stage which refers to the development of the ability to think in abstract terms.

• The notion of spiral curriculum states that a curriculum should revisit basic ideas, building on them until the student grasps the full formal concept.

Bruner’s learning theory has been considered as a reference during the design of this learning module. Here are some of these implications:

1. Instruction must be appropriate to the level of the learners. Being aware of the learners’ learning level will help planing and preparing the ap- propriate materials for the instruction according to the difficulty that matches learners’ level.

2. Material must be presented in a sequence giving the learners the op- portunity to construct the knowledge and transform their learning. The content of the learning module is organized in efficient ordering in or- der to improve the students’ understanding and help them achieve the objectives.

3. Students should be involved in using their prior experiences and struc- tures to learn new knowledge. The tutorials are arranged in sequence, which means that at any time the following new knowledge is based on the previous knowledge or experiences. As another aspect, each new task is also designed based on the already acquired knowledge of stu- dents. Thus, the students can gradually integrate the new things into the existing knowledge structure.

4. Teachers should assist learners in building their knowledge. This as- sistance should fade away as it becomes unnecessary. In this learning module, there are several help sessions where teacher or teaching assis- tants help students with the exercises and project work.

(20)

10 CHAPTER 2. BACKGROUND

2.2 Course - Engineering Methods

The overall aim of the course Engineering Methods is to teach knowledge of engineering practices as well as basic skills in using different engineering tools, with emphasis on project methodology, presentation skills and computer as a working tool. The course was conducted through lectures, exercises, oral presentations, book seminar, personal study planning, a course project with tutorials and a written course report.

The course project, using a NXT LEGO robot as a base, was used to enable the students to master the required Engineering Methods, e.g. in project plan- ning and teamwork. One important part of this course project was to program the LEGO robot using the language NXC. Recently the course started intro- ducing the programming language C to help the students with said project. The course also started replacing the older NXT robot with the newer LEGO EV3 robots. With both of these changes EECS proposed to design a new learning module for the course to help organize and teach the students the basics of C programming as well as how to use C to program on the new robot.

2.3 Programming

Programming is when you design, build, and execute a program to accomplish a specific task. Programming today is often done by using different high-level languages that are easy to understand, and then compile (convert) them to machine code that then can execute on your computer. Popular languages used today are Java, C, C++, Python and many more.

2.3.1 C

C language was initially developed by Dennis Ritchie in 1972. It is a proce- dural programming language, which was mainly developed as a system pro- gramming language to write an operating system [7].

The main features of C language include low-level access to memory, a simple set of keywords, and clean style. However, it is a robust language with a rich set of built-in functions and operators that can be used to write any complex program. So, it is a language with both syntax simplicity and decent functionality. It can also be said as a popular base language since any later lan- guages have borrowed syntax/features directly or indirectly from C language.

Like syntax of Java, PHP, JavaScript, and many other languages are mainly based on C language. C++ is nearly a superset of C language [8]. Thus, it is

(21)

one of the best contender to be taught to students who have just started learning coding, to introduce them into the programming world.

2.3.2 Not eXactly C

Not eXactly C, or NXC for short, is a high-level programming language based and compiled on the language called Next Byte Codes (NBC), which is a lan- guage using assembly-like syntax. The language was created by John Hansen in 2006 and uses the Bricx Command Center (BricxCC) as an IDE, the same as NBC [9].

While NXC uses similar syntax to C, it differentiates quite a lot from C.

While C uses functions, NXC uses something called Tasks and Subroutines.

This allows for a structure that is easy to read and follow, which can be excel- lent for someone new to programming, allowing the user to start thinking in conditions while not overwhelming the user in other functionalities.

2.4 LEGO Mindstorm

LEGO first introduced their Mindstorm products in 1998, which became an in- stant success among consumers. Featuring LEGO bricks, motors, gears, sen- sors and of course the center of everything, the Robotic Command eXplorers (RXC) Brick [10].

The RCX came with a RCX Code programming environment, which al- lowed for a drag and drop experience when programming the robot. The robot was born out of inspiration from a previous corroboration with the MIT Me- dia laboratory, where they used an extended version of the Logo programming language developed by MIT to control a simple robot called LEGO/Logo [11].

The wired design was however rather clunky, and LEGO decided that the wireless (You still needed to upload the code to the robot) approach was more desirable to the consumer. Since 1998 and the release of the RCX system, two more generations of the Mindstorm set have been released, the Next (NXT) in 2006 and the Evolution 3 (EV3) in 2013, all of which you can see in figure 2.2[12].

2.4.1 NXT

With the introduction of the NXT came some improvements to the robot and its hardware, as well as improvements to the software and programming side

(22)

12 CHAPTER 2. BACKGROUND

Figure 2.2: The evolution of the Mindstorm brick

of the product. On the hardware side the upgrades included support for mo- tors with integrated servos, Bluetooth, better speakers, both new and improved sensors and a matrix display with a resolution of 100x60 pixels instead of nu- merical display. And at last together with a better CPU it also came with better memory, instead of only using RAM, it instead used a flash memory allowing long term storage [13][14].

The new hardware provides new possibilities for the software, other than the included graphical programming environment NXT-G that came with the robot. A multitude of third-party languages and programming environments were created for the NXT such as Bricx Command Center (BricxCC), an IDE used to write and compile programs using the language NXC.

2.4.2 EV3

Other than a new gyro sensor and the improved processor, the most notable features of the new EV3 compared to the older NXT is the addition of a mi- croSDHC slot. This allows the user to not only save larger programs, but also allows them to install their own operating system (OS) on the device by simply inserting a flashed SD card into the robot. An example of this is the ev3dev operating system, giving the user a Debian Linux-based operating system that the user can connect to using the Secure Shell (SSH) protocol [15].

2.5 Resource Efficiency

To get an understanding of what time efficiency is, some background to what efficiency means must be provided. The resources that humans have access

(23)

to is often limited, be it natural resources, money, time, etc. These resources must often be prioritised on the more important parts of our lives. An example of prioritising could be that a company decided to use more money on market- ing then development, since they might have information that the net profit is higher when prioritising quantity over quality. In this case, the company has a more effective resource usage, where their money is spent on the thing that yields the better result. Efficiency is measured in the ratio between input and output, this can be simplified with the formula:

E = O/I

Here O is the output, I is the input and E is the efficiency [16]. In the case of a student and a teacher, the resources that is put in is often not money, but the time that the students and teachers can put in to the course. The output can be both how much they learn but can also be for example project result.

A course of 7.5 hp (1.5 hp = one school week) is equal to 200 hours, which means that each student has a limited amount of time that they can allocate towards a course. That means that the course only has a limited time to teach each student the subject. Each student must therefore prioritise what they need to learn and in what manner they should learn it.

(24)
(25)

Methods

This chapter is about the research methods used in this project. It illustrates why each method was employed and describes how each stage was executed during the project, from Literature Study, to Data Gathering, Case Study, De- velopment and lastly Evaluation.

3.1 Research Process

Before the project is started, a suitable research strategy must be found. The questions the research should be able to answer are the following:

• How do you create a module that the students can learn from?

• How can learning material that engages the student be created?

• How does a learning module improve the time efficiency for both stu- dents and teachers?

Since the project is aimed to create a learning module, where the results can be either measured or evaluated using opinions and other subjective methods, both a quantitative and a qualitative approach is suitable [17]. However, as stated earlier this project started after the course that is being studied was held and will end before the next course starts. Considering the circumstances, a fully quantitative approach is not feasible to implement in this study and it will be impossible for us to see results of such an implementation. A qualitative research approach is therefore preferred and adopted for this project.

15

(26)

16 CHAPTER 3. METHODS

3.1.1 Qualitative method

A qualitative research method, compared to a quantitative, is more focused on the social aspect of a research question, be it opinions, behaviours, or other in- formation that can be applied to a certain population [18]. There are different types of qualitative research methods for different types of research questions, such as in-depth interviews, focus groups, ethnographic research, content anal- ysis, case study, etc. The one that will be used here is the Case Study method.

It allows us to look into a particular case, e.g. the autumn term 2019 of the course Engineering Methods, as to be dealt with in the thesis.

3.1.2 Bunge’s method

The project will follow the general scientific strategy defined by Mario Bunge [19], which was generalized by Andersson and Ekholm to fit technological research [20]. It can be defined with the following steps:

1. How can the current problem be solved?

2. How can a product be developed to solve the problem in a efficient way?

3. What information is available and is required to develop the product?

4. Develop the product based on the information gathered in step 3. If the product is satisfactory, go to step 6.

5. Try with another product.

6. Create a model of of suggested product.

7. What are the implications of the model in step 6?

8. Test the implementation of the model. If the outcome is dissatisfactory, go to step 9, otherwise go to step 10.

9. Identify and correct flaws with the model.

10. Evaluate the result in relation to existing knowledge and praxis. In ad- dition, identify new problems for further research.

(27)

Figure 3.1: Research Model

3.1.3 Research Model

The general research model for this project is shown in Figure 3.1 and is based on Bunge’s method.

The project starts with a literature study, which is to gather relevant in- formation about the subject of the project. The literature study also helps to further cement the research question and the research model described here.

Next up is the data collection phase. Since a case study will be performed on a course that has already taken place, questionnaires were sent to the stu- dents to gather information about their thoughts on the course and its contents.

The data are typically the frequencies and thus the percentages of specific an- swers that the respondents chose to closed-ended questions. There are also data of what materials to be added to the C programming section and the fre- quency of each has been mentioned, from an open-ended question.

The analyse phase is directly tied to the data collected and the develop- ment phases. It will not only help answer the research questions by providing information about the current course material effectiveness, but the data will also be used to construct a specification for the module for the course in ques- tion.

In the development phase, a module is created from the specification and with the information gained from the literature study in mind. It is important to differentiate between necessary features and "good to have" features, this should be clear from the specification made from the case study.

Regarding the evaluation phase, it is impossible for us to evaluate the

(28)

18 CHAPTER 3. METHODS

learning module in practice before the completion of the thesis. Instead, an evaluation based on if the module meets the requirements set by the specifica- tion and if the module follows the chosen teaching method correctly.

3.2 Literature Study

To get an understanding of the subject at hand, a literature study was set up and used to get information in relevant areas. Those areas being teaching methods, creation of an online course, the C language, the LEGO Mindstorm platform and lastly resource efficiency.

Since the module that is being created is a learning module, teaching meth- ods were seen as one of the most important areas for us to do research in. This ties directly into to the two first research questions of how a engaging learning module for the students can be created.

The same can be applied to the creation of an online course, but here, the focus lies more on how the course content can be created so that it can easily be accessed and used by the students who are taking the course. The module also needs to be easily accessible for the teacher in terms of changing content and examination purposes, be it quizzes, or other tasks given to the students.

And at last the C language and LEGO Mindstorm platform are of course as important as the previous areas. To be able to create the module, research into both areas will need to be made. While there exist previous material related to C already in the course that can be reused, the new LEGO Mindstorm platform that the course is using, the EV3, does not have the same amount of material and therefore will need extra attention during the literature study.

The primary tool used to find the materials was Google Scholar and Re- search Gate. These tools provide an reliable way when searching by keywords.

3.3 Survey

A survey is a way to systematically gather information from a group in a quan- titative manner. However, the results may not always be of a quantifiable nature and thus a qualitative approach to evaluate the data may be needed [21].

3.3.1 Questionnaire

A questionnaire is a research instrument that falls under the survey umbrella.

It is consisting of a series of questions (or other types of prompts) for the

(29)

purpose of gathering information from respondents. Questionnaires have ad- vantages over some other types of surveys in that they are cheap, do not require as much effort from the questioner as verbal or telephone surveys, and often have standardized answers that make it simple to compile data. A question- naire is therefore adopted in our research work for statistical analysis of the students’ responses about the old course, which can be used when creating a specification for the module design and to help answer the research questions.

3.3.2 The target population

The target population for a survey is the entire set of units for which the sur- vey data are to be used to make inferences [22].The target population of the questionnaire in this survey are students who have previously taken the course II1300, autumn 2019.

3.3.3 The questions

The main questions that should be answered with the help of the survey are the following:

• The background knowledge level of the students that start the course

• The students perceived difficulty of the content they consumed

• The students perceived usefulness of the content they consumed The answers to these questions, together with the information gathered in the literature study, will allow us to create a specification for the modules.

The amount of questions is set to be 7 considering survey timing. Since the students are most likely to respond to the questionnaire at their leisure, too many questions would lower their willingness to do so.

To make a good survey design, an understanding of what users i.e. survey respondents want and what is in it for them is. Since the product for the users is a learning module, the availability and efficiency of the module should be of the most importance. Therefore, the surveying questions are designed to check what they think about the availability and efficiency of the old course web pages related to programming. The questions should really count and can make a difference to the end outcomes, and should give an accurate insight to use in how the module should be designed.

A research questionnaire is typically a mix of close-ended questions and open-ended questions [23]. In this survey, there are several close-ended ques- tions and one open-ended question. The closed-ended questions consist of

(30)

20 CHAPTER 3. METHODS

pre-populated answers (1-5 which represents the degree of respondent’s ac- ceptance to that question) for the respondent to choose from, while one open- ended question asks the respondent to provide feedback in their own words.

The closed-ended questions are to ask the students about their experience in programming, whether they think the learning materials (on C programming respective Lego robot programming) in the old course are enough, and whether the instructions and activities are easy to follow. From the answers of the questions an understand of the programming level of the students can be made, which is helpful to prepare learning materials corresponding to their average status. The survey also gives us information on what improvements that can be made in the old learning materials or the way they are organized. Additionally, there is also an optional question that asks which language they would like to be introduced in this course, which could be used as reference for the next course session in the future.

The open-ended question is to ask the respondents to write down what more materials should be added compared to the old course content related to the programming section. It is very meaningful for us when updating the materials in the new module.

3.3.4 Sample size

Clearly, the larger sample size that is worked on, the more reliable the results will be as they will often be more precise. All the students are regarded as potential respondents, so sample size is 130. The sample size is thought large enough to draw meaningful conclusions if all students who have recently taken this course will participated in the survey.

3.3.5 Implementation

The questions are created in Google Forms, they are then sent to each student on their student mail. The answer of the survey can then be downloaded and converted into charts for easier viewing.

3.4 The Case Study

Case study is a research strategy that involves using an empirical investigation of a phenomenon in a real life context [24]. In essence, it is research into a specified area by observing the outcome of the case in question. A case study

(31)

can be based on either quantitative or qualitative evidence, as well as a mix of both.

The case study used in our research is based on qualitative evidence and by deeply investigating the old course page of Engineering Methods. Through the research an understanding of how an online learning block can be structured to efficiently guide students will be made. The research should also give us the necessary background information about the course, and to help find old learning materials related to C programming that could potentially be used in the new module.

Another way of the case study on the old course is to perform surveys to the users, i.e. the students and the teacher who have attended the course. The survey method has been described in the section 3.3.

The result of the case study is described in Chapter 4.

3.4.1 MoSCoW

The MoSCoW method allows the user to create a specification with the feature of it containing a risk analytic capability and a priority ability. The specifica- tion is separated into four groups [25].

1. Must have. These demands are considered top priority, as long as these demands are met, the project goals can be considered completed.

2. Should have. These are high priority demands and should be included if possible. These can be as important as the must demands, but not time-critical.

3. Could have. These requirements can be implemented if the cost allows it.

4. Won’t have. Work that might be implemented in future projects.

Derived from the case and literature study, using the MoSCoW method, a specification can be created that will show what part of the module that should be prioritised considered that there is a time limit on the project. This allows us to focus on the parts required for the students to meet the course demands.

If the time allows, the should and could demands will created.

3.5 Development

Since the project is following Bruner’s Learning Theory, the material is created (using the specification from the previous stage) following the learning stages

(32)

22 CHAPTER 3. METHODS

Figure 3.2: Project management triangle

presented in the theory, Enactive, Iconic and Symbolic representation.

The learning material should first give the student some kind of hands on material, this allows the student to understand the outcome of their actions.

This, together with other illustrations should help the student to grasp the ba- sics of the subjects and the two stages Enactive and Iconic has been utilised and the student is given knowledge by "Muscle memory".

The last stage, Symbolic, is presented to the student by giving them a freer hand at taking up information. Deeper knowledge is given to the student with the goal giving them knowledge by recollection.

Available resources for development

The quality of a project is often expressed in the form of a triangle, as seen in figure 3.2, where each corner represent a limitation of the project. Most of the time, one or two of the corners, be it functionality, time constrains or cost, are often set and can’t be changed [26]. For this project, the time is set by the deadline of the project and the cost for this project is the amount of hours that can be invested and is set by the course, that is 15 hp or 400 hours.

This means that the flexible part of this project will be the functionality it delivers. A flexible specification using the MoSCoW method is used in order to assess what parts needs to be completed with the available resources.

3.6 Evaluation

There are three main types of evaluations, goal based, process based, and outcomes based. Goal based evaluations measure if objectives have been

(33)

achieved. Process based evaluations analyse strengths and weaknesses. Out- comes based evaluations examine broader impacts and often investigate what greater good was served as a result of the program or project [27].

The second and the third types of evaluations are impossible to be accom- plished before the deadline of the thesis, since the next course takes place in the Autumn. They might, however, be conducted by those who execute the course. Therefore, the evaluation has to be goal based. The module would be considered successful if it fulfils the following requirement. The design of the module should follow both the Scaffolding theory and the Constructive Alignment teaching method. It should fulfil all the project goals, which have been determined and specified in Chapter 1. It should also have solved the problems concluded from the survey result.

(34)
(35)

The Case Study

The case studied in this project is the course Engineering Methods - II1300, and more specifically the round in autumn 2019. The case study will be us- ing the course evaluation and the questionnaire given to the students to help develop the course module and answer the research questions of the project.

4.1 Questionnaire

The results regarding the course (Engineering Methods HT 2019) were ob- tained from two surveys. One was routinely performed by the department at the end of the course, and the other performed in this project with questions specially tailored for acquiring missing information and data that are needed for improving the learning module. The questionnaire that was used can be found in appendix A.1.

Responses were received from the students who have attended the course.

In the questionnaire they gave clear answers om how they thought about the course. The detailed results of the questionnaires can be found in appendix A.2. The results from the routine survey will be analysed and discussed in section 4.1.1 and those from the project survey in section 4.1.2.

4.1.1 Result of the routine course evaluation

In total, 21 out of 130 students participated in the survey and can be found in appendix A.3. The survey was designed to evaluate the whole course, but more focused on the part of C programming.

The results boil down to three aspects:

25

(36)

26 CHAPTER 4. THE CASE STUDY

1. The instruction/tutorial on C programming was incomprehensive, and more practices were needed.

2. Instruction on Lego programming was a bit flimsy and unclear. There are better alternatives to the programming tool that the course recom- mended for EV3.

3. The layout of the course was messy and it is difficult to keep track of each activity / task. It would be better to categorize the subjects and divide the course into several modules.

4.1.2 Result of the project survey

The survey was conducted with "Google Forms" and the results were stored in a file with the "csv" format. In total, 27 out of 130 students have participated in the survey, which consists of close-ended questions and open-ended questions.

For each close-ended question, the frequency that each option was chosen was counted. It should be noted that one may choose several options to a question.

In Q5 and Q7(Both optional questions) the frequency was converted to a ratio (as given in percentage) to the number of respondents. Since a respondent might have skipped a question, and in such a case two ratios are derived, one relative to the total number of respondents to the survey and the other to the number of respondents to the question.

The frequencies and derived ratio are presented in Pie charts or bar charts.

The visualization was realized with simple Python scripts, which involves the popular Python libraries of "matplotlib" and "pandas". "pandas" is used to load data from the "csv" file and to process the data, and "matplotlib" is for the visualization.

1. The answers to the close-ended questions:

Q1: Do you have any previous knowledge in programming before start- ing the course?

As seen in Figure 4.1, more than one third (37%) of the respondents (who are all among students of the course) had no knowledge in pro- gramming at all, and another 18.5% knew little about programming be- fore attending the course. About 30% had some knowledge and less than 15% had decent programming skills. This strongly suggests that fundamentals of the C programming should be taught. A tutorial about choosing programming tools, setting up environments and fundamental

(37)

Figure 4.1: Results regarding Q1: Do you have any previous knowledge in programming before starting the course

programming knowledge would be helpful.

Q2: Do you think you got enough material to finish the given C task?

According to Figure 4.2, near 30% respondents (who chose 1 and 2) thought the material was far from enough, and another 15% thought it was barely enough and gave a score of 3. The feedback is relatively bet- ter than that to the previous question, considering the fact that more than 55% of the respondents had zero or little knowledge of programming.

Moreover, about 37% of the respondents thought they had enough ma- terial to finish the given C task. Nevertheless, the situation is far from being satisfactory and it again suggests that a good tutorial would be of critical importance.

Q3: Do you think you got enough material for Lego robot program- ming?

The comparison of Figure 4.3 with Figure 4.2 is striking and delivers a clear message that the material for Lego robot programming is not enough. Less than 26% respondents (who scored 4 and 5) felt supported with the material provided by the course. By contrast, more than half of

(38)

28 CHAPTER 4. THE CASE STUDY

Figure 4.2: Results regarding Q2: Do you think you got enough material to finish the given C task?

Figure 4.3: Results regarding Q3: Do you think you got enough material for Lego robot programming?

(39)

them (who scored 1 and 2) found themselves in a difficult situation with limited learning material. If including the 22% who scored 3, the ma- jority thought the material was not enough. That’s another aspect that should and can be improved in the module.

Q4: Were the instructions / activities easy to follow?

Figure 4.4: Results regarding Q4: Were the instructions / activities easy to follow?

As seen in Figure 4.4, less than half (44.4% who scored 4 and 5) re- spondents thought it is easy to follow the instructions / activities, while about one third (29.6% who scored 1 and 2) found it difficult. Therefore, efforts should be made to improve the layout and the readability of the instructions. Moreover, one must consider the consistency of the activ- ities with the course contents, because the routine survey suggested that some students got confused about the purpose of the activities.

Q5: Which language or languages did you have knowledge of before starting the course?

It is worth noting that only 17 of the 27 respondents answered the ques- tion, as seen in figure 4.5, which agrees with the fact that 37% of them had no programming experience according to Q1. The percentages shown

(40)

30 CHAPTER 4. THE CASE STUDY

Figure 4.5: Results regarding Q5: Which language or languages did you have knowledge of before starting the course?

are based on all respondents of the form where the percentage in paren- theses are for those that answered this question. It turned out that only about 18% of the respondents who had programming experiences were using C. Python, Java, C++ and C# were more popular among these stu- dents. Especially, about 59% of them knew Python and 41% knew Java.

The message is clear that most students are more or less new to C pro- gramming language, so a good tutorial would be necessary.

Q6: Do you think C was a good introductory language for program- ming?

The results, as seen in Figure 4.6, show that two third (i.e. 66.7%) of the respondents thought C was a good introductory language for pro- gramming. This is a good outcome considering the fact that 37% of the respondents had no programming experience and C will be the very first programming language to them.

Q7: Which language would you like the course introduce instead of C?

Although this question seems irrelevant to the current project, it actu- ally provides vital information for the future work about the course, in

(41)

Figure 4.6: Results regarding Q6: Do you think C was a good introductory language for programming?

Figure 4.7: Results regarding Q7: Which language would you like the course introduce instead of C?

(42)

32 CHAPTER 4. THE CASE STUDY

case it becomes necessary to switch the introductory programming lan- guage. Fortunately, this is not yet the case as indicated by Figure 4.7, that about 61.1% of the respondents believe that C is the right option, which is consistent with the results from the Q6.

2. The answers to the open-ended question:

Among the 27 respondents, 17 replied to the final question in the project questionnaire: Do you have anything you would like to add to the course content? Due to the open-ended nature of this question, the answers are somewhat diverse. They, however, boil down to five opinions as designated as "a1" to "a5" and as listed below:

a1: The tutorial should adapt to the students who are beginners in C programming or even programming.

a2: Lego robot programming is difficult to students who had no pro- gramming experience and should be removed from the course.

a3: The instruction about Lego programming is insufficient and it does not foresee the difficulties and potential issues that the students might encounter.

a4: The course layout is a bit chaotic, and thus a little confusing at the first glance. It is difficult for some students to understand the purpose of each task.

a5: A general opinion regarding the course and not so relevant to this project.

After the categorization, the results can be analysed in a semi-quantitative way and similarly a bar chart was created, as depicted in figure 4.8.

It shows that 6 out of 17 respondents did not get enough instructions about Lego programming (a3). Several (3) respondents even suggested that the Lego robot programming was too difficult to beginners and should be removed. It is argued that such difficulties could be overcome if the learning module is improved and students might think differently if they are better trained. Therefore, the present project is focused on improving the learning module rather than omitting such a subject. 4 respondents (a1) believe that a more comprehensive tutorial for C pro- gramming will be necessary even to an introductory course. Both (a1)

(43)

Figure 4.8: What would you like to add?

and (a3) stress the importance of good tutorials, no matter to the C pro- gramming or the Lego robot programming. Moreover, the course layout should be rearranged to be more consistent and straight forward accord- ing to (a4).

4.1.3 Implications on module design

The data analyses and discussions lead to the following implications for the module design.

The learning materials must be appropriate to the level of the learners, ac- cording to Bruner’s learning theory. Considering that the students’ program- ming skills vary significantly, the materials should be balanced for both begin- ners and those who are more experienced, which is a challenge that the present project must tackle.

The results of several questions stress the importance of more comprehen- sive tutorials on both C programming and Lego robot programming.

A neat and well-modularized structure will be vital for the students to keep track of the learning process, rather than being confused by mixed information.

(44)

34 CHAPTER 4. THE CASE STUDY

More practice activities such as quiz, seminars, as well as guidance ses- sions, will help the students to overcome the difficulties and potential issues that they might encounter.

4.2 Course Site

Through the research of the old course site of Engineering Methods HT 2019, information was gained about the course structure and content. Learning ma- terials related to C programming was found and could potentially be reused in the new module. The research also showed how the course arranged activities and examinations to help students to achieve the course goals.

4.2.1 Course information

Through the case study the basic information about the course was researched.

The primary objective of the course Engineering Methods was to give the stu- dents knowledge about engineering operational methods, engineer’s profes- sional role and to give them basic skills in using different engineering tools with an emphasis on project methodology, presentation technique, and the computer as a working tool. A course project related to LEGO robot pro- gramming was used to train the students to use the engineering skills they had learned from the course. Another goal of the course was to lead the students to programming’s world by teaching them basic C programming knowledge.

They needed to apply the programming skills to the course project where they program a LEGO robot which should perform a required delivery task.

4.2.2 Course content

The course content could be generally grouped into three aspects: learning materials, activities, and examinations.

Learning materials

The main goal of this course was to teach the students about the engineering methods, so most of the materials were about engineering methodologies and practical project methods. The materials included lecture documents on e.g.

interview skills, oral presentation skills, group work theories, time manage- ment and technical report writing.

(45)

Other learning materials were related to C programming and LEGO robot programming, which might be used in the new C learning module. The lec- ture document (See Appendix B.1) on C programming introduced C language concisely, mainly on basic C knowledge of variables, selections, iterations, and functions. For LEGO robot programming, there were tutorial documents on NXC and programming LEGO NXT Robots using NXC. The EV3 material that the student got access to was however sparser and contained links to two different platforms they could use to program C on the robot. The student also got a concept model as seen in appendix B.2 to help understand what all tools they had access to do.

Activities

The scheduled activities of the course were mainly lectures, where the teachers imparted basic knowledge according to the learning objectives of the course.

There were guidance sessions where the teacher checked the project results of each group for every study period. In addition, there were also guidance sessions where the teacher assistants helped students with C programming ex- ercises and Lego programming of the course project.

Examinations

For examinations on Engineering Methods, there arranged several oral presen- tation sessions, where the students could show their skills on e.g. interview skills and oral presentation skills.

The old course used a C exercise ALARM (See appendix B.3) as the exam- ination task. The exercise covered all the important basic C concepts required in this course (variables, condition control, iteration and functions) and by this the students could be well examined whether they had mastered the knowledge and skills. To pass this examination the students needed only submit the an- swer to the exercise on Canvas and then they must get approved by the teacher.

The evaluation of the course project was a little more complex. To get the project be approved, the students must program the Lego robot reasonably to make the Lego robot run as expected. They must demonstrate to the teacher that the Lego robot can complete the delivery tasks. And the students must also be able to explain their code to the teacher on project presentation.

As a final examination, each student should submit a written report to sum- marize the whole course, which could not only review the course content but also improve the students’ ability to write a technical report.

All the examinations were graded with P/F.

(46)

36 CHAPTER 4. THE CASE STUDY

4.2.3 Usage of the old course

The old materials on C should be integrated into this new module, also as the lecture documents, but with some modification and extension. The exer- cise ALARM from the old course would also be kept in this new C module, similarly as the examination task to assess the students’ C programming per- formance. The examination method of the LEGO robot project should also be reused. The usage of the old course materials will be explained in more detail in Chapter 5.

4.3 Conclusion

The old course of Engineering Methods HT2019 was researched by Case Study.

One way was to do a questionnaire survey to the students who have attended the course and ask them to comment on the old course. The responses gave implications for the new C module design:

1. The learning materials of the module should be designed to be suitable for beginners in programming.

2. More tutorial material for programming is needed.

3. The learning materials could be organized into a logical structure that is easy to understand and follow.

4. More practice opportunities should be supplied for students to help them master the C knowledge. And more guidance sessions should be sched- uled to help them with programming.

From the research on the old course site of Engineering Methods HT 2019, it was found that part of the old course content such as C tutorial documents, programming related activities and examinations could be referenced in the new C learning module. Why and how the old materials are to be reused would be discussed in the next chapter.

(47)

4.3.1 Specification

The project will use the following specification when developing the module according to the case study:

• Must have

– Learning materials that are suitable for beginners in programming – More tutorial material and more examples for each section to im-

prove "scaffolding"

– Instruction and learning materials organized in a logical structure that is easy to understand and follow

– Assessment method for the C programming course in the form of a seminar.

– Basic guide on the installation of the ev3dev platform for program- ming on the LEGO robot.

– Basic examples for the ev3dev platform.

• Should have

– Quizzes as an alternative assessment method for the C program- ming course.

– Step by step guide for installation of the ev3dev platform.

• Could have

– Fully functional robot examples for the ev3dev platform that can perform some kind of task.

– Basic guide on the installation of the c4ev3 platform for program- ming on the LEGO robot.

• Wont have for now

– Basic tutorial on other programming languages, such as Java or Python.

– Guide to use multiple programming languages on the robot, such as Java or Python.

– Entire course project integrated in the LEGO submodule.

– Fully functional robot examples for the c4ev3 platform that can perform some kind of task.

(48)
(49)

The Module Design

One of the learning objectives of the course Engineering Methods is to reflect over and apply basic engineering methods to plan and implement a small IT project in a group. The goal of this thesis is to design a module that can be used to teach the students the basic C knowledge/technique that are used to program a LEGO robot in this small IT project. This chapter describes the thesis result, i.e. how the C learning module has been constructed. First the architecture of the module is demonstrated from an overview. Further, it demonstrates how the module is designed and built. It also describes the evaluation of the resulting learning module.

5.1 Module Architecture

As mentioned in Chapter 2, the module is based on the teaching method Con- structive Alignment. According to it, a successful module is one where all the teaching activities and assessment are aligned with the stated learning out- comes or objectives. The design of the architecture of the module has followed this idea. Taking the C programming part as an example, by the introductory pages of the module the students will be informed the intended learning out- comes and assessment. The learning environment that is being used here is Scaffolding, based on which the creation of the teaching materials are selected and organized. All the learning activities e.g. quizzes, exercises and seminar are aligned with the predetermined learning goal. At last, an assignment is arranged as an examination task to help to judge students’ performances, and eventually give each of them a final grade.

39

(50)

40 CHAPTER 5. THE MODULE DESIGN

5.1.1 Design

Figure 5.1 shows the structure of the module. The module begins with a mod- ule introduction, including activities that have been scheduled. It is followed by the two major submodules, basic C programming and LEGO programming.

The former is to help the students to gain the necessary programming knowl- edge and skills that are needed for the latter project.

Figure 5.1: The module architecture

Structure of the C programming submodule The subsections of the C pro- gramming section is arranged in a straight forward way, from the most basic points to more advanced points. It is worth noting that a quick online quiz is available for the students to check if they have mastered a knowledge point be- fore moving on to the next point. The C programming submodule ends with a programming assignment and a peer review of the outcome at a seminar. The detailed content description of this submodule could be seen in section 5.2.1.

Structure of the LEGO submodule The LEGO submodule is a guide on how the EV3 robot works and how to set it up, first a guide for installation of required software, and later a guide on different approaches for programming on the robot using the ev3dev library. The content of the submodule could be seen in section 5.2.2.

(51)

The module also provides an online forum for each subject, in which students can raise questions and get helps or answers from the teachers / teaching as- sistants, as well as other students. Frequently asked questions will be posted in a FAQ block, so that students may directly found answers to their questions.

5.2 Module Content

As mentioned in chapter 2, the learning environment that will be used is called Scaffolding and was created by Jerome Bruner. Therefore, the module content should be well organized and structured by the implications of Bruner’s learn- ing theory.

According to Bruner’s learning theory, teaching materials must be appro- priate to the level of the learners. The questionnaire’s survey in Chapter 4, showed us that most of the students have none or very limited programming experience before starting the course. Therefore, the learning materials of the module are selected to be suitable for beginners in programming.

Bruner’s learning theory advocate for spiral curriculum which states that a curriculum should revisit basic ideas, building on them until the student grasps the full formal concept. Therefore, the teaching materials in the submodule have been presented in a sequence giving the learners the opportunity to con- struct the knowledge and transform their learning.

Another implication of Bruner’s learning theory is that teachers should as- sist learners in building their knowledge. In this learning module, there are several help sessions as well as online forums where teacher or teaching assis- tants help students with the exercises and project work.

5.2.1 The C submodule

This submodule, found in the appendix C, gives the students an introduction to the basic knowledge of C programming. It starts with an introduction of the submodule, which shows information about the learning resources and the scheduled activities and examinations. The description of the submodule con- tent focus mainly on three aspects: learning materials, learning activities and assessment.

Learning Materials

Students will learn the fundamentals mainly by following the online tutorial materials, reproducing the examples and accomplishing the exercises.

References

Related documents

The effects of the students ’ working memory capacity, language comprehension, reading comprehension, school grade and gender and the intervention were analyzed as a

In this paper we illustrate, from an example, how the research process leads us from micro- level observations on how the students attentions move from different aspects

6.1 Phenomenography in practise - an empirical example To exemplify how a phenomenographic outcome space can be used by educators, I will show an outcome space of novice

Om till exempel användaren använder en webbläsare som inte officiellt stöds enligt dokumentationen av HTML-ramverket, och ramverket skulle ha specificerat något som

The three mechanisms, which have been investigated within the scope of different research projects, comprise of (1) graphical visualizations of service providers’ privacy policies

Striden, vilken utkämpades i såväl böcker, tidningar, föredrag som i undervisning och till slut i domstol, var inte en kamp för eller mot linggymnastik, båda var faktiskt anhängare

introduction course at term 5) were created during an extended course development process. Knowledge areas and course content from General practice, Medical Psychology and

Specific aims were to analyse students’ descriptive feedback of a Consultation skills course and its development over five years, to explore final-year students’ abilities