Understanding Complex Systems: The Need for an Open Source Based Homework Assignment in CS 3140 at UVA; How Open Source Software Used in Software Development Education Affects Students, Professors, and the Communities They Join

Author:
Eftink, Johnathan, School of Engineering and Applied Science, University of Virginia
Advisors:
Wayland, Kent, EN-Engineering and Society, University of Virginia
Vrugtman, Rosanne, EN-Comp Science Dept, University of Virginia
Abstract:

Free and Open Source Software (FOSS) is underutilized within the University of Virginia (UVA) Computer Science curriculum. Students currently use code that is mainly written by their professors and only their professors. While this means that students are exposed to well written code that follows the learning objectives of their classes, the students are never able to see code written outside of academia. This means that students are not able to see how proper coding practices are followed in the professional setting and how proper coding practices are not followed on occasion. Working on FOSS code will allow students to gain professional experience while also providing them with a new avenue for networking and even providing them with higher confidence for when the students join the workforce. My technical project, “Understanding Complex Systems: The Need for an Open Source Based Homework Assignment in CS 3140 at UVA”, answers where and how FOSS will be added to the UVA Computer Science curriculum and a few of the reasons for doing so. Then, to explain why we should use FOSS and to what benefit it will have, I wrote my STS research project: “How Open Source Software Used in Software Development Education Affects Students, Professors, and the Communities they Join.” With these two papers, we can see the benefits behind adding FOSS into the UVA Computer Science curriculum and how it should be done.
My technical project explains how to add a FOSS assignment to the existing “CS 3140” course. This course is normally taken before students have started looking for internships, which means that these students would greatly benefit from working with code bases that are developed professionally. While the students would not develop on an existing FOSS project, the students would instead create a diagram about the structure of the FOSS project. Specifically, this would be through a professor assigned FOSS project in which all students look at the same portion of code and then create a diagram of how each portion of the code interacts with other portions. The students would therefore gain their first bit of experience with how to read and understand large amounts of code. This skill would allow them to onboard quicker and therefore provide a competitive edge for the students when it comes time to look for internships and jobs. Overall, by adding a smaller homework to the CS 3140 curriculum, students are able work with code not developed by a UVA professor and therefore see new code-writing styles, but also students are able to work on their reading and understanding code skills which would assist them in their internship and job search.
My STS research helps answer the question of how FOSS assignments affect students and how FOSS groups are affected when a student joins. To explore this topic, I used peer reviewed research discussing both FOSS in education and different sociotechnical concepts like communities of practice. The FOSS assignments in this research are between semester long and year long courses in which students contribute to the code itself. A major challenge these students must deal with is joining a brand new community of practice. This essentially means that the students must learn a project specific work culture and how they fit into that culture. The group then evaluates whether a student is worth having as part of their group. Understanding the challenges students will face when joining a professional community of practice, professors are able to better prepare students. This preparation would include helping students navigate social and technical hurdles. Overall, by knowing what students must do to join a FOSS group, professors will be able to better equip students for any frustrations that might arise throughout their course and therefore lead to better course outcomes.
I believe that this research is beneficial in trying to understand how UVA can introduce a homework assignment based on FOSS. While the STS research is not able to speak specifically on the FOSS assignment that I developed, it still helps fill the gap in research when it comes to understanding what students must undergo when joining a FOSS group. If someone is to continue with this research, I believe it should be to find out more about how students view the community of practice they join. There is no research on this currently and I believe that by researching the students’ understanding of the community of practice, we will be able to better see the benefits of FOSS. Overall, this research was fun to work on and I believe that this project could be useful as a first small step in understanding how students interact with professional communities of practice within a FOSS context.

Degree:
BS (Bachelor of Science)
Keywords:
FOSS, Software Development Education, Community of Practice
Language:
English
Rights:
All rights reserved (no additional license for public reuse)
Issued Date:
2025/05/13