Stephen MacNeil

GAANN Fellow
PhD Candidate, UNC Charlotte
Download CV / Resume Download CV

Research and Bio

Building on theories from cognitive science and social theory, I design and develop systems that support and analyze small and large group collaborations. By encouraging end-users to reflect on data from these systems, I empower them to make real-time adjustments and long-term changes. My PhD advisor is Dr. Celine Latulipe.

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


You can book me for meetings (Woodward 300 or via Zoom/Skype/G+ Hangouts). Please also send a short email to let me know how I can prepare for the meeting.


  • Winner 2016-2017 TA of the Year Award!
  • 3 papers accepted at FIE 2018!
  • In Spring 2018, I team-taught the System Integration course!
  • Our study of design cognition for crowd ideation was published at DCC 2018!




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


A Comparison of Lecture-based and Active Learning Design Patterns in CS Education
N. Deborghzi, S. MacNeil, ML. Maher, M. Dorodchi
In Frontiers in Education Conference (IEEE FIE ’18)

Evolving a Data Structures Class Toward Inclusive Success
C. Latulipe, S. MacNeil, B. Thompson
In Frontiers in Education Conference (IEEE FIE ’18)

Designing With and For the Crowd: A Study of Design Processes in NatureNet
S. MacNeil, S. Abdellahi, ML. Maher, JG. Kim, MJ. Mahzoon, K. Grace
In Proceedings of Design Computing and Cognition'18, pg. 61-80

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 A. Yadav
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

ITCS 3130 Human Computer Interaction

Helped guide students through active learning exercises. I provided students with design critique, helped them to develop a critical perspective about their designs, and helped guide them to use HCI techiniques including heuristic evaluation, needfinding analysis, prototyping, personas, and storyboards.

Summer II 2018, UNC at Charlotte.

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. candidate at UNC Charlotte. I am currently advised by Dr. Celine Latulipe. I also have a bachelor's 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 and design. Through the use of machine learning, visualization, and psychology - I provide systems and tools to improve identify and solve problems in design and learning.

I have more hobbies than I've been able to keep up with while in graduate school. I love fitness and exercise! Running, rock climbing, basketball, and cycling are a few of my favorite ways to stay active. When the weather isn't great I love to play table tennis or darts. I'm an avid home-chef and fermenter of foods (though I have trouble keeping up with my wife's amazing skills in the kitchen). I've been fortunate to travel to 13 countries across 4 continents! Staying with locals through couchsurfing and eating traditional foods is a passion of mine. I also love learning new languages but haven't ever stuck with one long enough to develop fluency.