26 research outputs found

    A First Course in Software Engineering for Aerospace Engineers

    Get PDF
    Software is a critical component of mission capability in all aerospace systems. This capability is realized directly through the use of onboard software, and enabled through the use of software on ground support systems. Students attending an aerospace engineering program come with a highly diversified background in software development ranging from novice user to expert programmer. A first course in software development has to account for the diversity, and as an outcome provide both a common vocabulary, as well as a common baseline of skills. This paper presents our learning from designing and teaching such a course for aerospace engineering undergraduates

    What’s Motivation Got to Do with It? A Survey of Recursion in the Computing Education Literature

    Get PDF
    One of the most challenging topics for both computing educators and students is recursion. Pedagogical approaches for teaching recursion have appeared in the computing education literature for over 30 years, and the topic has generated a significant body of work. Given its persistence, relatively little attention has been paid to student motivation. This article summarizes results on teaching and learning recursion explored by the computing education community, noting the relative lack of interest in motivation. It concludes by briefly discussing an approach to teaching recursion is appealing for students interested in web development

    Adaptive assessment in the class of programming

    Get PDF
    Διπλωματική εργασία--Πανεπιστήμιο Μακεδονίας, Θεσσαλονίκη, 2009.This paper presents P.A.T. (Programming Adaptive Testing), a computerized adaptive testing system for assessing students’ programming knowledge. P.A.T. was used in two high school programming classes by 73 students. After research was carried out, it was found helpful in increasing students’ cognitive domain skills

    Pariohjelmointi olio-ohjelmoinnin opetusmenetelmänä

    Get PDF
    Tämän opinnäytetyön tavoitteena oli esitellä pariohjelmoinnin hyötyjä ja haasteita sekä tarkastella sitä opetusmenetelmänä. Pariohjelmoinnilla tarkoitetaan menetelmää, jossa kaksi ohjelmoijaa tekee tiivistä yhteistyötä saman päätteen ääressä toisen tuottaessa lähdekoodia ja toisen korjatessa virheitä ja tehdessä kehitysehdotuksia. Rooleja vaihdetaan säännöllisesti. Varsinaista toimeksiantajaa työllä ei ollut, sillä opinnäytetyön kirjoittaja halusi itse tutkia pariohjelmoinnin hyödyntämistä opetuksessa perehdyttyään menetelmään ammattiharjoittelun yhteydessä. Pariohjelmointia toimivuutta opetusmenetelmänä tutkittiin Tietojenkäsittelyn koulutusohjelman olio-ohjelmoinnin opintojaksolla. Pariohjelmointikokeilu toteutettiin syksyllä 2012. Opiskelijat jaettiin pareihin alkukartoituksen perusteella siten, että osapuolten ohjelmointitaidot vastasivat toisiaan. Pareja vaihdettiin opiskelijoiden halukkuuden mukaan opintojakson puolivälissä. Parit työskentelivät pääsääntöisesti siten, että rooleja vaihdettiin jokaisen tapaamiskerran aluksi. Opintojaksoon kuuluvat harjoitustehtävät ohjelmoitiin parin kanssa. Harjoitustyöt sekä tentit suoritettiin kuitenkin itsenäisesti. Pariohjelmointi ei ollut pakollista, mutta sitä suositeltiin kaikille opiskelijoille. Pariohjelmoinnin käyttämistä opetusmenetelmänä tarkasteltiin niin opiskelijoiden kuin opettajankin näkökulmasta. Opiskelijat vastasivat neljään sähköiseen kyselyyn, joista kolme toteutettiin opintojakson aikana ja yksi noin kolmen kuukauden kuluttua opintojakson päättymisestä. Kyselyillä kartoitettiin mm. suhtautumista pariohjelmointiin, sen toteutumista ja vaikutusta oppimiseen sekä pariohjelmoinnin hyödyntämistä opintojakson päättymisen jälkeen. Opettajan havaintoja ja näkemyksiä kartoitettiin haastattelun avulla. Syksyn 2012 toteutuskertaa verrattiin myös aiempien vuosien toteutuskertoihin oppimistulosten ja läpäisyprosentin suhteen. Tutkimuksen tietoperustana olivat aiemmin tehdyt tutkimukset pariohjelmoinnin hyödyistä ja haasteista sekä menetelmän käytöstä opetuksessa. Pariohjelmointikokeilun tuloksena havaittiin, että menetelmä soveltuu opiskelijoille, joilla on riittävät perusvalmiudet ohjelmoinnissa sekä halua ja kykyä yhteistyöhön. Opiskelijat, jotka hyödynsivät pariohjelmointia eniten, saivat korkeimmat arvosanat. Vastaavasti opiskelijat, joilla oli heikko lähtötaso ja vaikeuksia kommunikoida parin kanssa, menestyivät opintojaksolla vaatimattomammin. Suhtautuminen pariohjelmointiin muuttui opintojakson edetessä pääsääntöisesti positiivisemmaksi, kun opiskelijat havaitsivat hyötyvänsä parin kanssa työskentelystä. Pariohjelmoinnin hyödyntäminen opetuksessa voi antaa opiskelijalle lisävalmiuksia tuleville opintojaksoille sekä työelämään. Pariohjelmointia voi suositella opetusmenetelmäksi, mutta lisäkokeiluja tarvitaan mahdollisimman toimivan kokonaisuuden saavuttamiseksi. Parien muodostamisessa voisi kokeilla erilaisia kokoonpanoja. Lisäksi oppimistuloksia voisi verrata rinnakkain etenevien toteutuskertojen välillä. Toisessa ryhmässä opetus olisi perinteistä, kun taas toisessa hyödynnettäisiin pariohjelmointia.The purpose of this thesis was to present the costs and benefits of pair programming and to study pair programming as a teaching method. Pair programming is a programming technique in which two programmers use one computer to work together on the same task switching roles as a driver and a co-pilot. There was no actual assigner to this thesis. The author herself wanted to explore pair programming based on her previous experience. Pair programming as a teaching method was studied in the Degree programme in Business Information Systems in an object-oriented programming course. The pair programming experiment was carried out in the autumn of 2012. The students were divided into pairs on the basis of their programming skills, so that the parties' programming skills mirrored each other. The pairs were changed in the middle of the course. The pairs worked so that the roles were switched in the beginning of each lesson. The course included exercises programmed with a partner. The assignments and exams, however, were performed independently. Programming in pairs was not mandatory, but it was recommended for all students. The effectiveness of pair programming as a teaching method was examined from both students’ and teacher’s perspective. Students answered to four electronic surveys, of which three were carried out during the course, and one about three months after the end of the course. The questions asked in the surveys concerned attitude towards pair programming, implementation of pair programming, its impact on learning, as well as using pair programming after the end of the course. The teacher’s observations and views were mapped with an interview. The implementation of the course in the autumn 2012 was com-pared to previous years in terms of learning outcomes and throughput per cent. The theoretical background of this thesis was based on the earlier studies of pair programming, its cost and benefits, as well as pair programming in education. As a result of this study it was found that pair programming is suitable for students who have sufficient basic skills in programming and willingness and ability to cooperate. Students who used pair programming received the highest marks. On the other hand students with low initial level and difficulties in communicating with a partner, performed modestly. The attitude towards pair programming changed more positive as the course progressed, as the students found to benefit from pair programming. Using pair programming as a teaching method can provide students with additional capabilities for future studies and work. Pair Programming can be recommended as a teaching method, but further experiments are needed in order to achieve a functional entity. Different combinations could be used in forming pairs. In addition, the learning outcomes could be compared side by side between two course implementations held at the same time. The other group would have traditional teaching, whereas the other would use pair programming as a teaching method

    Driving learning via criterion-referenced assessment using Bloom’s Taxonomy

    Get PDF
    In this paper we describe our use of the criterion-referenced approach to assessment, where the criteria are based upon Bloom’s taxonomy. In our Bloom-based assessments scheme, all students in the class must satisfactorily complete a set of assessment tasks designed to demonstrate competence at the Knowledge and Comprehension levels of Bloom’s taxonomy. Any student who is content with the minimal passing grade need not complete any more assessment items. Other students, who elect to seek a higher grade, must also complete assessment tasks at the Application and Analysis levels of Bloom’s taxonomy. Student’s who satisfactorily complete these tasks, and stop at this point, attain one of the two middle passing grades. Finally, students who elect to seek the highest grade must go on to satisfactorily complete further assessment tasks, at the “Synthesis” and “Evaluation” levels of Bloom’s taxonomy. Each student is free to decide for him/herself what grade they will try to achieve. They are also free to approach the lecturer for advice, but in practise few do so. We have applied this assessment system in seven semesters of teaching, five semesters of teaching introductory programming, and two semesters of teaching introductory databases. After we had used this assessment system for a single semester, to teach introductory programming, we published descriptions of this assessment approach (Lister and Leaney 2003a, 2003b). This paper differs from those earlier papers in two ways. First, the earlier papers were aimed at members of the information technology community, and those teaching programming in particular, whereas this paper summarises the broad structure of the assessment scheme in way that is accessible to academics in non-computing disciplines. Second, this paper benefits from six more semesters of experience with this approach to assessment

    APPROACHING GENDER PARITY: WOMEN IN COMPUTER SCIENCE AT AFGHANISTAN'S KABUL UNIVERSITY

    Get PDF
    This study explores the representation of women in computer science at the tertiary level through data collected about undergraduate computer science education at Kabul University in Afghanistan. Previous studies have theorized reasons for underrepresentation of women in computer science, and while many of these reasons are indeed present in Afghanistan, they appear to hinder advancement to degree to a lesser extent. Women comprise at least 36% of each graduating class from KU's Computer Science Department; however, in 2007 women were 25% of the university population. In the US, women comprise over 50% of university populations while only graduating on average 25% women in undergraduate computer science programs. Representation of women in computer science in the US is 50% below the university rate, but at KU, it is 50% above the university rate. This mixed methods study of KU was conducted in the following three stages: setting up focus groups with women computer science students, distributing surveys to all students in the CS department, and conducting a series of 22 individual interviews with fourth year CS students. The analysis of the data collected and its comparison to literature on university/department retention in Science, Technology, Engineering and Mathematics gender representation and on women's education in underdeveloped Islamic countries illuminates KU's uncharacteristic representation of women in its Computer Science Department. The retention of women in STEM through the education pipeline has several characteristics in Afghanistan that differ from countries often studied in available literature. Few Afghan students have computers in their home and few have training beyond secretarial applications before considering studying CS at university. University students in Afghanistan are selected based on placement exams and are then assigned to an area of study, and financially supported throughout their academic career, resulting in a low attrition rate from the program. Gender and STEM literature identifies parental encouragement, stereotypes and employment perceptions as influential characteristics. Afghan women in computer science received significant parental encouragement even from parents with no computer background. They do not seem to be influenced by any negative "geek" stereotypes, but they do perceive limitations when considering employment after graduation

    Desenvolvimento de uma ferramenta de simulação de processadores para uso didático em cursos de computação

    Get PDF
    TCC(graduação) - Universidade Federal de Santa Catarina. Campus Araranguá. Engenharia da Computação.O processo de aprendizagem de Organização e Arquitetura de Computação é fundamen- tal para estudantes de Engenharia de Computação e áreas relacionadas. A complexidade e a falta de familiaridade dos estudantes com o conteúdo tornam difícil a compreensão de conceitos essenciais para o desenvolvimento de habilidades fundamentais ao profissio- nal que atua nesta área da Engenharia, e que hoje tem que lidar com novos paradigmas computacionais, como a Internet das Coisas. Neste contexto, esse trabalho apresenta uma ferramenta didática de simulação de processadores para ensino na disciplina de Organização e Arquitetura de Computadores, com ênfase em processadores para em sistemas embarcados. São simulados dois processadores. Um didático, desenvolvido para facilitar o entendimento de um processador, e outro baseado em um modelo comercial desenvolvido pela empresa Britânica ARM Holdings. Através de pesquisa bibliográfica foi feita uma comparação entre processadores didáticos publicados na literatura, para nortear o desenvolvimento da ferramenta. São apresentados ainda os resultados preliminares da aplicação do processador didático proposto neste trabalho, que foi usado em sala de aula no curso de Organização e Arquitetura de Computadores do curso de Engenharia de Computação da UFSC.The learning process of Computer Organization and Architecture is fundamental for students of Computer Engineering and related areas. The complexity of the theme and lack of familiarity of the students with the content make it difficult to understand essential concepts important to develop fundamental skills for a computing area professional dealing with new computational paradigms, such as the Internet of Things. In this context, this work presents a didactic tool to simulate processors for teaching the subject of Computer Architecture and Organization, emphasising processors for embedded systems. Two processors are simulated. One is didactic, developed to facilitate the understanding of a processor, and the other is based on a commercial model developed by the British company ARM Holdings. Through bibliographic research, a comparison between didactic processors published in the literature was made to guide the development of the tool. The preliminary results of practical use of the tool proposed in this work, which was used in a classroom in the Computer Architecture and Organization course of the Computer Engineering course at UFSC, are also presented

    The evaluation of a pedagogical-program development environment for Novice programmers : a comparative study

    Get PDF
    It is an acknowledged fact that many novice programmers experience difficulty in the process of learning to program. One of the contributing factors to this difficulty is the Program Development Environment (PDE). Professional-PDEs are those developed specifically for professional programmers, but are often used by educational institutions in the instruction of programming. It has long been accepted that such environments are inappropriate in the instruction of programming due to unnecessary complexity and lack of support for novice programmers in the learning process. Numerous pedagogical-PDEs supporting the mechanics of programming have been developed in response to this. A review of literature, however, indicates that very limited empirical studies comparing pedagogical-PDEs and professional-PDEs have been conducted. The current study investigates whether there are measurable benefits to using a pedagogical-PDE supporting the mechanics of programming in the instruction of programming instead of a professional-PDE. A comparative study of this nature requires a representative pedagogical-PDE and representative professional-PDE be compared with one another. The first part of the current study determines a set of requirements that a pedagogical- PDE should adhere to based on literature. A set of representative features for a pedagogical-PDE is derived by examining the features of existing PDEs in conjunction with the set of requirements. Based on these features, a pedagogical-PDE, known as SimplifIDE, is developed that implements the representative set of features and that meets are the requirements for a pedagogical-PDE. The second part of the current study is the specification and administration of an empirical experiment in which SimplifIDE and Borland© DelphiTM are compared with one another. A holistic approach in determining the differences between the PDEs is taken and three main areas are examined, namely academic performance, perceptions and programming behavior

    Efficient Use of Teaching Technologies with Programming Education

    Get PDF
    Learning and teaching programming are challenging tasks that can be facilitated by using different teaching technologies. Visualization systems are software systems that can be used to help students in forming proper mental models of executed program code. They provide different visual and textual cues that help student in abstracting the meaning of a program code or an algorithm. Students also need to constantly practice the skill of programming by implementing programming assignments. These can be automatically assessed by other computer programs but parts of the evaluation need to be assessed manually by teachers or teaching assistants.There are a lot of existing tools that provide partial solutions to the practical problems of programming courses: visualizing program code, assessing student programming submissions automatically or rubrics that help keeping manual assessment consistent. Taking these tools into use is not straightforward. To succeed, the teacher needs to find the suitable tools and properly integrate them into the course infrastructure supporting the whole learning process. As many programming courses are mass courses, it is a constant struggle between providing sufficient personal guidance and feedback while retaining a reasonable workload for the teacher.This work answers to the question "How can the teaching of programming be effectively assisted using teaching technologies?" As a solution, different learning taxonomies are presented from Computer Science perspective and applied to visualization examples so the examples could be used to better support deeper knowledge and the whole learning process within a programming course. Then, different parts of the assessment process of programming assignments are studied to find the best practices in supporting the process, especially when multiple graders are being used, to maintain objectivity, consistency and reasonable workload in the grading.The results of the work show that teaching technologies can be a valuable aid for the teacher to support the learning process of the students and to help in the practical organization of the course without hindering the learning results or personalized feedback the students receive from their assignments. This thesis presents new visualization categories that allow deeper cognitive development and examples on how to integrate them efficiently into the course infrastructure. This thesis also presents a survey of computer-assisted assessment tools and assessable features for teachers to use in their programming assignments. Finally, the concept of rubric-based assessment tools is introduced to facilitate the manual assessment part of programming assignments
    corecore