Teaching Portfolio - Coral Sheldon-Hess

Assistant Professor of Computer Information Technology & Data Analytics

About Me

a photo of Coral with an owl

My initial educational background was in electrical engineering, with a minor in computer science and a masters in wireless engineering. I spent a few years as a practicing engineer and project coordinator, and then returned to academia for a second masters, in library and information science. My library degree took me to Alaska, where I worked as an academic librarian and full-stack web developer (HTML, CSS, and JavaScript on top of a LAMP stack — Linux, Apache, MySQL, and PHP) for five years. My greatest achievements during that time were much more about usability and user-centered design than they were about the technology, and I bring those values with me into the CS classroom. After moving back to the contiguous US states, I worked for a short period with a company building an open source, open data web application (Python back-end); that experience on a software team has also been invaluable in the classroom. Now I teach Computer Information Technology and Data Analytics at the Community College of Allegheny County.

About My Teaching

At this point in my career I am an online teacher; by that, I mean I've taught more credit hours in remote-synchronous and online-asynchronous environments than I have taught in-person. I also mean that I use research-backed methods to build my online/remote courses. I understand that each modality has its strengths, and I embrace the affordances of remote-synchronous and online-asynchronous delivery, rather than trying to force in-person teaching methods into either environment. I also embrace technologies outside of Zoom and Blackboard; in particular, my students and I use Slack (or something similar) as a tool for community-building, peer support, instructor support, and co-working. (If you have questions about that, I presented on my use of Slack in my courses for the Center for Teaching and Learning; the slides are here, and my blog post about the use of Slack-like tools is here.)

Regardless of modality, I am dedicated to building an equitable environment for my students. This is important enough to me—and to CCAC—that it has its own section in the portfolio. I strive to hold all of my students to high standards, while also acknowledging the systemic factors at play in their lives, especially during the last several semesters.


I believe everyone can learn how to code, if they have sufficient support and are willing to put in the work. It's not magic; like most areas of study, it's a discipline with a set of skills and thought patterns to be learned, not something inherent, or requiring a special kind of intellect to attempt. More to the point, I believe our role, as teachers of programming courses, isn't nearly as much to teach syntax as it is to teach programmatic thinking and problem-solving. That is the real, lasting value our courses impart. Admittedly, those skills are a lot more challenging to teach than syntax and language features, and I am continually working to improve my courses, to better meet that goal.

I teach HTML, CSS, and programming languages (Python, R, JavaScript, and C) in a very hands-on fashion: I do a lot of whiteboarding and a lot of live-coding, rather than relying on slides, and our live-code examples are never the same examples given in the assigned textbooks or other readings. I make every session's live-coding files available to students as soon after we meet as practical, so they have numerous examples to look at. Longer-term, I strive to make my teaching materials available to past students and to other educators, using tools such as GitHub, with fairly permissive licenses.

In the place of tests, which are not an especially useful assessment tool in a coding classroom, I assign coding projects to my students. I grade their projects not only on the functionality of their code but on its readability and on the user-friendliness of their programs. I work very hard to train the programmers we all want to see in the world.

Data Analytics

I teach data analytics in much the same way as I teach programming; though, depending on the course, there's likely to be more peer-teaching and more whiteboarding. The other tools we use will also vary more from week to week than they might in a programming course, where we spend most of our time in the same development environment. In a data course we might use Excel, RStudio, Jupyter notebooks, GitHub, OpenRefine, PostgreSQL, and QGIS all in the same semester, some of them in a Linux environment on a virtual machine. I almost always use real-world data in my examples and homework assignments (limiting our use of the iris, diamond, titanic, and mpg datasets to a maximum of one lesson per semester). I also bring in data practitioners and community partners with data problems to be solved, to give students more of a practical view into the field; past presenters I've invited have included Draw the Lines PA, the Nine Mile Run Watershed Association, a research data librarian who specializes in data privacy, and a professional statistician and R programmer.

I treat all of my students as individuals with relevant and valuable life experiences to bring to the table, but my data analytics students, in particular, prove to me again and again that this is the correct approach. They ask excellent questions and challenge me constantly, and it is a joy to teach and be taught by them.