Supporting Project-Based Learning in Undergraduate Software Engineering Courses: This project aims to serve the national interest by increasing the use of evidence-based teaching practices in undergraduate computer science curricula. One such practice is project-based learning, which gives students opportunities to learn as they work on authentic real-world problems
Project-based learning, and other active learning practices, have been shown to increase student motivation and engagement, raise exam performance, and reduce failure rates. A major barrier to implementing project-based learning in the classroom is that instructors must provide students with the support they need to be successful learners as they complete project tasks. Without that support, students can get bogged down performing unessential tasks instead of learning the targeted concepts and skills. This project aims to increase the use of project-based learning in software engineering courses. To do so, the project will design, develop, and evaluate a reference software engineering course with a repository of twelve ready-to-use projects and associated active learning activities. These resources will enable instructors to easily assign project tasks for students to complete at home. It is anticipated that these resources will increase the capacity of instructors to effectively use project-based learning in their courses. In addition, project-based learning can help students prepare for industry careers by providing learning experiences that are like the work that software engineers do.
The overarching goal of this project is to increase student learning by encouraging and facilitating authentic computer science learning experiences. Data for formative evaluation of the developed project-based learning resources will be gathered through advisory board reviews, undergraduate beta testing, and in-house classroom trials. Field tests at multiple volunteer sites will assess the feasibility of implementing the project-based learning resources in college or university settings. Finally, a pilot study will be performed to assess the promise of the developed materials to improve student learning outcomes. The NSF IUSE: EHR Program supports research and development projects to improve the effectiveness of STEM education for all students. This project is in the Engaged Student Learning track, through which the IUSE program supports the creation, exploration, and implementation of promising practices and tools.
In this project, students will develop a secure web service to check if an email and password pair appear in a breached database. The project has two parts: loading hashed email and password pairs into a database, and creating a Flask-based website for users to verify their credentials securely. This project focuses on data security, cryptographic hashing, secure database management, and web development, providing students with practical experience in cybersecurity and ethical data handling.
This project is the design and implementation of a distributed TicTacToe game (DT3), that uses Socket programming to implement the common Client-Server model. The game allows players to register on an Android device, log in to their account, pair with other online players, and play the game. All game interactions between players go through the socket server. The socket server uses an embedded, lightweight database management system SQLite to track users and gaming information
In this project, students will use GPU programming to implement parallel processing to efficiently speed up heavy-computing tasks when manipulating millions of pixels.
This project focuses on software maintenance of an open-source software called. Mango is a software platform for M2M communication. It is used for building custom web-based user interfaces for monitoring and controlling automation systems. The platform supports various protocols for integrating different systems and devices.
Moodle is a free and open-source learning management system. Moodle is used for blended learning, distance education, flipped classroom and other online learning projects in schools, universities, workplaces and other sectors.
RSA (Rivest–Shamir–Adleman) is a public-key cryptosystem, one of the oldest widely used for secure data transmission. In this project, students will implement the RSA algorithm through integers and strings. And then they will debug a faulty RSA implementation and explain the errors fixed
In this project, students will apply their Python and Web programming knowledge to a Soteria web project. Soteria project demonstrates keystroke dynamics as an alternative Muli-Factor Authentication (MFA) other than the popular OTP or push notification MFAs
In this project, students will design and implement a web-based university management system. The system will make use of and extend an existing university database. The system will utilize the Django web framework to connect to MySQL and to hold together all components of the system including loading data from the database, representing the data as Python objects, and dynamically creating a web page for displaying the data.
In this project, students will build extensions for the VS-Code code editor. VS Code is a redefined, lightweight, open-source code editor optimized for building and debugging modern web and cloud applications. It offers advanced features like IntelliSense for enhanced syntax highlighting and autocomplete, built-in Git functionality, and extensive extensibility through VS Code Extensions
A web server is software and hardware that uses protocols like HTTP to process and respond to requests from a client web browser over the Internet. On the other hand, a web browser is a software application that acts as a client that accesses the data of a particular website hosted by the web server and then displays the data in the proper format at the client end. Implementing something like the HTTP protocol or a real server/browser is obviously beyond the scope of this project. Instead, students will build only a simplified prototype that shows the core ideas of the server-client (browser) model via socket programming in C/C++.
Xfig is a free and open-source vector graphics editor that runs under the X Window System on most UNIX-compatible platforms. Students will participate in managing and executing the process of developing significant new features for Xfig, starting from the conceptual idea stage through to the implementation stage.
[3] Suleiman, Ahmad D. and Hou, Daqing and Liu, Yu and DeWaters, Jan and Small, Mary M and de Souza, Juliana G and Shepherd, David "Mapping Learning Objectives of Project-Based Undergraduate Software Engineering Courses to CC2020 Competency Model" , 2023 https://doi.org/10.1109/FIE58773.2023.10342967
[2] Hou, Daqing and DeWaters, Jan and Small, Mary Margaret and Liu, Yu and Shepherd, David "The 2023 DREE Workshop on Designing and Running Project-Based Courses in Software Engineering Education" , 2023 https://doi.org/10.1109/FIE58773.2023.10342986
[1] De Souza, Juliana Goncalves and Flavell, Mikaila and Suleiman, Ahmad Daudu and Shepherd, David and DeWaters, Jan and Small, Mary Margaret and Liu, Yu and Hou, Daqing "The Importance of Project-Scale Scaffolding for Retention and Experience in Computing Courses" , 2023 https://doi.org/10.1109/FIE58773.2023.10343225