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


Dimensional Reasoning and Research Design Spaces
S. MacNeil, J. Okerlund C. Latulipe
In Proceedings of the 11th Conference on Creativity and Cognition (ACM C&C ’17)

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 (ACM SIGCSE ’16)

Learning in Distributed Low-Stakes Teams
S. MacNeil, C. Latulipe J. Okerlund
In Proceedings of the eleventh annual International Conference on International Computing Education Research (ACM ICER '15)

Workshops / Short Papers

Tools to Support Data-driven Reflective Learning. (Doctoral Consortium)
S. MacNeil
In Proceedings of 2017 ACM Conference on International Computing Education Research (ACM ICER ’17)

Co-creating Dimensions and Examples using Design Space Gaps
S. MacNeil, C. Latulipe J. Okerlund
In First Workshop on Co-Creation at the International Conference on Computational Creativity (ACM ICCC ’17)

Using Spectrums and Dependency Graphs to Model Progressions from Introductory to Capstone Courses.
S. MacNeil, M. Dorodchi N. Deborghzi
In Frontiers in Education Conference (IEEE FIE ’17)


Leveraging Context to Create Opportunistic Co-Located Learning Environments
S. MacNeil, C. Latulipe
In Proceedings of the 47th ACM technical symposium on Computer science education (ACM SIGCSE ’16)

Because, fun!


2016-17 TA of the Year Award (CS, SIS, BioInf Departments)


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.

Recommendations Available

Dr. Manuel Pérez-Quiñones

Dr. Celine Latulipe

Dr. Jamie Payton

Dr. Ras Zbigniew

Various Student Letters

Instructor of Record

ITCS 6177 System Integration

Team-teaching position. With another PhD student, our course teaches students to integrate databases, sensors, machine learning algoriths, physical devices, front-end web apps, and visualizations as needed to solve problems. An emphasis is placed on automation, continuous integration, and testing. This course is taught as a design studio. Students are given a prompt and they are expected to identify a relevant problem and solve it.

Spring 2018, UNC at Charlotte.

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, Spring 2017, 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.

Adjunct Instrutor

Trilogy Web Dev Bootcamp

Substitute Instructor. Fill in for instructors when they aren't available to teach. Typically given 24 hours to review the course material and guide a 3 hour interactive active learning classroom.

Fall 2016-2017, Trilogy Bootcamp (UNCC Campus) .


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.