Title: WIP: Updating CS1 to a 21st-Century Model of Computing
This work in progress innovative practice paper documents ways in which current introductory computing courses are designed for an earlier generation of computers. We describe our plans for updating these courses for modern systems and programming practices and share details of the development of exemplar courses that will be adoptable by diverse institutions and programs teaching introductory programming courses. more »« less
Morrison, Briana B.; Decker, Adrienne; Margulieux, Lauren E.
(, Proceedings of the twelfth annual International Conference on International Computing Education Research (ICER '16))
null
(Ed.)
A recent study about the effectiveness of subgoal labeling in an introductory computer science programming course both supported previous research and produced some puzzling results. In this study, we replicate the experiment with a different student population to determine if the results are repeatable. We also gave the experimental task to students in a follow-on course to explore if they had indeed mastered the programming concept. We found that the previous puzzling results were repeated. In addition, for the novice programmers, we found a statistically significant difference in performance based on whether the student had previous programming courses in high school. However, this performance difference disappears in a follow-on course after all students have taken an introductory computer science programming course. The results of this study have implications for how quickly students are evaluated for mastery of knowledge and how we group students in introductory programming courses.
Gate-keeping courses provide students with their first and formal exposure to a deep understanding of science. Such courses influence students' decision to pursue STEM education and continue their college experience. Our records indicate that the many STEM students perform poorly or marginally in the introductory required courses and decide to change their major to non-STEM degree programs. One way to address this is using active learning techniques. The objective of this paper is to describe our experiences with the use of few of the active learning techniques in introductory computer programming courses offered in our Computer Science Program. One of these programming courses are required of all computer science majors and other course is usually taken by engineering, technology and science majors. The findings presented in this paper may be used by interested parties involved in STEM curriculum.
Kenneth Andrew Guernsey; Jacob Matthew; Quamar Niyaz; Xiaoli Yang; Ahmad Y Javaid; Sidike Paheding
(, ASEE Annual Conference proceedings)
Nowadays, cyberattack incidents are happening on a daily basis. As a result, the demand for a larger and more challenging workforce is increasing. To handle this demand, academic institutions offer cybersecurity courses and degree programs into their curricula; however, more efforts are needed to address the high demand of the cybersecurity workforce. This work aims to bridge the gap between workforce shortage and the number of qualified graduates to fill the positions. We approach this by introducing cybersecurity concepts at the early stage of undergraduate curricula of computer science and engineering programs. Secure programming is critical as many cybersecurity incidents happen due to software vulnerabilities. However, most UG-level programming courses pay little attention to secure programming practices. As a result, many students graduate with limited knowledge of security vulnerabilities that might plague the developed software. Our goal in this work is to introduce secure programming at introductory level programming courses so that students should be aware of cybersecurity issues and use this security mindset in advanced level courses and projects in their degree programs. To accomplish this goal, we developed intuitive and interactive modules emphasizing secure programming in C++ and Java courses to help students become secure software developers. These modules will be used alongside the coursework to emphasize certain vulnerabilities within the programming environment of a specific language and allow students to learn cybersecurity topics, enforcing a solid foundation and understanding. We developed cybersecurity educational modules for C++ and Java as they are amongst the popular languages and used in introductory programming courses. While designing these modules, we kept in mind that the topics must be relevant to real-world issues in the software industry. We used a variety of resources and benchmarks to ensure the authenticity of our chosen topics, including Common Weakness Enumeration (CWE) and Common Vulnerability and Exposures (CVE). While choosing module topics to develop, we had some restrictions. For example, the topics must be introductory and easy to understand. These modules are geared towards freshman or sophomore-level UG students who have just started programming. The developed security modules have four components: power-point slides, lab description, code template for the lab, and complete solution. The complete solution for each module will be provided to the instructors to check students’ work if they adopt the modules in their courses. The modules developed for a C++ programming course include labs on input validation, integer overflow, random number generation, function call with incorrect argument type, and dangling pointers. In Java, we developed lab modules for input validation, integer overflow, null object reference, random number generator, and data encapsulation.
Watson, S.; Li, L.; Pribesh, S.; Xu, L.
(, The International Conference on Education and New Developments)
Carmo, M.
(Ed.)
To succeed in the 21stcentury, students need to acquire skills that are critical to the workforce such as collaboration, social skills, and technology literacy (World Economic Forum, 2016). Individuals with disabilities (D) must develop the same skills as their peers without disabilities. Unfortunately, college students with disabilities often find computing courses frustrating and are more vulnerable to lower academic self-concept, academic challenges, and disability stigma (Kim & Kutscher, 2021). Although computing disciplines often provide good job opportunities, Students with D who enrolled in computing courses are especially at risk of falling behind and dropping out of introductory programming courses (Richman et al., 2014). To address the problem, we examined the use of pair programming, a collaborative approach to programming, as a pedagogic method to improve students with disabilities’ attitudes toward programming in undergraduate computer courses. There is a need to study effective instructional approaches that can facilitate learning and improve the outcomes of students with D.
Subramanian, Kalpathi; Saule, Erik; Payton, Jamie
(, SIGCSE '20: Proceedings of the 51st ACM Technical Symposium on Computer Science Education)
This workshop provides instructors with a hands-on introduction to BRIDGES, a software infrastructure for programming assignments in early computer science courses, including introductory programming (CS1, CS2), data structures, and algorithm analysis. BRIDGES provides capabilities for creating more engaging programming assignments, including: (1) a simplified API for accessing real-world data sets, including from social networks; scientific, government, and civic organizations; and movie, music, and literature collections; (2) interesting visualizations of the data, (3) an easy to use API that supports creation of games that leverage real-world data, and, (4) algorithm benchmarking. Workshop attendees will engage in hands-on experience with BRIDGES with multiple datasets and will have the opportunity to discuss how BRIDGES can be used in their own courses.
Bunde, David P, Crockett, April R, Gannod, Gerald C, Spacco, Jaime, Thota, Neena, and Weems, Charles C. WIP: Updating CS1 to a 21st-Century Model of Computing. Retrieved from https://par.nsf.gov/biblio/10630285. Web. doi:10.1109/FIE61694.2024.10893534.
Bunde, David P, Crockett, April R, Gannod, Gerald C, Spacco, Jaime, Thota, Neena, & Weems, Charles C. WIP: Updating CS1 to a 21st-Century Model of Computing. Retrieved from https://par.nsf.gov/biblio/10630285. https://doi.org/10.1109/FIE61694.2024.10893534
@article{osti_10630285,
place = {Country unknown/Code not available},
title = {WIP: Updating CS1 to a 21st-Century Model of Computing},
url = {https://par.nsf.gov/biblio/10630285},
DOI = {10.1109/FIE61694.2024.10893534},
abstractNote = {This work in progress innovative practice paper documents ways in which current introductory computing courses are designed for an earlier generation of computers. We describe our plans for updating these courses for modern systems and programming practices and share details of the development of exemplar courses that will be adoptable by diverse institutions and programs teaching introductory programming courses.},
journal = {},
publisher = {IEEE},
author = {Bunde, David P and Crockett, April R and Gannod, Gerald C and Spacco, Jaime and Thota, Neena and Weems, Charles C},
}
Warning: Leaving National Science Foundation Website
You are now leaving the National Science Foundation website to go to a non-government website.
Website:
NSF takes no responsibility for and exercises no control over the views expressed or the accuracy of
the information contained on this site. Also be aware that NSF's privacy policy does not apply to this site.