-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2researchcontext.tex
executable file
·43 lines (21 loc) · 10.1 KB
/
2researchcontext.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
\chapter{Research Context}
\label{chapter:context}
At Aalto University School of Science there are four computer science courses that use Scala programming language; \emph{Programming 1}, \emph{Programming Studio 1: Media Programming}, \emph{Programming 2} and \emph{Programming Studio 2: Project}. The two courses mentioned first are offered in the autumn semester and the latter two in the spring semester. The students are expected to take the courses during the same academic year, usually their first. The courses were developed as a part of a degree reform and have been offered starting from the study year 2013 - 2014.
The School of Science has four degree programmes; Computer Science and Engineering, Information Networks, Industrial Engineering and Management, and Engineering Physics and Mathematics. Students in the degree programme for Computer Science and Engineering are obliged to take all of the courses and students in the degree programme for Information Networks all but \emph{Programming Studio 2: Project}, while for the rest only the \emph{Programming 1} is a mandatory part of bachelor level studies.
Clearly the biggest of the courses in respect of the number of students attending the course is \emph{Programming 1} with three hundred students from the School of Science. Since 2014 and the rolling out a MOOC version of the course, there have also been a few hundred students from other schools in Aalto University and some thousand people outside Aalto University taking the course. Other courses clearly have less students; \emph{Programming 2} has around three hundred students annually, while \emph{Programming Studio 1: Media Programming} and \emph{Programming Studio 2: Project} have around 150 students annually.
\emph{Programming 1} introduces the key concepts of programming using imperative and object oriented programming paradigms. The course consists of mainly practical assignments that students can choose to complete alone or in pairs. There are no prerequisite skill requirements for the course and it is often the first programming course for the students. After the course, students should find programming to be useful and be able to discuss the key concepts of programming and the object-oriented programming paradigm. They should be able to apply those concepts to well-defined problems with the use of appropriate programming tools. Students will have an idea of how a computer works and be able to write code in a good style as well as read and use code and documentation written by others.
Concurrently alongside \emph{Programming 1}, students are presumed to complete \emph{Programming Studio 1: Media Programming}, which covers multimedia programming and applies problem based learning in programming context. In \emph{Programming Studio 1}, skills learned in \emph{Programming 1} course are fortified with applied problems from the media programming field. After the course, the students should understand the basic concepts of digital media and the related programming principles. The students are able to write computer programs that deal with digital media in various ways. Special focus is placed on the playback, compression and filtering of natural signals, such as images and sound.
In \emph{Programming 2} students focus on understanding computer architecture and program execution while the course \emph{Programming Studio 2: Project}, as its name suggests, focuses on completing an individual programming project from planning to execution and documentation. At this time, EDCAT is intended to be used primarily in \emph{Programming 1} and \emph{Programming Studio 1: Media Programming} courses while the trial run will be carried out with only the \emph{Programming Studio 1} course. By designing a system that would suit the needs of both of these courses, we hope to reach a general enough solution to meet the needs of any programming course.
\section{Student Motivation and Technical Skills}
\emph{Programming 1} is mandatory for all students in the School of Science, which means that the students' technical skills and motivation to learn programming can vary significantly. The students of the Industrial Engineering and Management degree programme for example must take only one other computer science course, which covers the basics of database design and queries. Completing that course does not require much programming even though \emph{Programming 1} is mentioned as a prerequisite for the course. Overall, the studies in the degree programme of Industrial Engineering and Management are not really technical, so for some, the computer science courses are just necessary evil and motivation to spend time on them is minimal.
At the same time, some students of Computer Science and Engineering are highly motivated in performing especially well in computer science courses. They have chosen to focus on computer science and may have previous programming experience through hobbies or work. On the other hand, some students end up studying Computer Science and Engineering after the failed admittance to their primary discipline or as a temporary solution while they decide what they really want to study. However, recent legislative changes in the student selection process might reduce the amount of unmotivated students. From fall 2016 universities are obligated to reserve a quota of study places for persons applying for the first time to a university. Thus, unsure students will less likely apply (and be admitted), because it would considerably weaken their chances to get into a desired university in the future should they decide to change their study programme.
In addition to degree students, \emph{Programming 1} is offered also as a MOOC. It is primarily aimed at the high school students, teachers and students of Aalto outside the School of Science although anyone interested can participate.
To conclude, students in the mentioned introductory programming courses are far from a homogenous group both in motivation and technical skills. The provided tools should be easy to use so that students with lower motivation do not struggle further and highly motivated students do not loose interest because of a troublesome environment.
\section{Assignments}
\emph{Programming 1} has approximately ten assignment rounds each consisting from three to five smaller exercises. The exercises can be small programming problems but there are also multiple-choice questions related to the study material. The exercises are submitted to a grading system that immediately provides an automated assessment for the submission. \emph{Programming Studio 1}, on the other hand, has approximately only five programming assignments that result in programs with a specific function, like image filtering tool or Battleship game. All assignments are graded by teaching assistants; verbal feedback and grading are provided about one to one and a half weeks after the submission.
The single greatest limitation set by \emph{Programming 1} to EDCAT is derived from the sheer number of students. EDCAT should be able to process multiple submissions fast enough so that running the code online is as fast as with a locally executed GUI. Additionally, even after eliminating the multiple-choice questions, another limiting factor is the number of individual exercises. Although some reuse could be possible between the exercises, it should be effortless and simple enough to create new GUIs.
The topics of the assignments make up a specific challenge in \emph{Programming Studio 1} course. At least simulating sound and image manipulation should be possible. It should also be thought through, how closed the system should be; in the second year of running the \emph{Programming Studio 1} course one assignment round was dedicated to the use of web resources for which students completed RSS aggregators with positive results. Furthermore, students begin to practice user interface design in \emph{Programming Studio 1}, thus later on an implementation of a simple graphical API for their use would be extremely beneficial. Either way, EDCAT should support the implementation of complex interfaces with several different interaction elements.
\section{Teaching Environments and Tutoring}
In addition to student information and course management systems, computer science courses often have special requirements and employ their own virtual learning environments. \emph{Programming 1} uses an older system called Goblin\footnote{ \url{https://greengoblin.cs.hut.fi/}}~\cite{hiisila:2005} that is build upon the traditional LAMP (Linux, Apache, MySQL, PHP) stack with an integrated automated assessment tool. The exercise instructions are provided embedded in the course's interactive study material that contains in addition to the multiple-choice problems some simulations and animations. The students should first read the theoretical introduction to the subject and try out the provided example code before they move onto completing and submitting the assignments.
In \emph{Programming Studio 1} the assignments are distributed and submitted through a more recent system called A+ \footnote{ \url{https://plus.cs.hut.fi/}, \url{https://github.com/Aalto-LeTech/a-plus}}, which is implemented using a modern Python web framework Django. A+ is a service-oriented system and it is interoperable with other learning systems. For example, in 2014 the same automated assessment tool that is in use with Goblin was trialled in some of the assignment rounds but proved unsuitable for the nature and objectives of the course. Grading assignments by hand allows tutors to pay attention to code style and the intelligibility of the solutions.
Both courses implement similar tutoring practices; there are several weekly exercise sessions with one to three tutors, additionally help is offered through IRC channel and Piazza\footnote{ \url{https://piazza.com/}} discussion boards. Students do not need to register for exercise sessions but can attend them whenever needed or choose altogether not to use them. This results in busy sessions near the assignment deadline, where students might need to wait quite long to get help and of course right after the assignment deadline, the sessions are quite thin of students.