Anvik, John
Permanent URI for this collection
Browse
Recent Submissions
Now showing 1 - 5 of 5
- ItemProgram wars v.2.0 : improving a game-based learning approach for teaching fundamental programming concepts(ACM, 2024) Tareque, Md. Hasan; Deutekom, Steven; Anvik, John; Bashir, MaimoonaGame-based learning (GBL) provides an engaging way to introduce those with limited programming experience to fundamental pro- gramming concepts, Program Wars uses a GBL approach to teach fundamental programming concepts using cards that represent in- structions, loops, variables and methods to create a programming language-independent program. This paper introduces Program Wars v.2.0, which improves the prior implementation in several ways. These changes include the approach to teaching methods, introducing players to the concepts of searching and sorting algorithms, and revisions to the gameplay and UI to improve engagement. A user study of Program Wars v.2.0 was conducted and shows that Program Wars v.2.0 is more effective than Program Wars v.1.0 in teaching the concepts of variables, loops and methods. Specifically, 60% of participants showed knowledge improvements of variables, 56% showed knowledge improvements for loops, and 44% showed knowledge improvements for methods. Qualitative results show that Program Wars ’s game-based approach results in an engaging experience for learners.
- ItemYou hacked my program? Teaching cybersecurity using game-based learning(ACM, 2024) Tareque, Md. Hasan; Deutekom, Steven; Anvik, John; Bashir, MaimoonaAs cyberthreats become more commonplace, the teaching of cyber- security concepts at an introductory level is becoming increasingly important. However, teaching this subject in an engaging manner is challenging. This work investigates the use of a game-based learn- ing approach to teaching cybersecurity concepts in the form of a card game called Program Wars. Within the game, players use cards to create a representation of a computer program while launching cyberattacks at their opponents and defending their own program. As the initial version of the game presented cybersecurity concepts at only a high-level, Program Wars v.2.0 was created to introduce players to eight common cyberattacks and the tools used to defend against them. The results of a user study show that after playing Program Wars v.2.0 a player’s knowledge of cybersecurity concepts is improved, showing that our game-based learning approach pro- vides an effective means for introducing cybersecurity concepts to those with little or no prior knowledge. As Program Wars is a freely available web-based game, it can easily be integrated into classes to improve a student’s knowledge of cybersecurity concepts.
- ItemProgram wars: a card game for learning programming and cybersecurity concepts(ACM, 2019) Anvik, John; Cote, Vincent; Riehl, JaceAlthough there are many computer science learning games with the goal of teaching programming, such games typically require the person to either learn an existing programming language or the game's own specialized language. This can be intimidating, confusing or frustrating for an individual when they cannot get their "program" to work correctly (e.g. syntax error, infinite loop). Additionally, such games commonly use a puzzle-solving approach that does not appeal to some demographics. This paper presents a programming-language-independent approach to teaching fundamental programming and cybersecurity concepts using simple vocabulary. This approach also uses the familiar activity of playing cards against opponents to create a more dynamic and engaging learning experience. The approach is demonstrated by a web-based game called Program Wars. Results from a user study show that players are able to effectively connect game concepts to actual programming language structures; however, whether players' comprehension of computer programming is improved is unclear.
- ItemProteome Analyst: custom predictions with explanations in a web-based tool for high-throughput proteome annotations(Oxford University Press, 2004) Szafron, Duane; Lu, Paul; Greiner, Russell; Wishart, David S.; Poulin, Brett; Eisner, Roman; Lu, Zhiyong; Anvik, John; Macdonell, Cam; Fyshe, Alona; Meeuwis, DavidProteome Analyst (PA) (http://www.cs.ualberta.ca/~bioinfo/PA/) is a publicly available, high-throughput, web-based system for predicting various properties of each protein in an entire proteome. Using machine-learned classifiers, PA can predict, for example, the GeneQuiz general function and Gene Ontology (GO) molecular function of a protein. In addition, PA is currently the most accurate and most comprehensive system for predicting subcellular localization, the location within a cell where a protein performs its main function. Two other capabilities of PA are notable. First, PA can create a custom classifier to predict a new property, without requiring any programming, based on labeled training data (i.e. a set of examples, each with the correct classification label) provided by a user. PA has been used to create custom classifiers for potassium-ion channel proteins and other general function ontologies. Second, PA provides a sophisticated explanation feature that shows why one prediction is chosen over another. The PA system produces a Naïve Bayes classifier, which is amenable to a graphical and interactive approach to explanations for its predictions; transparent predictions increase the user's confidence in, and understanding of, PA.
- ItemEvaluating an assistant for creating bug report assignment recommenders(2016) Anvik, JohnSoftware development projects receive many change requests each day and each report must be examined to decide how the request will be handled by the project. One decision that is frequently made is to which software developer to assign the change request. Efforts have been made toward semi automating this decision,with most approaches using machine learning algorithms. However, using machine learning to create an assignment recommender is a complex process that must be tailored to each individual software development project. The Creation Assistant for Easy Assignment (CASEA) tool leverages a project member’s knowledge for creating an assignment recommender. This paper presents the results of a user study using CASEA. The user study shows that users with limited project knowledge can quickly create accurate bug report assignment recommenders.