Seminars & Colloquia

John Majikes

UNC - Chapel Hill

"Operant Condition in Teaching 'Active, Positive Reinforcement Teaching of Python NumPy Multidimensional Arrays' "

Monday February 21, 2022 09:30 AM
Location: 3211, EB2 NCSU Centennial Campus
Zoom Meeting Info
(Visitor parking instructions)


Abstract: Dr. John Majikes has had over 35 years of professional software development experience, 6 years high school FIRST Robotics experience, and 6+ years undergraduate level teaching experience. John has been very active in diversity, equity, and inclusion from being on the Dean’s advisory panel, Equity In Teaching Institute, Pearl Hacks advisor, and university teaching awards committee.


Late in life, John earned his PhD using computers to train dogs using operant conditioning and positive reinforcement. John has combined his development experience with his research experience to create several systems for teaching that are all browser-based systems that provide students with positive feedback. The three systems integrate database, algorithm pseudocode, and Python compilers for different classes. The teaching demonstration will use the Jupyter notebook Python system. All of these systems provide positive feedback and allow for active learning.


As an assistant professor with class sizes of 300+ students, John had to develop a system to facilitate active learning and critical thinking in a world of larger and larger classrooms. The Python system allows students to actively code along in class. Positive feedback is given for correct answers, and helpful hints for incorrect answers. This conditioning is more than positive feedback praise a student might receive from an instructor. The system provides for lectures and worksheets that students can attempt in class or at home. The system is somewhat automated in that lecture notes and worksheets take an hour or two to produce. This allows for a focus on backward design, standard presentation, and time set aside to teach by wandering.


For those familiar with UC Berkeley’s Otter-grader, this system is similar except that it is a complete development, delivery, and grading system. Additionally, Otter-grader flags incorrect answers with assert callback traces which new programmers find harsh and confusing. Additionally, the algorithm and database system incorporate anti-cheating, steganography that was demonstrated at the UNC Systems Quality Matters Council Summit 2021.


Besides the active teaching aspect, the systems provide a wealth of research data that will not be covered in this talk. Several students are using the data from these systems for different research papers. These include anticipating the length of time a student will take to complete a given assignment given their previous history and the history of other students. System data has been used to determine if students are guessing at the questions or if they are getting the correct answer using deliberate thought. Lastly the system can potentially provide unlimited number of slightly different exams.


The demonstration will be teaching NumPy multidimensional arrays to non-computer science undergraduates. The target audience is biology, psychology, math, and physics undergraduates who may go on to a data science degree. If you have Anaconda Jupyter’s software installed on your workstation or would like to download Anaconda, you will be provided with a zip file to actively follow along with the class.

Short Bio: I have 35+ years of software engineering experience. Late in life after raising our family, I decided to pursue my PhD. While working full time, I earned my PhD from NC State and walked at graduation with my son who also earned his PhD in engineering. I now teach various large courses from introductory Python, database management, and algorithm analysis. I am active in many initiatives to promote women and minorities in computer science. These initiatives include mock job interviews, undergraduate advising, equity in teaching, Pearl Hacks, DEI committee, and diversity advisory committee to the dean.

Although I teach large courses, I believe in active learning, backward designed, hands-on classes. To achieve this goal, I have developed multiple online, browser-based systems that provide positive reinforcement feedback to students. For example, in my database class a student is given a prompt with a text area that when coded correctly, highlights green. In algorithm analysis class, my pseudocode compiler analyzes a correct program and highlights green color. I will be demonstrating my Python system that reforces for correct variables, objects, functions, and graphs.

Host: Sarah Heckman, CSC

Back to Seminar Listings
Back to Colloquia Home Page