22,194 research outputs found

    Challenging the Computational Metaphor: Implications for How We Think

    Get PDF
    This paper explores the role of the traditional computational metaphor in our thinking as computer scientists, its influence on epistemological styles, and its implications for our understanding of cognition. It proposes to replace the conventional metaphor--a sequence of steps--with the notion of a community of interacting entities, and examines the ramifications of such a shift on these various ways in which we think

    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

    Contemporary developments in teaching and learning introductory programming: Towards a research proposal

    Get PDF
    The teaching and learning of introductory programming in tertiary institutions is problematic. Failure rates are high and the inability of students to complete small programming tasks at the completion of introductory units is not unusual. The literature on teaching programming contains many examples of changes in teaching strategies and curricula that have been implemented in an effort to reduce failure rates. This paper analyses contemporary research into the area, and summarises developments in the teaching of introductory programming. It also focuses on areas for future research which will potentially lead to improvements in both the teaching and learning of introductory programming. A graphical representation of the issues from the literature that are covered in the document is provided in the introduction

    Unifying an Introduction to Artificial Intelligence Course through Machine Learning Laboratory Experiences

    Full text link
    This paper presents work on a collaborative project funded by the National Science Foundation that incorporates machine learning as a unifying theme to teach fundamental concepts typically covered in the introductory Artificial Intelligence courses. The project involves the development of an adaptable framework for the presentation of core AI topics. This is accomplished through the development, implementation, and testing of a suite of adaptable, hands-on laboratory projects that can be closely integrated into the AI course. Through the design and implementation of learning systems that enhance commonly-deployed applications, our model acknowledges that intelligent systems are best taught through their application to challenging problems. The goals of the project are to (1) enhance the student learning experience in the AI course, (2) increase student interest and motivation to learn AI by providing a framework for the presentation of the major AI topics that emphasizes the strong connection between AI and computer science and engineering, and (3) highlight the bridge that machine learning provides between AI technology and modern software engineering

    Defining the Competencies, Programming Languages, and Assessments for an Introductory Computer Science Course

    Get PDF
    The purpose of this study was to define the competencies, programming languages, and assessments for an introductory computer science course at a small private liberal arts university. Three research questions were addressed that involved identifying the competencies, programming languages, and assessments that academic and industry experts in California’s Central Valley felt most important and appropriate for an introduction to computer science course. The Delphi methodology was used to collect data from the two groups of experts with various backgrounds related to computing. The goal was to find consensus among the individual groups to best define aspects that would best comprise an introductory CS0 course for majors and non-majors. The output would be valuable information to be considered by curriculum designers who are developing a new program in software engineering at the institution. The process outlined would also be useful to curriculum designers in other fields and geographic regions who attempt to address their local education needs. Four rounds of surveys were conducted. The groups of experts were combined in the first round to rate the items in the straw models determined from the literature and add additional components when necessary. The academic and industry groupings were separated for the remainder of the study so that a curriculum designer could determine not only the items deemed most important, but also their relative importance among the two distinct groups. The experts selected items in each of the three categories in the second round to reduce the possibilities for subsequent rounds. The groups were then asked to rank the items in each of the three categories for the third round. A fourth round was held as consensus was not reached by either of the groups for any of the categories as determined by Kendall’s W. The academic experts reached consensus on a list of ranked competencies in the final round and showed a high degree of agreement on lists of ranked programming languages and assessments. Kendall’s W, values, however, were just short of the required 0.7 threshold for consensus on these final two items. The industry experts did not reach consensus and showed low agreement on their recommendations for competencies, programming languages, and assessments

    A 2007 Model Curriculum For A Liberal Arts Degree In Computer Science

    Get PDF

    Teaching Software Development to Non-Software Engineering Students

    Get PDF
    This paper argues that although the object-oriented programming (OOP) paradigm is appropriate for students taking programming modules on Higher Education (HE) software engineering course, this paradigm is not as relevant for students from other courses who study programming modules. It is also asserts that adopting another paradigm when teaching programming to non-software engineering students need not prevent the encouragement of good software engineering practices The paper discusses the software development model, procedures, techniques and programming language that the author requires non-software engineering students to employ when developing their software. This discussion also includes consideration of implementation issues in an educational context. The paper concludes that his alternative approach has been successfully implemented, that it requires the student to adopt a rigorous approach to development and that it encourages best software engineering practices. The conclusions also note that delivering this alternative offers the opportunity to include good educational practice, such as role-play

    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

    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