Filtering by
- All Subjects: Machine Learning
- All Subjects: Education
- All Subjects: Programming Languages
- Member of: Theses and Dissertations
- Status: Published
To facilitate rapid, correct, efficient, and intuitive development of graph based solutions we propose a new programming language construct - the search statement. Given a supra-root node, a procedure which determines the children of a given parent node, and optional definitions of the fail-fast acceptance or rejection of a solution, the search statement can conduct a search over any graph or network. Structurally, this statement is modelled after the common switch statement and is put into a largely imperative/procedural context to allow for immediate and intuitive development by most programmers. The Go programming language has been used as a foundation and proof-of-concept of the search statement. A Go compiler is provided which implements this construct.
This work contributes to the construction of a tutoring companion designed to provide this feedback to students. It aims to bridge the gap between the messages the compiler delivers, and the support required for a novice student to understand the problem and fix their code. Particularly, it provides support for students learning about recursion in a beginning university Java programming course. Besides also providing affective support, a tutoring companion could be more effective when it is embedded into the environment that the student is already using, instead of an additional tool for the student to learn. The proposed Tutoring Companion is embedded into the Eclipse Integrated Development Environment (IDE).
This thesis focuses on the reasoning model for the Tutoring Companion and is developed using the techniques of a neural network. While a student uses the IDE, the Tutoring Companion collects 16 data points, including the presence of certain key words, cyclomatic complexity, and error messages from the compiler, every time it detects an event, such as a run attempt, debug attempt, or a request for help, in the IDE. This data is used as inputs to the neural network. The neural network produces a correlating single output code for the feedback to be provided to the student, which is displayed in the IDE.
The effectiveness of the approach is examined among 38 Computer Science students who solve a programming assignment while the Tutoring Companion assists them. Data is collected from these interactions, including all inputs and outputs for the neural network, and students are surveyed regarding their experience. Results suggest that students feel supported while working with the Companion and promising potential for using a neural network with an embedded companion in the future. Challenges in developing an embedded companion are discussed, as well as opportunities for future work.
In this thesis, several different methods for detecting and removing satellite streaks from astronomic images were evaluated and compared with a new machine learning based approach. Simulated data was generated with a variety of conditions, and the performance of each method was evaluated both quantitatively, using Mean Absolute Error (MAE) against a ground truth detection mask and processing throughput of the method, as well as qualitatively, examining the situations in which each model performs well and poorly. Detection methods from existing systems Pyradon and ASTRiDE were implemented and tested. A machine learning (ML) image segmentation model was trained on simulated data and used to detect streaks in test data. The ML model performed favorably relative to the traditional methods tested, and demonstrated superior robustness in general. However, the model also exhibited some unpredictable behavior in certain scenarios which should be considered. This demonstrated that machine learning is a viable tool for the detection of satellite streaks in astronomic images, however special care must be taken to prevent and to minimize the effects of unpredictable behavior in such models.