196,001 research outputs found
A multinational, multi-institutional study of assessment of programming skills of first-year CS students
In computer science, an expected outcome of a student's education is programming skill. This working group investigated the programming competency students have as they complete their first one or two courses in computer science. In order to explore options for assessing students, the working group developed a trial assessment of whether students can program. The underlying goal of this work was to initiate dialog in the Computer Science community on how to develop these types of assessments. Several universities participated in our trial assessment and the disappointing results suggest that many students do not know how to program at the conclusion of their introductory courses. For a combined sample of 216 students from four universities, the average score was 22.89 out of 110 points on the general evaluation criteria developed for this study. From this trial assessment we developed a framework of expectations for first-year courses and suggestions for further work to develop more comprehensive assessments
A Multimedia Interactive Environment Using Program Archetypes: Divide-and-Conquer
As networks and distributed systems that can exploit parallel computing become more widespread, the need for ways to teach parallel programming effectively grows as well. Even though many colleges and universities provide courses on parallel programming [1], most of those courses are reserved for graduate students and advanced undergraduates. There is a demand for ways to teach fundamental parallel programming concepts to people with just a working knowledge of programming. By using the idea of a software archetype, and providing a learning environment that teaches both concept and coding, we hope to satisfy this need. This paper presents an overview of the multimedia approach we took in teaching parallel programming and offers Divide-and-Conquer as an example of its use
Zero Shot Learning for Code Education: Rubric Sampling with Deep Learning Inference
In modern computer science education, massive open online courses (MOOCs) log
thousands of hours of data about how students solve coding challenges. Being so
rich in data, these platforms have garnered the interest of the machine
learning community, with many new algorithms attempting to autonomously provide
feedback to help future students learn. But what about those first hundred
thousand students? In most educational contexts (i.e. classrooms), assignments
do not have enough historical data for supervised learning. In this paper, we
introduce a human-in-the-loop "rubric sampling" approach to tackle the "zero
shot" feedback challenge. We are able to provide autonomous feedback for the
first students working on an introductory programming assignment with accuracy
that substantially outperforms data-hungry algorithms and approaches human
level fidelity. Rubric sampling requires minimal teacher effort, can associate
feedback with specific parts of a student's solution and can articulate a
student's misconceptions in the language of the instructor. Deep learning
inference enables rubric sampling to further improve as more assignment
specific student data is acquired. We demonstrate our results on a novel
dataset from Code.org, the world's largest programming education platform.Comment: To appear at AAAI 2019; 9 page
Behavioral Pattern Mining and Modeling in Programming Problem Solving
abstract: Online learning platforms such as massive online open courses (MOOCs) and
intelligent tutoring systems (ITSs) have made learning more accessible and personalized. These systems generate unprecedented amounts of behavioral data and open the way for predicting studentsâ future performance based on their behavior, and for assessing their strengths and weaknesses in learning.
This thesis attempts to mine studentsâ working patterns using a programming problem solving system, and build predictive models to estimate studentsâ learning. QuizIT, a programming solving system, was used to collect studentsâ problem-solving activities from a lower-division computer science programming course in 2016 Fall semester. Differential mining techniques were used to extract frequent patterns based on each activity provided details about questionâs correctness, complexity, topic, and time to represent studentsâ behavior. These patterns were further used to build classifiers to predict studentsâ performances.
Seven main learning behaviors were discovered based on these patterns, which provided insight into studentsâ metacognitive skills and thought processes. Besides predicting studentsâ performance group, the classification models also helped in finding important behaviors which were crucial in determining a studentâs positive or negative performance throughout the semester.Dissertation/ThesisMasters Thesis Computer Science 201
Insights on best teaching practices for promoting students' learning
The Department of Educational Sciences and the Department of Electronic and Telecommunications at the University of Aveiro (Portugal) have been working together with the Department of Computer and Information Sciences at the University of Strathclyde (UK), with the aim of improving the teaching and learning of introductory programming courses. Both institutions belong to the European Consortium of Innovative Universities (ECIU), with a commitment to "developing and implementing new forms of teaching, training, and research; to assuring an innovative culture within their walls; to experimenting with new forms of management and administration; and to sustaining and nurturing internationally-minded staff" (ECIU). Over the past two years, data has been collected through interviews, questionnaires and class observation, to better understand the organization of the different courses and approaches to teaching and learning. Members of academic staff have been actively involved in trying to enhance the students' learning experience through reflection on teaching methods and trying new ideas to aid student success. During this process we have assimilated insights on teaching philosophies, methods and suggestions for course redesign. As an important piece of the "puzzle", students also provided useful feedback on differing aspects of teaching and course organization. The present paper presents a meta-analysis of our findings on the relevance of teaching practices for promoting students' learning. In addition, we discuss the impact that teaching philosophies and course organization may have on best teaching practices
Microcontrollers for Mechanical Engineers: From Assembly Language to Controller Implementation
This paper describes the evolution of a graduate and advanced undergraduate mechanical engineering course on microcontrollers and electromechanical control systems. The course begins with developing an understanding of the architecture of the microcontroller, and low-level programming in assembly language. It then proceeds to working with various functions of the microcontroller, including serial communications, interrupts, analog to digital conversion, and digital to analog conversion. Finally, the students learn how to characterize first and second order systems, and develop and implement their own controllers for a variety of electromechanical systems. The course takes the uncommon approach of teaching assembly language programming to mechanical engineering students, with the students using assembly language programming for approximately half of the course and the remainder using the C programming language. The authors believe that this approach helps students develop a better understanding of the architecture of the microcontroller and low-level routines found in embedded control applications. The course provides a bridge between traditional mechatronics courses that focus on electronics and interfacing, and lab-based control courses that use turnkey data acquisition systems and graphical programming tools such as Simulink or LabVIEW. The course has existed for over two decades, using a variety of microprocessor and microcontroller platforms. After evaluating numerous alternatives, the course was recently updated to use a 32-bit ARM Cortex-M3 microcontroller evaluation board from STMicroelectronics paired with custom interfacing circuitry. This platform was chosen not only for more modern microcontroller technology, but also for the availability of free development tools and very inexpensive evaluation boards. This allows the students to write and test their programs outside of scheduled lab times, along with the ability to cost-effectively utilize microcontrollers in future projects
Cross Teaching Parallelism and Ray Tracing: A Project-based Approach to Teaching Applied Parallel Computing
Massively parallel Graphics Processing Unit (GPU) hardware has become increasingly powerful, available and affordable. Software tools have also advanced to the point that programmers can write general purpose parallel programs that take advantage of the large number of compute cores available in the hardware. With literally hundreds of compute cores available on a single device, program performance can increase by orders of magnitude. We believe that introducing students to the concepts of parallel programming for massively parallel hardware is of increasing importance in an undergraduate computer science curriculum. Furthermore, we believe that students learn best when given projects that reflect real problems in computer science.
This paper describes the experience of integrating two undergraduate computer science courses to enhance student learning in parallel computing concepts. In this cross teaching experience we structured the integration of the courses such that students studying parallel computing worked with students studying advanced rendering for approximately 30% of the quarter long courses. Working in teams on a joint project, both groups of students were able to see the application of parallelization to an existing software project with both the benefits and complications exposed early in the curriculum of both courses. Motivating projects and performance gains are discussed, as well as student survey data on the effectiveness of the learning outcomes. Both performance and survey data indicate a positive gain from the cross teaching experience
Recommended from our members
Integrating Open Source GIS Software in Undergraduate Curriculum, Research, and Outreach - Recent Experiences at Salisbury University
The Department of Geography and Geosciences at Salisbury University has a long tradition of teaching geographic information science. Until recently, most of the courses and research activities focused on commercial software offerings. However, the Department recently integrated Free and Open Source Software for GIS (FOSSG) into its curriculum, research, and outreach. Curriculum changes included introducing students to FOSSG in traditional GIS courses using QGIS, and creating two entirely new courses in Enterprise GIS and GIS Programming using PostGIS, GDAL, and Spatial Lite. Through a competitive National Science Foundation (NSF) Research Experience for Undergraduates grant (REU), students participated in cutting edge research projects in parallel processing with Hadoop and spatial Hadoop for cluster computing, and CUDA for GPGPU calculation on embarrassingly parallel processes for raster data. Finally, undergraduate interns working in the Department\u27s Eastern Shore Regional GIS Cooperative (ESRGC) developed geodashboards using node.js, PostGIS, and Leaflet, while a special topics course developed a GIS based iphone and Android application used by 4,000 participants in the annual Sea Gull Century bike ride using GeoJSON, Leaflet, and javascript. In addition to highlighting the successes of these activities, this paper will discuss the process we used to make the necessary changes in our curriculum, secure the necessary funding for external projects, and the training approach we used to get our computer science students proficient in programming with FOSSG tools
Steps Before Syntax: Helping Novice Programmers Solve Problems using the PCDIT Framework
Novice programmers often struggle with problem solving due to the high cognitive loads they face. Furthermore, many introductory programming courses do not explicitly teach it, assuming that problem solving skills are acquired along the way. In this paper, we present 'PCDIT', a non-linear problem solving framework that provides scaffolding to guide novice programmers through the process of transforming a problem specification into an implemented and tested solution for an imperative programming language. A key distinction of PCDIT is its focus on developing concrete cases for the problem early without actually writing test code: students are instead encouraged to think about the abstract steps from inputs to outputs before mapping anything down to syntax. We reflect on our experience of teaching an introductory programming course using PCDIT, and report the results of a survey that suggests it helped students to break down challenging problems, organise their thoughts, and reach working solutions
- âŠ