the creation of different programming courses for different disciplines.
For scientists a programming course that has both pro-gramming and science taught paraller with breadth first ap-proach has been developed. Using the same principles courses have been developed for art students . Many ex-periments however are mostly based on things outside pro-gramming, for instance the use of games , and not the teaching of programming skills itself .
In high school level the results of teaching programming have been improved by choosing a language that is more easily approachable, like Python . The effective use of teaching technologies like visualizations and pedagogical in-terpreters can also be used to facilitate the approach towards programming.
3. RESEARCH SETTINGS
The student opinions were measured using a quantitative research method, a questionnaire. When it comes to measur-ing opinion, a qualitative research method could have given richer results, but would not have been practical to apply.
With a questionnaire it was possible to reach multiple stu-dents within each different discipline.
Not all students in all disciplines study CS, so it was im-portant to select the students that do. To achieve this, the students were selected from those who had already enrolled to CS courses excluding the very first programming course.
This ensured that all of the students had already studied at least the first programming course and knew something about CS, and of course were about to study more of it.
Altogether 507 students were approached to answer the web questionnaire explained more thoroughly in the following.
3.1 The Questionnaires
The students were divided into two groups and both groups had their own questionnaire to answer: questionnaires A and B. The questionnaire A was wider in subjects, containing skills all around CS while questionnaire B was concentrated mostly on basic, fundamental skills of CS.
The division to two groups was based on the amount of CS studies the student had completed. The purpose was not to have second-year students answering a questionnaire full of skills they have not yet heard of. The students were allowed to make the decision by themselves. They had both of the questionnaires available and they were instructed to choose questionnaire B if they had been studying only ”couple of”
courses of CS and questionnaire B if they had studied more.
The questionnaires contained a categorized list of skills, each related to the question: ”How important do you find the following skills concerning your future (work and studies)?
The students valued each skill with an integer out of scale 1 to 4. 1 meaning completely unimportant and 4 meaning very important. If a skill or its importance was unknown for the student he could choose option ”I do not know”.
All the different skills that were asked to rate are not explained here but in general the students rated all sorts of skills related to the following categories: Basic program-ming (only in questionnaire B), Object-Oriented Program-ming, Data Structures and Algorithms, Software Process and Different Environments and Platforms. The results sec-tion presents some of the most interesting skills individually also. The results were analyzed calculating weighted aver-ages for each disciplines and then comparing the answers.
3.2 Degree programmes under focus
Table 1: Degree programmes under focus and their abbreviations used in this paper
Abbrv. Degree programme AU Automation Engineering EL Electrical Engineering SC Science and Engineering
IKM Information and Knowledge Management COM Communications and Electronics
The original research was focused to cover all different dis-ciplines inside Tampere University of Technology (TUT) ex-cept Information Technology. However, this paper presents only the most important results from the the most inter-esting disciplines. Because different universities have degree programmes of their own it is needed to describe briefly the degree programmes that are discussed here.
Table 1 presents the degree programmes and their abbre-viations that are used later in this paper when presenting the results. Besides more traditional degree programmes like Automation Engineering (AE), Electrical Engineering (EL) and Science and Engineering (SCI) this study includes Information and Knowledge Management (IKM) and Com-munications and Electronics (COM).
Information and Knowledge Management is a proportion-ally new degree programme in TUT which concentrates on handling and managing rapidly growing amount of informa-tion training specialists that understand both informainforma-tion technology and industrial engineering. The studies include a good overall view on software engineering also, but the focus is not at all on developing software. This makes IKM students an interesting group from the perspective of CS teacher. The students have totally different background and basis than CS students.
Communications and Electronics, roughly said, is a com-bination of information technology and electronics. COM students study plenty of software skills and like IKM dents, their focus is different than CS students. COM stu-dents use software skills as a tool for creating networks and network communication as well as creating hardware and systems in general–software skills are often used in a lot lower abstraction level and in more restricted programming environments.
This section presents main output of the student ques-tionnaires. The values of separate skills are left out, but the most interesting differences are mentioned to form the basis for the discussion. Some of the following skill categories also include numerical representation of the weighted averages of all the skills within that category–to clarify the differences amongst the degree programmes in a wider perspective. The scale is from 1 to 4, 1 meaning a completely useless skill and 4 the most important value.
Altogether 256 responds were received out of 507, so 50%
of the students answered the questionnaire. For the dis-ciplines that are under the focus of this research, a total amount of 231 responds were received.
4.1 Basic programming skills
All the skills in this category were included only in the B questionnaire. This means that only students having studied only a course or two of computer sciences rated these.
Basic programming skills were perceived important in gen-eral. The average for all the skills by all the respondents was 3.0. The one skill being noticeable less important than other skills was the most theoretical one, recursion. The average values for all the disciplines can be seen from Table 2.
A big exception within this category was the overall opin-ion of students inside Informatopin-ion and Knowledge Manage-ment degree programme. As all other disciplines valued the skills of this category with an overall average at least 3.0, IKM students gave only an average value of 2.2.
Table 2: The average importance of all basic pro-gramming skills in different disciplines
Programme AU EL SC IKM COM All
N (only quest B) 32 26 27 21 27 133
AVG 3.1 3.2 3.0 2.2 3.3 3.0
4.2 Object-Oriented Programming and Design
In general the skills within this category were found im-portant: The average of all the skills within all the respon-dents was 3.0. Especially the skill basics of object-oriented programming were found very important by all disciplines.
The respondents of A-category valued all of the skills in this category at least quite important without big differences between disciplines. Science and Engineering students, how-ever, found design patterns and software architectures less important than others.
The IKM students who answered B-questionnaire gave noticeable smaller values than respondents from other dis-ciplines. For example, for inheritance, IKM students even gave the only non-important value in this whole category:
only 1.8 whilst the average of all respondents is 2.6.
4.3 Data Structures and Algorithms
Table 3 presents the perceived importance of data struc-tures and algorithms in different disciplines. As expected, there were differences between the importance of different skills within this category. The average of all skills by all re-spondents is the scale middle 2.5. The most important skills were the selection of a suitable data structure and the selec-tion of a suitable algorithm. These were found important by nearly all disciplines.
Again, the Information and Knowledge Management stu-dents who answered questionnaire B were the most criti-cal towards the importance of the skills within this cate-gory. This supports the view of the IKM degree programme teaching staff mentioned in the wider research: The IKM students dread the data structures and algorithms courses because they feel the courses are too technical for their focus.
Table 3: The average importance of all data struc-tures and algorithms related skills in different disci-plines
Programme AU EL SC IKM COM All
N 62 50 32 37 50 231
AVG 2.5 2.5 2.9 2.2 2.7 2.5
4.4 Software Process
Table 4 presents the perceived average importances of software process related skills. The average of all skills by all respondents was as high as 3.3 meaning the Software Process in general is important for all the students. Extremely im-portant skills were understanding the program specification document and understanding the whole software process. Es-pecially Information and Knowledge Management students found these two very important giving as high average values as 3.9.
The students in Science and Engineering degree programme gave noticeable smaller values to all of the skills. Students in other disciplines on the other hand valued the skills high.
Even the advanced skills like creating a program design doc-ument and software project management were valued impor-tant or even very imporimpor-tant.
Table 4: The average importance of all software pro-cess related skills in different disciplines
Programme AU EL SC IKM COM All
N 62 50 32 37 50 231
AVG 3.4 3.3 2.3 3.5 3.4 3.3
4.5 Different Environments and Platforms
This category consisted of many various skills and thus it is irrelevant to handle this category as a whole instead of single skills. The most important of them were robust pro-grams (average 3.2) and basic problems and concepts of con-currency (average 3.1 in questionnaire A, only 2.2 in ques-tionnaire B, though). The least important were computer graphics and programming for mobile platforms.
Between different disciplines there were differences in the results of this category. The Information and Knowledge Management students who answered questionnaire B gave Basic Problems and Concepts of Concurrency only a really low value of 1.5 while the average of all respondents was 2.2 and Science and Engineering students gave as high value as 3.3. This result however does not give anything generaliz-able about the disciplines because the answers to question-naire A in these two disciplines are completely the other way around. What this can tell about is the differences between one discipline: Students who study more Software Sciences can have a completely different target for the software skills.
One must also notice the small amount of SCI respondents to questionnaire A: Only five answered were received.
Automation Engineering, Electrics, and Communications and Electrics students perceived these skills rather impor-tant in general. Especially lower abstraction level program-ming skills like Low-Level Programprogram-ming and Embedded Sys-tems were found important within these disciplines.
5. DISCUSSION AND CONCLUSIONS
It is of course relevant to question that ”Do students really know what they need? Do they know what is best for them?
Aren’t teachers just for that reason–to know better?” Yes, teachers know better, and the problem with these results would also be that some students know better than others and thus the ones that do not know would skew the results.
However, this is not the problem in this context. The results are still relevant.
How important students perceive a subject for their own future, is directly related to their motivation. To avoid ma-jor lacks of knowledge due to this lack of motivation, a set of compulsory courses has been ruled within each degree pro-gramme. Still, the motivation problem affects the studying performances in spite of the obligatoriness of the course. For voluntery courses the perceived importance affects the en-rollment directly. So at the end, the results of this paper can be treated as a some sort of a motivation meter.
The research gave expected results: There are differences between disciplines when CS skills are concerned. This is rather obvious but the idea was also to find out what sort of differences they are.
On the basis of these results (and the wider ones includ-ing the teachinclud-ing staff view ) within the disciplines Au-tomation Engineering, Electrics, and Communications and Electrics software skills act a great role–work related to own discipline subject requires the applying of software skills as a tool. This applying is often related to the more techni-cal side of computer sciences: programming, and especially programming to more restricted, embedded systems.
Information and Knowledge Management and Science and Engineering students represent a completely different ap-proach to CS needs. IKM students focus more on the ab-stract, software process related skills. SCI students on the other hand do not find software process relevant at all but use CS mostly as a tool for mathematical modeling.
A positive result was that nearly all students found basic programming skills important. An interesting exception for this was the IKM students answering to questionnaire B.
They found only few software skills important despite the big role of CS in the general idea of the whole degree pro-gramme. An easy explanation to this is again to agree with the previous questioning: The students might not yet know what they really need. This opinion is supported by the fact that IKM students having studied CS a bit further (ques-tionnaire A respondents) found the skills much more impor-tant. Another explanation is the structure of CS studies for IKM students within the curricula of Tampere University of Technology.
The respondents all represented students of same univer-sity which greatly weakens the generalizability of the results.
Once again, the results thus have to be treated as interesting and suggesting. Another important factor weakening this aspect is that no advanced statistical analysis was made for the results.
A proper statistical analysis of the results would have re-quired a greater amount of respondents and even with that would have still had the following lacks considering general-izability:
• Respondents come from one university and represent only one nationality (characteristics of disciplines and future work life expectations could vary locally).
• The answers would still represent only the opinions of students. The opinions of teaching staff and persons from business life should also be taken into account.
Expanding and internationalizing the amount of respondents is something that could be done in the future and the opinion of teaching staff is touched upon in the larger research .
Finding enough respondents from business life that would represent the needs of a certain discipline students is then
almost an impossible task. But having completely generaliz-able results is not actually that important because neverthe-less the universities that could apply the results have that much of variance within, so that the applying would anyway require adaptation. For further studies, this research should offer ground work to continue with.
These results represent the view of students and by adapt-ing that, it is possible to benefit out of the results. The results raise the following questions that should be consid-ered inside other universities/institutes of teaching also, es-pecially when designing a CS curricula:
• Is the CS curricula done only considering CS students or does it also take into account students doing only a CS minor?
• Is the set of courses that is offered as The CS mi-nor degree suitable for all the students in different disciplines that actually need CS? Or should multiple different CS minor degrees be offered? For instance Communication and Electrics students would benefit from low abstraction level courses with more techni-cal aspect where as Information and Knowledge Man-agement students need more overview-like courses and high abstraction level courses more related to running a software project.
• And most of all: How could we fix the possible gap between student and teaching staff opinions on what really is important? How could the students know bet-ter what is best for them?
 T. Ahoniemi. Ohjelmistotekniikka eri koulutusohjelmissa. Master’s thesis, Tampere University of Technology, 2008.
 T. Ahoniemi, E. Lahtinen, and K. Valaskala. Why Should We Bore Students When Teaching CS? In Proceedings of the 7th Baltic Sea Conference on Computing Education Research, November 2007.
 J. D. Bayliss and S. Strout. Games as a ”Flavor” of CS1. In SIGCSE ‘06: Proceedings of the 37th SIGCSE technical symposium on Computer science education, pages 500–504, New York, NY, USA, 2006. ACM.
 Z. Dodds, C. Alvarado, G. Kuenning, and
R. Libeskind-Hadas. Breadth-First CS 1 for Scientists.
SIGCSE Bull., 39(3):23–27, 2007.
 G. Engel and E. R. (Eds.). ACM Computing Curricula 2001. Computer Science. 2001.
 L. Grandell, M. Peltom¨aki, R.-J. Back, and
T. Salakoski. Why Complicate Things?: Introducing Programming in High School using Python. In ACE
‘06: Proceedings of the 8th Australasian conference on Computing education, pages 71–80, Darlinghurst, Australia, Australia, 2006. Australian Computer Society, Inc.
 L. A. S. King and J. Barr. Computer Science for the Artist. SIGCSE Bull., 29(1):150–153, 1997.
 S. Surakka. Needs Assessment of Software Systems.
PhD thesis, Teknillinen korkeakoulu, 2005.
 G. Wilson, C. Alvarado, J. Campbell, R. Landau, and R. Sedgewick. CS-1 for Scientists. SIGCSE Bull., 40(1):36–37, 2008.