9 research outputs found

    Follow the river and you will find the C

    Full text link

    Making the move from C to Python with mechanical engineering students

    Get PDF
    Work is underway in the Mechanical Engineering Department at San Jose State University to transition the first course in computer programming (ME 30 Computer Applications) and a follow-on course, ME 106 Fundamentals of Mechatronics, from C to Python. Both courses make extensive use of a microcontroller to teach the fundamentals in both subjects, and heretofore have used the C language and the Arduino platform, but now both courses have moved to Python and to the Adafruit Feather M4 Express board, which can run Python natively on its associated microcontroller. Prior to the transition to Python, ME 30 had a relatively high failure rate between about 10 - 35%. Since transitioning to Python, the failure rate dropped dramatically to about 3% in the fall of 2019. The paper will outline the previous structure of the courses, explain the motivation for transitioning from C to Python, and discuss the pros and cons of the transition observed to date

    Curriculum for an Introductory Computer Science Course: Identifying Recommendations from Academia and Industry

    Get PDF
    The purpose of this study was to define the course content for a university introductory computer science course based on regional needs. Delphi methodology was used to identify the competencies, programming languages, and assessments that academic and industry experts felt most important. Four rounds of surveys were conducted to rate the items in the straw models, to determine the entries deemed most important, and to understand their relative importance according to each group. The groups were then asked to rank the items in each category and attempt to reach consensus as determined by Kendall\u27s coefficient of concordance. 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. The industry experts did not reach consensus and showed low agreement on their recommendations for competencies, programming languages, and assessments

    Toward Predicting Success and Failure in CS2: A Mixed-Method Analysis

    Full text link
    Factors driving success and failure in CS1 are the subject of much study but less so for CS2. This paper investigates the transition from CS1 to CS2 in search of leading indicators of success in CS2. Both CS1 and CS2 at the University of North Carolina Wilmington (UNCW) are taught in Python with annual enrollments of 300 and 150 respectively. In this paper, we report on the following research questions: 1) Are CS1 grades indicators of CS2 grades? 2) Does a quantitative relationship exist between CS2 course grade and a modified version of the SCS1 concept inventory? 3) What are the most challenging aspects of CS2, and how well does CS1 prepare students for CS2 from the student's perspective? We provide a quantitative analysis of 2300 CS1 and CS2 course grades from 2013--2019. In Spring 2019, we administered a modified version of the SCS1 concept inventory to 44 students in the first week of CS2. Further, 69 students completed an exit questionnaire at the conclusion of CS2 to gain qualitative student feedback on their challenges in CS2 and on how well CS1 prepared them for CS2. We find that 56% of students' grades were lower in CS2 than CS1, 18% improved their grades, and 26% earned the same grade. Of the changes, 62% were within one grade point. We find a statistically significant correlation between the modified SCS1 score and CS2 grade points. Students identify linked lists and class/object concepts among the most challenging. Student feedback on CS2 challenges and the adequacy of their CS1 preparations identify possible avenues for improving the CS1-CS2 transition.Comment: The definitive Version of Record was published in 2020 ACM Southeast Conference (ACMSE 2020), April 2-4, 2020, Tampa, FL, USA. 8 page

    First Programming Language for Humanities Majors-A Comparison of Java and Swift

    Get PDF
    While Java, C family, and Python are the top three languages used in introductory programming courses in higher education, Swift is seldom used. This study considers whether the Swift language can be used as a first language for introductory programming for humanities majors. Learning programming is important for students regardless of major to foster computational thinking and utilize programming for their study. Our department conducted two courses to learn programming in Java and Swift for the creation of digital contents and media studies. This paper presents the contents of both courses, results of examinations, and students’ self-reflections. The result indicates that students can learn the basic programming concepts in Swift in the same way as in Java, but the effect of the Swift course for the GUI and OO parts was inferior to that of the Java course. The finding from students’ self-reflections concerning programming shows that students perceived that their confidence was enhanced in both the Swift and the Java courses.論

    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

    Development and Application of a Rasch Model Measure of Student Competency in University Introductory Computer Programming

    Get PDF
    University computer programming instruction nomenclature commonly uses the term Computer Science 1 (CS1) to describe introductory units of study. Success in CS1 is important as a pre-requisite for further study in programming and related disciplines. It is important to measure student progress and the antecedent influences. This study applied the Rasch Model and Messick’s Unified Theory of Validity to construct an interval level measure of CS1 competency with demonstrable suitability for this purpose

    Python CS1 as preparation for C++ CS2

    No full text
    corecore