Microlabs in Computer Science ICER 2015 Workshop Barry L Kurtz Ahmad Esmaili Appalachian State Stony Brook University kurtzbl@appstate.edu esmaili@cs.stonybrook.edu
Introductions Let’s go around the room so everyone can introduce him/herself. Please tell us: Your name Your university or school What courses you frequently teach
Workshop Agenda Introduction to Microlabs Share your experience of completing both logical microlabs and code magnet microlabs Introduction to the Web Automated Grading System (WAGS) After workshop activities and our Honorarium Program Design your own code magnet method and test program Implement your own code magnet lab
Support for Microlab Development The development of microlabs has been supported by several NSF grants: Innovative Active Learning Using Tablets (DUE 1323178) Transforming Computer Science Education with Microlabs (DUE 1122752) Developing Software and Methodologies for eBook/Browsers to Enhance Learning (DUE 1044572)
Types of Microlabs Logical Microlabs Code Magnet Microlabs Students solve a conceptual problem by arranging icons on a screen to represent a solution Typically last 5-10 minutes, can be done in lecture Code Magnet Microlabs Students construct a method by arranging code magnets; some magnets may not be used Advanced Code Magnet Microlabs Students must first create their own magnets and then arrange them to construct a method More challenging, best done outside of lecture Microlabs can be completed on desktops, laptops, tablets, and mobile devices
Characteristics of a Logical Microlab Students solve a conceptual problem by arranging icons on a screen, such as building a binary tree Typically there are 3 or 4 variations, each with different data There is no coding involved in solutions Students can attempt the same lab multiple times using guided feedback to discover a solution If not completed during class, students are given additional time to complete outside of class They are the most popular type of microlab
Logical Microlab Demonstration Students must arrange an array of integers into negative numbers followed by positive numbers The students must must move a left index to the right and a right index to the left making exchanges as required Only one pass through the data is allowed There are four variations of the problem Watch as James Corsi solves this problem
Characteristics of a Code Magnet Lab Students construct a method by arranging given code magnets inside the method Magnets can be nested inside control structures There may be extra magnets not used, such as a <= comparison versus a < comparison The student code is compiled and subjected to unit testing; feedback guides the student toward a correct solution If not completed during class, students are given additional time to complete outside of class
Code Magnet Demonstration This code magnet lab solves the same problem as the logical lab already demonstrated: partition an array of integers into negatives then positives In this first version, all the code magnets are used Unit tests provide feedback to guide the student towards a correct solution Watch as Tim Ransom solves this problem
The Same Lab with Alternative Magnets All the magnets in the previous lab were used It can be more challenging if some alternative magnets are present making the student select the correct magnet
Characteristics of Advanced Magnets Students first build some of the needed magnets Magnet builders may exist for while, if, for control structures and assignment and return statements Some magnets may be given as standard magnets Both types of magnets are then used to build the desired method or methods Code magnet labs with advanced magnets are more challenging than standard magnets Typically they would be completed outside of lecture The testing is the same as standard magnets Submissions can be repeated until correct
Advanced Code Magnet Demonstration This advanced magnet lab solves the same problem as the standard magnet lab already demonstrated: partition an array of integers into negatives then positives Some magnets can be built that are not needed in the solution The developer specifies the number of magnets for each type; unused magnets can be discarded Watch as Dakota Murray solves this problem
Experiencing Code Magnet Labs Login at www.cs.appstate.edu/wags (use guest) Try using logical microlabs Try using code magnet labs with standard magnets and with advanced magnets Report on your experiences What was the level of challenge? How long would it take a student to complete the lab? Could there be a related programming assignment? How could long term retention be measured on an exam?