Projects
A team project is an essential way to practice software engineering skills in a real-world setting. Over the course of the semester, each project team will develop the following artifacts for the project:
- a project management plan,
- requirements,
- an architectural design,
- acceptance tests, and
- a security risk assessment.
In addition, each team must implement the required functionality across three month-long sprints.
Project Descriptions
The following synopses provide an overview of the various projects.
Comp Sci 110 IDE
The Department of Computer and Cyber Sciences is considering changes to the Comp Sci 110: Introduction to Computing and Cyber Operations curriculum to include coverage of a well-known programming language such as Python. Such a transition would be eased by providing students with a light-weight integrated development environment (IDE) that exposes students to a minimum of complexity. For example, capabilities that are not required in Comp Sci 110 (e.g., automated code refactoring) may be omitted in this IDE.
This project will build a prototype cross-platform IDE. The user interface (UI) must support common file manipulation capabilities (e.g., create, open, and save files) and provide an intuitive experience for novice programmers. The IDE must also support the compilation, execution, and debugging (e.g., single-stepping of statements) of source code while ensuring the integrity of the underlying platform (e.g., an infinite loop should not force the user to restart the computer to recover).
Customer POC: Dr. Weingart
Comp Sci 110 Test Server
Automated testing is an efficient way to receive feedback when developing source code. For example, Comp Sci 110: Introduction to Computing and Cyber Operations uses the “test against server” to grade assignments automatically. Unfortunately, automated testing inevitably suffers from resource limitations: a single machine may be swamped when running multiple test suites in parallel, but serializing the test runs may preclude timely feedback. Cloud computing provides an attractive alternative insofar as resources appear to be infinite, scaling automatically in response to demand.
This project will modify the existing Comp Sci 110 test server implementation to facilitate its use in a cloud computing environment. More specifically, the existing test server must be containerized (or otherwise virtualized) to support automated deployment and configuration with no manual interaction. A resource manager will monitor the instances (that is, copies of the test server that are running independently), adding instances when demand increases (e.g., immediately prior to an assignment deadline) and removing instances when demand decreases. The prototype system should provide a consistent response time regardless of the number of users accessing it.
Customer POC: Capt. Masters
Course Assessment using Data Exploration of Text (CADET)
Student feedback, typically through the form of course evaluations, provide insight into the performance of instructors and the quality of courses. Although course evaluations are critically reviewed, few tools support longitudinal analysis of instructors and courses across multiple semesters. Sentiment analysis supports rapid triage of feedback to identify individuals’ perceptions. For example, a common sentiment analysis task is identifying comments as positive, negative, or neutral; this task can also be extended to identifying emotions such as happy, angry, or disgusted. Research research (Rani and Kumar, 2017) indicates that sentiment analysis can be used to improve teaching and learning.
Course Assessment using Data Exploration of Text (CADET) is an open source tool that leverages sentiment analysis and other natural language processing (NLP) techniques to evaluate the long-term quality of these programs. Although an existing prototype exists, it lacks a clean separation between the user interface and computationally-intensive NLP tools. This code should be refactored to support the development of a cross-platform user interface (UI) that supports uploading a file containing comments, displaying topics across comments, and highlighting sentiment extracted from the comments.
Customer POC: Dr. Coffman
Collaborative Review Tool
Many types of documents require collaborative editing and review. Proprietary file formats and tools (e.g., Microsoft Office documents) make reviewing such documents difficult: enabling “track changes” and emailing documents among reviewers has a myriad of problems, not the least of which are the relative inability to merge changes (or comments) from multiple reviewers and guaranteeing that required changes have, in fact, been made. Software engineers have similar problems when reviewing code contributions to a project, and many tools have been developed to combat the aforementioned issues. An alternative to the prior workflow is a tool that seamlessly converts documents into the plain text format required to use the existing software engineering tools effectively and building a review workflow around existing software engineering tools.
This project will develop a prototype system that supports the previously-described workflow. In particular, the system should allow users to upload a document, identify reviewers who must approve it, facilitate discussion through comments on the document’s content (e.g., identifying a sentence with a typographical mistake), and visualize changes to the document’s content across revisions.
Customer POC: Dr. Coffman
Participation in Group Projects
Placing your name on a deliverable signifies that you have contributed significantly to its intellectual content and to its completion. Including your name when you have not satisfied these criteria will be considered to be a violation of the assignment’s Help Policy. It is expected that each student can provide documentation regarding their contribution(s) to each assignment if requested to do so.
Note that enforcement depends on your peers (i.e., team members). If certain individuals are not participating significantly, the others should discuss it with them to seek resolution and, should it prove if necessary, schedule a meeting with the instructor to address the concern. The prior documentation regarding individuals’ contributions will be consulted in such cases.