Stephen MacNeil

GAANN Research Fellow

I'm a Ph.D. student at the University of North Carolina at Charlotte. My research focuses on applying computational methods to solve problems in the area of education. I am advised by Dr. Celine Latulipe.

I also attended Purdue University, receiving a BS from the department of Electrical and Computer Engineering. While at Purdue I was advised by Dr. Niklas Elmqvist.




Visualization Mosaics for Multivariate Visual Exploration
S. MacNeil, N. Elmqvist
Computer Graphics Forum, 32: 38–50. doi: 10.1111/cgf.12013


Exploring Lightweight Teams in a Distributed Learning Environment
S. MacNeil, C. Latulipe A. Yadav
In Proceedings of the 47th ACM technical symposium on Computer science education (SIGCSE ’16)

Learning in Distributed Low-Stakes Teams
S. MacNeil, C. Latulipe A. Yadav
ICER '15 Proceedings of the eleventh annual International Conference on International Computing Education Research

Workshop / Poster

Because, fun!



Education is something that should be facilitated by instructors not enforced by instructors.


Although active learning and constructivist learning philosophies are gaining in popularity, they were once much more popular than current mainstream didactic lecture-based teaching. Experiential learning, communities of practice, and peer learning are relics from a time when apprenticeships were the standard form of education. People learned by doing under the supervision of a master craftsman. Furthermore, learning was scaffolded - the apprentice would do the easy menial tasks until they proved their competence and moved on to more complicated tasks.

After the industrial revolution, this shifted and education was something that was enforced and regulated.Students sat quietly and consumed information delivered by an instructor with an intimate knowledge of the material. This approach scaled effectively for ten to thirty students which is one of the reasons that it was so popular. This model was extremely scalable for the time, but at the cost of critical thinking and the development of meta-cognitive skills.

In a modern educational landscape consisting of millions of students globally distributed this model is less scalable. These students are preparing for careers that will change multiple times over the course of a few decades. As a result, it is now more important than ever to teach students to be their own teachers and to allow them to teach each other. Teachers should now fulfill a new role as facilitators. By guiding students and scaffolding educational experiences it is possible to create scalable learning for this new massive and diverse group of learners.

Instructor of Record

ITCS 1610/3610 STARS Leadership Course

Service learning class taught as a startup incubtor. Each team was expected to develop a product that addressed a problem of societal relevance. Students were from Psychology, CS, and Management. Material included topics from psychology, marketing, management theory, history, and design.

Spring 2016, UNC at Charlotte.

Teaching Assistant

ITIS 2214 Data-structures and Algorithms

Supervised Lab Assistant. Two instructors team-teach the course. I co-design peer-instruction questions, verify that lab activites are correct before class, and guide students during peer-instruction and lab activities.

Fall 2016, UNC at Charlotte.

ITIS 1213 Intro to Media Programming II

Helped create formative and summative materials. Responsible for co-designing peer-instruction activities while considering their bloom taxonomy categorizations. Supervised online peer-instruction activities and held office hours on G+.

Spring 2015, UNC at Charlotte.

ITCS 1213 Introduction to Programming II

Unsupervised lab instructor. Guided 3 sections of 30 students through object-oriented programming labs. The lab reinforced concepts learned in class through problem-based learning.

Spring 2013, UNC at Charlotte.

ITCS 3182 Computer Organization and Architecture

Unsupervised lab instructor. Guided 1 sections of 50+ students through the lab portion of the course. The lab reinforced concepts from class through problem-based learning. Topics included switch level network structure, ALU, registers, buses, MIPS ISA, memory organization, pipelining and functional parallelism.

Fall 2012, UNC at Charlotte.


ITIS 1212 Intro to Media Programming I

Developed an automated grading system for media computation course. It is a web-based platform for students to upload assignments. The assignments are graded by running students code on the server and computing the mean-square error of the output image and a gold model image created by the instructor.

Fall 2013, UNC at Charlotte.


Web & Database

  • Angular
  • React
  • Ionic
  • Express
  • Koa
  • MongoDB


  • Circuit design
  • MIPS Assembly
  • VHDL
  • Signal Processing
  • Raspberry Pi
  • Arduino


  • D3
  • OpenGL
  • Tableau


  • Haskell
  • Clojure
  • Redux


  • R
  • Matlab

Research Areas

  • Visualization
  • Machine Learning
  • Statistical Inference
  • HCI
  • Human Subjects
  • Psychology
  • CS Education
  • Design Cognition


I am a Ph.D. student at UNC @ Charlotte. I am currently advised by Dr. Celine Latulipe. I also hold an undergraduate degree in Electrical Engineering from Purdue University where I was advised by Dr. Niklas Elmqvist

My research focuses on applying computational methods to the field of education. Through the use of machine learning, visualization, and psychology - I provide tools to improve motivation and academic outcomes.