the importance of annotation: using published code to learn for loops and syntax.
Summary
In this activity, students used a published EEG analysis algorithm in conjunction with Mathwork's Matlab Onramp to learn basic matlab syntax and functions and to understand how for loops can be used to perform functions on and compare seizure detection runs across multiple EEG files. This was a part of a semester-long course-based undergraduate research experience (CURE).
Learning Goals
Students should learn
1. basic data structures in matlab
2. introductory syntax and functions in matlab
3. how to effectively use the matlab help functions
4. the use and power of the online matlab community and documentation
5. the basic structure and implementation of for loops.
Students in this CURE also learned basic and seizure-related EEG physiology, the purpose and power of annotation in code, oral presentation, critical thinking, data cleaning, and data analysis.
Context for Use
This was used in a upper-division college research course, where a small team of junior and senior students were working together to establish a research program for future students. This project extended over a semester, while students were working in small groups with the instructor in a 4-hour-per-week course. The course was taught in a Biology department; 12 of the 14 students had no prior programming experience, and the remaining students had Python and C++ experience, but no matlab experience. This was a very specific activity to this course, but the approach could be adapted to other CUREs.
Description and Teaching Materials
The teaching materials for this course included published code from my dissertation research, https://pubmed.ncbi.nlm.nih.gov/23514826/. At the start of the course, students read the paper and facilitated a journal club-style discussion on the paper. From the paper, they built a map of the EEG analysis algorithm, breaking the process down into individual computational modules. All students completed the matlab onramp activity through Mathworks to understand basic data structures and syntax for matlab. After the first two weeks of class, the students split into four groups, where two groups continued working on code and the other two groups worked on finding new open-source EEG databases and building a resource library for EEG analysis and interpretation.
The groups working on the code were tasked with evaluating and understanding the code line-by-line and they added copious annotations reflecting their evaluation. They worked in groups of 3, and we had a highly interactive model for reviewing their progress, much like would happen in a standard lab setting. They learned the power of the online Matlab support community through this and discovered how to use the Matlab File Exchange. The code includes a number of for loops, and they used the sample code to understand how for loops work.
Another group of students found an online repository of EEG files (iEEG.org). This repository has a matlab interface, but it isn't exactly user/beginnner friendly. The repository provides code for interacting with and downloading EEG files, and this group had to parse and trouble-shoot the implementation of the code. Like the group working on the published EEG algorithm, this group used the online support community and documentation to build a script tailored to our needs that the algoriithm group could then use to analyze the files.
At the end of the course, the whole class presented an hour-long works-in-progress overview of the research experience as a part of the college-wide research symposium. Together, they published a library guide with important references, resources, and tutorials for future students working on this project in my research lab. Finally, this experience was also published at Bergstrom RA, 2018. A new model of civic engagement: Translational research at the undergraduate level. Science Education & Civic Engagement: An International Journal 10(1):14-20. Open access: http://new.seceij.net/articletype/winter-2018-from-the-editors/.
Teaching Notes and Tips
This was an extremely time-intensive experience. I spent a lot of one-on-one time with students to help them work through the initial stages of the project, and the learning curve was steep for the majority of my students. I think it helped me to understand how important sample code is for students to work with in future expeirences. I also appreciated the pre-mapping based on the paper and the in-depth annotation process as a readout of student understanding of the algorithm process and format.
Assessment
Assessment of coding skills was minimal. Other objectives are described in Bergstrom RA, 2018. A new model of civic engagement: Translational research at the undergraduate level. Science Education & Civic Engagement: An International Journal 10(1):14-20. Open access: http://new.seceij.net/articletype/winter-2018-from-the-editors/
References and Resources
Bergstrom RA, 2018. A new model of civic engagement: Translational research at the undergraduate level. Science Education & Civic Engagement: An International Journal 10(1):14-20. Open access: http://new.seceij.net/articletype/winter-2018-from-the-editors/