Using robots in introductory computer science classes has recently become a popular method of increasing student interest in computer science. This paper describes the development of a new curriculum for a CS 2 course, Imperative Problem Solving and Data Structures, based upon Scribbler 2 robots with standard C. The curriculum contains eight distinct modules with a primary topic theme, readings, labs, and project at the end. Each module resulted from collaboration among former CS 2 students and a faculty member, utilizing an iterative process with revisions. Each lab includes a survey to obtain student feedback that will allow the course to evolve and better fit the needs of future CS 2 students. All materials discussed here are available online for use by others.
Extracting a set of multiple order statistics from a huge data set provides important information about the distribution of the values in the full set of data. This article introduces an algorithm, bucketMultiSelect, for simultaneously selecting multiple order statistics with a graphics processing unit (GPU). Typically, when a large set of order statistics is desired the vector is sorted. When the sorted version of the vector is not needed, bucketMultiSelect significantly reduces computation time by eliminating a large portion of the unnecessary operations involved in sorting. For large vectors, bucketMultiSelect returns thousands of order statistics in less time than sorting the vector while typically using less memory. For vectors containing 2 28 values of type double, bucketMultiSelect selects the 101 percentile order statistics in less than 200ms and is more than 10× faster than sorting the vector with a GPU optimized radix sort.
Traditionally, faculty plan and implement courses with students as the target audience, based upon educational goals and objectives. With today's interest in active learning, faculty try to anticipate activities that will resonate with students. This paper presents a different model that utilizes faculty-student collaboration for course development -in this case, creating an introductory Cbased course on imperative problem solving with robots as an application theme. Basing development on course goals and objectives, a faculty member works with a development team of undergraduate students to structure course content, prepare materials (e.g., readings, laboratory exercises, projects), and test each element of the course. In subsequent semesters, students taking the course provide feedback on all materials, the development team updates materials, and the refinement process iterates. The resulting course meets goals and objectives, provides wonderful motivation, and highlights creativity and intellectual challenge within computer science as well as syntax, semantics, and core technical skills. This paper builds upon a previous report (SIGCSE 2013 Proceedings, pp. 27-32), by highlighting the course development process and providing data that assess course effectiveness. The resulting course has been identified as an "exemplar" by CS Curricula 2013 (pp. 454-455, 458-459), providing a strong second course in a three-course, multi-paradigm introductory sequence that emphasizes a lab-based approach with collaborative learning.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.