Kyle Harms
Email: <kyle.harms@cornell.edu>
The client is a lecturer in Information Science at Cornell who teaches INFO/CS 1300 and INFO/CS 2300. The work done by this project will be used to help the students in these courses.
Daniel Hirsch, <djh329@cornell.edu>, is the student contact for this project. There is a full team with eight members.
Atom is an open-source text editor built by GitHub. One of the primary goals of Atom is to be hackable, yet approachable. To achieve this goal, its creators have written Atom as a web app using HTML, CSS, and JavaScript. The editor itself runs in Electron, an open-source version of the Chrome web browser (Chromium) with baked in Node.js integration.
The hackable nature of Atom makes it a good choice for helping students learn programming. New programmers are often extremely overwhelmed when having to learn programming in complex integrated development environments (IDEs), like Eclipse. However, plain text editors frequently do not offer sufficient programming assistance to appropriately support new programmers either. Atom fits between these two extremes due to its hackable core. Educators can hack Atom to customize it to their students' exact learning needs.
The goal of this project, is to extend Atom to support students learning to program. Many of the existing feature requests for Atom ( https://github.com/atom/atom/labels/enhancement) would support this goal. For this project, the student team would develop some of these feature requests and also develop some custom classroom support. The developed feature requests will be submitted up stream so that other Atom users can benefit from the students work. The custom classroom support will also be made publicly available as an Atom package so other educators can also benefit the from the student team's work.
These goals are open to discussion, but at the moment this is the likely direction that the client sees for this project.
The first goal, is the primary goal of this project. This feature request is the most popular request for Atom since 2015. It is a challenging problem to solve and will likely consume the majority of the effort on this project. This portion may require some C or C++ development.