18 resultados para second programming course
em Doria (National Library of Finland DSpace Services) - National Library of Finland, Finland
Resumo:
The state of the object-oriented programming course in Lappeenranta University of Technology had reached the point, where it required changes to provide better learning opportunities and thus the learning outcomes. Based on the student feedback the course was partially dated and ineffective. The components of the course were analysed and the ineffective elements were removed and new methods were introduced to improve the course. The major changes included the change from traditional teaching methods to reverse classroom method and the use of Java as the programming language. The changes were measured by the student feedback, lecturer’s observations and comparison to previous years. The feedback suggested that the changes were successful; the course received higher overall grade than before.
Resumo:
Tämän kandidaatintyön tavoitteena on löytää mahdollisimman kattava kokoelma harjoitustehtäviä ohjelmoinnin jatkokurssille. Tässä työssä tutkitaan ohjelmoinnin jatkokurssin kehitystarpeita. Työssä käydään läpi kurssilla aiemmin käytettyjä harjoitustehtäviä sekä käsiteltäviä aiheita. Näiden perusteella kartoitetaan aiemmissa harjoitustehtävissä mahdollisesti olleet puutteet ja pyritään tekemään uudet harjoitustehtävät siten, että ne kattavat mahdollisimman hyvin kurssin aiheet. Tehtävät pyritään suunnittelemaan siten, että aiempaa ohjelmointiosaamista pystytään käyttämään hyväksi mahdollisimman paljon. Tutkimus perustuu Lappeenrannan teknillisen yliopiston Käytännön ohjelmointi nimiseen kurssiin. Tämä on ohjelmoinnin jatkokurssi, jolla käytetään ohjelmointikielenä C-kieltä.
Resumo:
Tämä kandidaatintyö tutkii tietotekniikan perusopetuksessa keskeisen aiheen,ohjelmoinnin, alkeisopetusta ja siihen liittyviä ongelmia. Työssä perehdytään ohjelmoinnin perusopetusmenetelmiin ja opetuksen lähestymistapoihin, sekä ratkaisuihin, joilla opetusta voidaan tehostaa. Näitä ratkaisuja työssä ovat mm. ohjelmointikielen valinta, käytettävän kehitysympäristön löytäminen sekä kurssia tukevien opetusapuvälineiden etsiminen. Lisäksi kurssin läpivientiin liittyvien toimintojen, kuten harjoitusten ja mahdollisten viikkotehtävien valinta kuuluu osaksitätä työtä. Työ itsessään lähestyy aihetta tutkimalla Pythonin soveltuvuutta ohjelmoinnin alkeisopetukseen mm. vertailemalla sitä muihin olemassa oleviin yleisiin opetuskieliin, kuten C, C++ tai Java. Se tarkastelee kielen hyviä ja huonoja puolia, sekä tutkii, voidaanko Pythonia hyödyntää luontevasti pääasiallisena opetuskielenä. Lisäksi työ perehtyy siihen, mitä kaikkea kurssilla tulisi opettaa, sekä siihen, kuinka kurssin läpivienti olisi tehokkainta toteuttaa ja minkälaiset tekniset puitteet kurssin toteuttamista varten olisi järkevää valita.
Resumo:
Tämä kandidaatintyö tutkii peliohjelmoinnin mahdollisuuksia ohjelmoinnin alkeiden opetuksessa sekä Unity3D-ohjelman toimivuutta 2D-pelinkehityksessä. Tutkimuksen tavoitteena oli luoda Peliohjelmoinnin alkeet -kurssille kurssirunko sekä todistaa Unity3D-ohjelman toimivuus 2D-pelinkehityksessä kehittämällä esimerkkipeli. Tuotoksena kurssille kehitettiin kuusiosainen kurssirunko, johon myös suunniteltiin täysin aloittelijoille tarkoitettu vapaaehtoinen UnityScriptin alkeet osio. Ohjelmoinnin aloittelijoille suunniteltu kurssi käy läpi Unity3D-ohjelman perusteet sekä tutustuu skriptauksen alkeisiin. Kurssirunko käy 2D-pelinkehitykseen liittyviä konsepteja loogisesti läpi. Työn toisena tavoitteena oli esimerkkipelin kehitys ja Unity3D-ohjelman 2D-pelinkehitystyökalujen testaus. Pelin tekeminen onnistui yli odotusten. Vaikka peli on erittäin yksinkertainen ja lyhyt, se toimii esimerkkipelinä mainiosti. Johtopäätöksenä voidaan todeta, että Unity3D-ohjelman 2D-työkalut ovat toimivia laadukkaiden 2D-pelien kehittämiseen. Tuotoksena laadittu kurssirunko antaa suuntaa kurssien rakentamiseen peliohjelmoinnin aloittelijoille. Pelinkehitys kurssin suorittamisen jälkeen opiskelijalla on mahdollisuudet ja perustaidot jatkaa kehittymistä ja opiskelua tahtomallaan suunnalla.
Resumo:
Ohjelmointitaito on asia, jonka oppimisesta ja opettamisesta voidaan olla montaa mieltä, eikä yhtä oikeaa tapaa toteuttaa ohjelmoinnin opetusta tunnu olevan olemassa. Se on kuitenkin selvää, että jotkin menetelmät ja työkalut tuntuvat olevan parempia kuin toiset. Lukuvuoden 2005-2006 päätteeksi Lappeenrannan teknillinen yliopisto päätti päivittää ohjelmoinnin perusopetusta, ja kokeili siirtymistä Python-ohjelmointikieleen ohjelmoinnin alkeiskursseilla. Koska kurssin varsinaiset muutokset keskittyivät tekniseen infrastruktuuriin, tutustuttiin alustavassa kirjallisuustutkimuksessa ensin erilaisiin lähestymistapoihin,aiempiin tapauksiin sekä mielekkäiden työkalujen löytämiseen. Tässä diplomityössä perehdytään ohjelmoinnin opetuksen työkaluihin sekä erityisesti Python-ohjelmointikielen hyödyntämiseen ohjelmoinnin perusopetuksessa. Diplomityö esittelee useita lähestymistapoja sekä keskittyy tutkimaan Pythonin soveltuvuutta alkeisopetuksen käyttötarkoituksiin. Diplomityö tutustuu myös Lappeenrannassa järjestetyn ohjelmoinnin perusteiden kurssin tuloksiin, ja analysoi sitä, pystyikö Python-pohjainen kurssi toteuttamaan teknisen yliopiston sille asettamat vaatimukset. Lopuksi aineistosta analysoidaan jatkotutkimuksen tarpeita sekä pyritään löytämään ne osa-alueet, joita näissä jatkotutkimuksissa tulisi vielä kehittää.
Resumo:
Ohjelmistoprojektin läpivienti vaatii suunnittelua ja yhteisiä tapaamisia toimittajan ja asiakkaan kesken. Ohjelmistotuotannon prosessit ovat määrittely, suunnittelu, toteutus, testaus ja käyttöönotto. Tärkeimmät dokumentit ovat projektisuunnitelma, toiminnallinen määrittely ja tekninen määrittely. Ongelmia projektin läpiviennissä voi tulla silloin, jos toimittaja ja asiakas eivät ymmärrä toisiaan. Tässä työssä tehdään SMSviestejä käsittelevä mobiilisovellus ja siihen liittyvät projektisuunnitelma sekä määrittelydokumentit. Mobiilisovellus ohjelmoidaan J2ME:llä, joka on sulautettujen järjestelmien ohjelmointiin suunniteltu Java-kieli. Sovellus tukee toisen asteen opiskelijoille suunnattuja mobiiliohjelmointi opintoja. Opintojakso kuuluu Pohjois- Karjalan ammattiopiston järjestämään turvallisuusalan koulutukseen. Sovelluksella voidaan lähettää ohjausviestejä OUMAN EH-60 -ohjaus- ja valvontayksikköön. Yksikön avulla voi ohjata ja valvoa esimerkiksi kiinteistön lämmönsäätöä, vesivahinkoja, oven lukitusta jne. Tässä työssä tehtävällä sovelluksella demonstroidaan kesämökin ohjausta. Langaton tiedonsiirto tulee tulevaisuudessa lisääntymään kiinteistöjen ohjaus- ja valvontajärjestelmänä. Hätä- ja valvontaviestit lähetetään automaattisesti kiinteistön omistajalle, hoivapalveluyrittäjälle, talohuoltoon tai hätäkeskukseen. Kiinteistön omistaja voi omalla matkapuhelimellaan ajasta ja paikasta riippumattavalvoa ja ohjata kiinteistöään reaaliaikaisesti. Pohjois-Karjalan ammattiopisto haluaa olla kehittämässä ja toteuttamassa turvallisuusalan koulutusta nyt ja tulevaisuudessa.
Resumo:
The purpose of this Bachelor’s thesis is to review Fundamentals of programming course over six-year time period (2001–2006). We try to find out if students have passed the course in years 2005 and 2006, after the change of a lecturer, relatively more often than before. We also analyze the problem areas of the course so that these kinds of problems could be avoided in future. The work includes building of the database, creating of the statistics and analysis of the results. The statistics tell many things about development of the course but the analysis phase gives even more accurate information. In analysis phase we look for significant statistical differences with chi-square test and try to find causes and solutions for those differences. In this study we found out that the biggest proportion of passed students was in year 2006. However year 2005 had very bad results which were caused by many different factors. That’s why the null hypothesis, that year 2005 and 2006 had better results than the earlier years, has to be rejected. Despite that the good results in year 2006 imply that the course has developed in right direction.
Resumo:
Harjoitustöiden vertaisarvioinnissa opiskelijat tarkastavat toistensa töitä ja antavat niistä palautteen annettujen ohjeiden mukaan. Yleensä opiskelijoille annetaan tätä tehtävää tukemaan tietty joukko arviointikriteereitä, joiden osalta työtä ainakin on kommentoitava. Vertaisarviointi voi antaa opiskelijoille monipuolisempaa palautetta kuin ilman sitä olisi mahdollista, mahdollisuuden tehtävien vaihtoehtoisiin ratkaisuihin tutustumiseen sekä kokemusta ongelmanratkaisun analyyttisestä ja kriittisestä tarkastelusta. Lisäksi vertaisarviointi voi tukea opettajien työtä helpottamalla riittävän palautteen antamista opiskelijoille ja antamalla jonkinlaista kuvaa opiskelijoiden näkemyksistä tehtävän aihealueeseen liittyen. Tämän työn tavoitteena on selvittää, mitä mainituista vertaisarviointiin liitetyistä hyödyistä voidaan todellisuudessa saavuttaa ohjelmointipainotteisilla kursseilla. Ohjelmointikurssin opiskelijat arvioivat kurssiin kuuluvien harjoitustöiden yhteydessä toistensa ratkaisuja yhteen tehtävistä. Opiskelijoille suunnatulla kyselyllä pyritään kartoittamaan, kuinka hyvin vertaisarvioinnille asetetut tavoitteet toteutuvat. Kokemuksia opettajan näkökulmasta selvitetään haastattelujen avulla. Testauksen toteutuksessa käytetään verkkosovellusta, johon opiskelijat tallentavat omat työnsä, josta he lataavat itselleen määrätyt työt arvioitavaksi, johon he tallentavat arvionsa ja jonka kautta he lopulta saavat palautteen omasta työstään.
Resumo:
Tämän tutkimuksen tavoitteena on selvittää opintojensa alussa olevien yliopisto-opiskelijoiden vaikeimpina pitämät käytännön ohjelmoinnin aihealueet sekä koostaa luentomoniste käytettäväksi seuraavalla alkavalla Käytännön ohjelmointi -kurssilla. Tutkimusmetodina käytettiin konstruktiivista tutkimusmetodia, jossa tavoitteen spesifioinnin jälkeen implementoitiin luentomoniste koostamalla määriteltyjen aihekokonaisuuksien lähdemateriaalia yhtenäiseksi, luettavaksi kokonaisuudeksi. Yliopistoissa ei yleisesti opeteta ohjelmistojen testausta ennen syventäviä ohjelmistotekniikan kursseja, mikä on kuitenkin puute työelämän kannalta. Tässä työssä esitetään perusteluja käytännönläheisten aihekokonaisuuksien painottamiselle ohjelmointikursseilla jo yliopisto-opintojen alkuvaiheessa. Työssä käsitellään Käytännön ohjelmointi -kurssin kurssipalautetta, missä havaittiin opiskelijoiden pitävän kurssin hankalimpina aihealueina linkitettyä listaa, osoittimia, dynaamista muistinhallintaa, tietorakenteita ja versionhallintaa. Työn avulla on pyritty kehittämään käytännön ohjelmoinnin yliopisto-opetusta Lappeenrannan teknillisessä yliopistossa luentomateriaalin avulla, jossa on muun muassa teoriaa, keskeisiä opiskelijoiden tarvitsemia komentoja, www-linkkejä sekä ohjelmoinnin tyyliopas.
Resumo:
Tässä kandidaatintyössä suunnitellaan ja toteutetaan regressiotestaus- ja ylläpitotyökalu Ohjelmoinnin perusteet -kurssin Python-ohjelmointitehtäville. Työkalun on tarkoitus auttaa kurssin vastuuhenkilöitä selvittämään kurssilla käytettyjen harjoitustehtävien esimerkkiratkaisujen toimivuus Python-versiossa, jota kurssilla aiotaan käyttää ohjelmointiympäristönä seuraavana vuonna, ja helpottaa harjoitusmateriaalin yhdenmukaisuuden varmistamista silloin kun Python-versiota vaihdetaan tai materiaaliin tehdään muutoksia. Työssä tutkitaan, miten tarkoitukseen sopiva yleispätevä testaustyökalu voidaan kehittää, mitä seikkoja sen suunnittelussa on otettava huomioon ja mitä ongelmia kehittämiseen liittyy. Yleispätevän testaustyökalun kehittäminen osoittautui hankalaksi, vaikka testattavat ohjelmat ovat yksinkertaisia. Harjoitusmateriaaliin kuuluneiden yli 50 ohjelman testaamisessa tarvittavia tiedostoja oli yhteensä hyvin suuri määrä, ja niiden käsittelemiseksi työkalussa ja sen ulkopuolella oli vaikeaa valita optimaalista hakemistorakennetta. Lisäksi joidenkin testattavien ohjelmien havaittiin vaativan testauksessa muista poikkeavia lisätoimenpiteitä, jotka päätettiin jättää toteuttamatta työn puitteissa. Työn toivottu tulos jäi siten osittain saavuttamatta. Tuloksena syntyi kuitenkin työkalu, jolla voidaan ajaa 93 % nykyisistä esimerkkiratkaisuista määritellyillä testisyötteillä halutussa Python -ympäristössä ja saada tiedot ohjelmien toimivuudesta sekä niiden tuottamien tulosteiden täsmäävyydestä esimerkkitulosteisiin.
Resumo:
The development of correct programs is a core problem in computer science. Although formal verification methods for establishing correctness with mathematical rigor are available, programmers often find these difficult to put into practice. One hurdle is deriving the loop invariants and proving that the code maintains them. So called correct-by-construction methods aim to alleviate this issue by integrating verification into the programming workflow. Invariant-based programming is a practical correct-by-construction method in which the programmer first establishes the invariant structure, and then incrementally extends the program in steps of adding code and proving after each addition that the code is consistent with the invariants. In this way, the program is kept internally consistent throughout its development, and the construction of the correctness arguments (proofs) becomes an integral part of the programming workflow. A characteristic of the approach is that programs are described as invariant diagrams, a graphical notation similar to the state charts familiar to programmers. Invariant-based programming is a new method that has not been evaluated in large scale studies yet. The most important prerequisite for feasibility on a larger scale is a high degree of automation. The goal of the Socos project has been to build tools to assist the construction and verification of programs using the method. This thesis describes the implementation and evaluation of a prototype tool in the context of the Socos project. The tool supports the drawing of the diagrams, automatic derivation and discharging of verification conditions, and interactive proofs. It is used to develop programs that are correct by construction. The tool consists of a diagrammatic environment connected to a verification condition generator and an existing state-of-the-art theorem prover. Its core is a semantics for translating diagrams into verification conditions, which are sent to the underlying theorem prover. We describe a concrete method for 1) deriving sufficient conditions for total correctness of an invariant diagram; 2) sending the conditions to the theorem prover for simplification; and 3) reporting the results of the simplification to the programmer in a way that is consistent with the invariantbased programming workflow and that allows errors in the program specification to be efficiently detected. The tool uses an efficient automatic proof strategy to prove as many conditions as possible automatically and lets the remaining conditions be proved interactively. The tool is based on the verification system PVS and i uses the SMT (Satisfiability Modulo Theories) solver Yices as a catch-all decision procedure. Conditions that were not discharged automatically may be proved interactively using the PVS proof assistant. The programming workflow is very similar to the process by which a mathematical theory is developed inside a computer supported theorem prover environment such as PVS. The programmer reduces a large verification problem with the aid of the tool into a set of smaller problems (lemmas), and he can substantially improve the degree of proof automation by developing specialized background theories and proof strategies to support the specification and verification of a specific class of programs. We demonstrate this workflow by describing in detail the construction of a verified sorting algorithm. Tool-supported verification often has little to no presence in computer science (CS) curricula. Furthermore, program verification is frequently introduced as an advanced and purely theoretical topic that is not connected to the workflow taught in the early and practically oriented programming courses. Our hypothesis is that verification could be introduced early in the CS education, and that verification tools could be used in the classroom to support the teaching of formal methods. A prototype of Socos has been used in a course at Åbo Akademi University targeted at first and second year undergraduate students. We evaluate the use of Socos in the course as part of a case study carried out in 2007.
Resumo:
The skill of programming is a key asset for every computer science student. Many studies have shown that this is a hard skill to learn and the outcomes of programming courses have often been substandard. Thus, a range of methods and tools have been developed to assist students’ learning processes. One of the biggest fields in computer science education is the use of visualizations as a learning aid and many visualization based tools have been developed to aid the learning process during last few decades. Studies conducted in this thesis focus on two different visualizationbased tools TRAKLA2 and ViLLE. This thesis includes results from multiple empirical studies about what kind of effects the introduction and usage of these tools have on students’ opinions and performance, and what kind of implications there are from a teacher’s point of view. The results from studies in this thesis show that students preferred to do web-based exercises, and felt that those exercises contributed to their learning. The usage of the tool motivated students to work harder during their course, which was shown in overall course performance and drop-out statistics. We have also shown that visualization-based tools can be used to enhance the learning process, and one of the key factors is the higher and active level of engagement (see. Engagement Taxonomy by Naps et al., 2002). The automatic grading accompanied with immediate feedback helps students to overcome obstacles during the learning process, and to grasp the key element in the learning task. These kinds of tools can help us to cope with the fact that many programming courses are overcrowded with limited teaching resources. These tools allows us to tackle this problem by utilizing automatic assessment in exercises that are most suitable to be done in the web (like tracing and simulation) since its supports students’ independent learning regardless of time and place. In summary, we can use our course’s resources more efficiently to increase the quality of the learning experience of the students and the teaching experience of the teacher, and even increase performance of the students. There are also methodological results from this thesis which contribute to developing insight into the conduct of empirical evaluations of new tools or techniques. When we evaluate a new tool, especially one accompanied with visualization, we need to give a proper introduction to it and to the graphical notation used by tool. The standard procedure should also include capturing the screen with audio to confirm that the participants of the experiment are doing what they are supposed to do. By taken such measures in the study of the learning impact of visualization support for learning, we can avoid drawing false conclusion from our experiments. As computer science educators, we face two important challenges. Firstly, we need to start to deliver the message in our own institution and all over the world about the new – scientifically proven – innovations in teaching like TRAKLA2 and ViLLE. Secondly, we have the relevant experience of conducting teaching related experiment, and thus we can support our colleagues to learn essential know-how of the research based improvement of their teaching. This change can transform academic teaching into publications and by utilizing this approach we can significantly increase the adoption of the new tools and techniques, and overall increase the knowledge of best-practices. In future, we need to combine our forces and tackle these universal and common problems together by creating multi-national and multiinstitutional research projects. We need to create a community and a platform in which we can share these best practices and at the same time conduct multi-national research projects easily.
Resumo:
In this thesis, simple methods have been sought to lower the teacher’s threshold to start to apply constructive alignment in instruction. From the phases of the instructional process, aspects that can be improved with little effort by the teacher have been identified. Teachers have been interviewed in order to find out what students actually learn in computer science courses. A quantitative analysis of the structured interviews showed that in addition to subject specific skills and knowledge, students learn many other skills that should be mentioned in the learning outcomes of the course. The students’ background, such as their prior knowledge, learning style and culture, affects how they learn in a course. A survey was conducted to map the learning styles of computer science students and to see if their cultural background affected their learning style. A statistical analysis of the data indicated that computer science students are different learners than engineering students in general and that there is a connection between the student’s culture and learning style. In this thesis, a simple self-assessment scale that is based on Bloom’s revised taxonomy has been developed. A statistical analysis of the test results indicates that in general the scale is quite reliable, but single students still slightly overestimate or under-estimate their knowledge levels. For students, being able to follow their own progress is motivating, and for a teacher, self-assessment results give information about how the class is proceeding and what the level of the students’ knowledge is.
Resumo:
The rate of adoption and use of learning management systems to support teaching and learning processes in academic institutions is growing rapidly. Universities are acquiring systems with functionalities that can match with their specific needs and requirements. Moodle is one of the most popular and widely deployed learning management systems in academic institutions today. However, apart from the system, universities tend to maintain other applications for the purpose of supplementing their teaching and learning processes. This situation is similar to Lappeenranta University of Technology (LUT), which is our case study in this project. Apart from Moodle, the university also maintains other systems such as Oodi, Noppa and Uni portal for the purpose of supporting its educational activities. This thesis has two main goals. The first goal is to understand the specific role of Moodle at LUT. This information is fundamental in assessing whether Moodle is needed in the university’s current teaching and learning environment. The second aim is to provide insights to teachers and other departmental stakeholders on how Moodle can provide added value in the teaching of a software development course. In response to this, a Moodle module for a software development course is created and the underlying features are tested. Results of the constructive work proposed some improvements through (i) the use of Moodle for in-class surveys, (ii) transfer of grades from Moodle to Oodi, (iii) use of Moodle in self-study courses and MOOCs, (iv) online examinations, and (v) Moodle integrations with third party applications. The proposed items were then evaluated for their utility through interviews of five expert interviews. The final results of this work are considered useful to LUT administration and management specifically on ways that Moodle can bring changes to the university at managerial, economical and technical level. It also poses some challenges on platform innovations and research.
Resumo:
The goal of the study was to evaluate an e-learning course entitled “Nursing interventions to manage distressed and disturbed patients” and intended for psychiatric nurses, using Kirkpatrick’s evaluation model. The aim was to describe nurses’ reactions, learning, behaviour change and impacts resulting from this e-learning course. This dissertation comprises four papers, and the data were collected 2008-2012 from three different sources; electronic databases, an e-learning platform and psychiatric hospitals. First, a systematic literature review was conducted to understand the effectiveness of e-learning. Second, an RCT study was implemented to investigate the impact of the e-learning course on nurses’ job-satisfaction, knowledge and attitudes (N=158). Third, to complete the picture of nurses views of the e-learning course related to knowledge transfer, the nurses’ perspective was studied (N=33). Lastly, the effects of the e-learning course from nursing managers’ perspective in psychiatric hospital organisations were studied (N=28). The systematic review showed that although the nurses were satisfied with the e-learning, no effects were found in the RCT study of nurses’ job satisfaction. The RCT study showed no effects on nurses’ learning related to knowledge increase, but there was change in attitudes. The managers described the changes in the nurses’ knowledge and attitudes. Among the nurses behaviour changed with knowledge transfer from the e-learning course to practice and they pointed out development issues related to their work. The final impacts of the e-learning course revealed advantages and disadvantages of the e-learning course and its implications for nurses’ work. This dissertation provides new insight into nurses’ reactions, learning, behaviour change and impacts resulting from an e-learning course in their continuing education. In order to improve nurses’ continuing education systematic evaluation is needed, for which Kirkpatrick’s evaluation model is a useful tool.