1,003 research outputs found

    Introductory programming: a systematic literature review

    Get PDF
    As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research

    Visual and Textual Programming Languages: A Systematic Review of the Literature

    Get PDF
    It is well documented, and has been the topic of much research, that Computer Science courses tend to have higher than average drop out rates at third level. This is a problem that needs to be addressed with urgency but also caution. The required number of Computer Science graduates is growing every year but the number of graduates is not meeting this demand and one way that this problem can be alleviated is to encourage students at an early age towards studying Computer Science courses. This paper presents a systematic literature review on the role of visual and textual programming languages when learning to program, particularly as a first programming language. The approach is systematic, in that a structured search of electronic resources has been conducted, and the results are presented and quantitatively analysed. This study will give insight into whether or not the current approaches to teaching young learners programming are viable, and examines what we can do to increase the interest and retention of these students as they progress through their education.Comment: 18 pages (including 2 bibliography pages), 3 figure

    Interplay of Desktop and Mobile Apps with Web Services in an Introductory Programming Course

    Get PDF
    This paper describes a case study of a second-semester introductory programming course for information systems (IS) students that combined desktop and mobile application development and consumption of existing web services. Our aim was to provide students with a holistic view of how different types of applications can be developed and combined to solve real-world problems, as the students learned the basics of programming. Students progressively built a desktop Java application with a graphical user interface for a local public transit system. It combined the use of basic algorithms, existing web services for geo-coding and mapping to illustrate a recommended route on the system. Students then ported this application to the Android platform re-using most of the code they had already developed. Along with fulfilling the traditional objectives of an introductory course, this course also demonstrated the possible interplay of stand-alone components and web services in desktop and mobile applications and kept the students motivated and engaged throughout the semester

    Enhancing apprentice-based learning of Java

    Get PDF
    Various methods have been proposed in the past to improve student learning by introducing new styles of working with assignments. These include problem-based learning, use of case studies and apprenticeship. In most courses, however, these proposals have not resulted in a widespread significant change of teaching methods. Most institutions still use a traditional lecture/lab class approach with a strong separation of tasks between them. In part, this lack of change is a consequence of the lack of easily available and appropriate tools to support the introduction of new approaches into mainstream courses.In this paper, we consider and extend these ideas and propose an approach to teaching introductory programming in Java that integrates assignments and lectures, using elements of all three approaches mentioned above. In addition, we show how the BlueJ interactive programming environment [7] (a Java development environment aimed at education) can be used to provide the type of support that has hitherto hindered the widespread take-up of these approaches. We arrive at a teaching method that is motivating, effective and relatively easy to put into practice. Our discussion includes a concrete example of such an assignment, followed by a description of guidelines for the design of this style of teaching unit

    Increasing Student Performance Through the Use of Web Services in Introductory Programming Classrooms: Results from a Series of Quasi-Experiments

    Get PDF
    An introduction to programming course can be a challenge for both students and instructors. This paper describes a study that introduced Web services (WS) and Service-Oriented Architecture in Information Systems 1 (IS 1) and Computer Science 1 (CS 1) programming courses over a two-year period. WS were used as an instruction tool based on their increased use in industry as well as their ability to provide a real world feel to student programming activities. The paper includes an example WS teaching module and a proposed implementation model for future studies based on lessons learned from the current experiment. The study was successful in showing a significant increase in student test performance for WS-taught courses over standard-taught courses

    Design Early Considered Harmful: Graduated Exposure to Complexity and Structure Based on Levels of Cognitive Development

    Get PDF
    We have recognized that the natural tendency to teach according to the structure of one’s own understanding runs contrary to established models of cognitive development. Bloom’s Taxonomy has provided a basis for establishing a more efficacious pedagogy. Emphasizing a hierarchical progression of skill sets and gradual learning through example, our approach advocates teaching software development from the inside/out rather than beginning with either console apps or monolithic designs

    Two-Language, Two-Paradigm Introductory Computing Curriculum Model and its Implementation

    Get PDF
    This paper analyzes difficulties with the introduction of object-oriented concepts in introductory computing education and then proposes a two-language, two-paradigm curriculum model that alleviates such difficulties. Our two-language, two-paradigm curriculum model begins with teaching imperative programming using Python programming language, continues with teaching object-oriented computing using Java, and concludes with teaching object-oriented data structures with Java

    Python First: A Lab-Based Digital Introduction to Computer Science

    Get PDF
    The emphasis on Java and other commercial languages in CS1 has established the perception of computer science as a dry and technically difficult discipline among undecided students who are still seeking careers. This may not be a big problem during an enrolment boom, but in times of decreased enrolment such negative perception may have a devastating effect on computer science programs and therefore should not be ignored. We have made our CS1 course offerings more attractive to students (1) by introducing an easy to learn yet effective scripting language - Python, (2) by making all course resources available in a comprehensive online study pack, and (3) by offering an extensive set of detailed and easy to follow self-guided labs. Our custom-designed online study pack comprises a wealth of new, original learning modules: extensive e-texts, detailed self-guided labs, numerous sample programs, quizzes, and slides. Our recent student survey demonstrates that students like and prefer Python as a first language and that they also percept the online study pack as very beneficial. Our Python First course, originally required for computer science majors, has been so well received that it has been recently approved as a general education science elective, thus opening new recruitment opportunities for the computer science major. Our Python First digital pack is published online at http://studypack.com

    Computing as the 4th “R”: a general education approach to computing education

    Get PDF
    Computing and computation are increasingly pervading our lives, careers, and societies - a change driving interest in computing education at the secondary level. But what should define a "general education" computing course at this level? That is, what would you want every person to know, assuming they never take another computing course? We identify possible outcomes for such a course through the experience of designing and implementing a general education university course utilizing best-practice pedagogies. Though we nominally taught programming, the design of the course led students to report gaining core, transferable skills and the confidence to employ them in their future. We discuss how various aspects of the course likely contributed to these gains. Finally, we encourage the community to embrace the challenge of teaching general education computing in contrast to and in conjunction with existing curricula designed primarily to interest students in the field
    • …
    corecore