A professor in the Department of Computing and Information Studies at Washington & Jefferson College (W&J), she teaches courses in programming, game development, artificial intelligence, security, and other computer science topics. She frequently collaborates with students in her research, most recently using machine-learning techniques to understand the economic impact of security breaches on a company, and to analyze the emotional content of tweets.
Amanda, an Ellis lifer, earned her B.A. in Mathematics and Computer Science from Amherst College and her Ph.D. and M.S. in Computer Science from Cornell University. She is an active researcher in exploring effective methods and practices for undergraduate computing education and leads the national ACM SIGCSE Committee on Computing Education in Liberal Arts Colleges.
Amanda recently talked with our Director of Marketing and Communications about how her Ellis experience bolstered her love of learning and influenced the active approach she takes to teaching her own students.
What drew you to study computer science? What is it about this field that you find fascinating?
I’ve always loved logic and puzzles. I remember loving the worksheets we would get in math class where you have to figure out who lives in which house based on the color of their shirts and the pets they have. And I got minorly obsessed with writing sonnets in middle school after our Shakespeare unit because I liked the challenge of figuring out how to say what you want within the rules of iambic pentameter. My plan was to study math or physics in college, but I took some programming courses because I figured it would be a useful tool to know, and I did enjoy how programming is like a puzzle as well. It was my first theoretical course in algorithms that won me over to computer science. The idea that there are truths you can prove about computational processes, independent of any particular piece of hardware or programming language, was revelatory. It also really drove home to me that I enjoy the study of computing as a science, rather than as an engineering practice, though I’ve come to appreciate that side of it as well.
I got started in artificial intelligence because of my interest in logic also. My first AI research project back in 1990 was on automated theorem provers—how to build systems that could take a conjecture in mathematics and come up with a correct, formal proof for it. I kept working in that area in grad school, eventually adding language generation into the mix and looking at the logical rules behind the structure of sentences and of entire arguments. Being able to pull in knowledge from other disciplines like linguistics is one of the fun things about working in computer science. There are so many connections you can make, and I’ve been able to keep learning and trying new things.
You've been very involved in shaping the Computing & Information Studies (CIS) department at W&J. Can you talk about how that program has evolved since you began working at the college?
I started at W&J in 2004, a couple of years after the department was formed as an experiment in what it would look like to create a distinctly liberal arts computing program that didn’t necessarily have to follow the traditional curriculum of computer science. We take a highly interdisciplinary approach to computing education. For our majors, even students focusing in data science study some visual design, and students focusing in graphic design do some programming. They encounter problems drawn from different disciplines in their courses and project work, from the intro level all the way through their capstone.
For the department, this means we think our role in educating students across the campus is as important as our role in educating our majors. We have a vision statement that every W&J student should be able to take a course in the CIS program, taught in an active, hands-on manner, that is relevant to and enhances their major course of study and furthers their academic goals.
We’ve developed a broad set of introductory courses that complement other majors on campus, such as database development, digital video, game design, data mining, information visualization, and web development. Importantly, these are the same courses that our CIS majors take, so students can be assured they will be learning valuable skills that they can apply directly to problems they want to solve. As instructors, we think carefully about how we structure our classes to support the range of students we are teaching. One way we do that is by using project- and problem-based learning in all of our classes. Taking advantage of problems and projects drawn from other disciplines gives all of the students in the class the chance to be experts and novices at different portions of the work they are doing.
You teach college-level courses in CIS; Ellis has a robust computer science and technology curriculum, including programming and robotics courses in Middle School and various computer science courses in Upper School. Would you talk about the importance of experiential learning in these areas? How does this type of learning help students better understand the topics?
Experiential learning is so important in the computer science classroom. There’s a growing literature showing that the big innovations in computing education are moving towards more interdisciplinary computing and more experiential learning. I believe these pedagogies are valuable in any field, but the world of computer science is changing so quickly that it isn’t the particular facts or content students learn in college that are going to be most important—it’s the problem solving and independent learning skills. Experiential learning is also effective at supporting a diverse student population with different backgrounds, interests, and goals. Grounding a course in real problems to be solved gives context and motivation for why the things we are learning are worth knowing. There can be a tendency to teach a course assuming students naturally find the topic interesting, and part of an instructor’s job is to help all students find a reason to care about the topic. It also means that students can go much deeper in their learning. They aren’t just solving homework problems where they can find the solution and then the work is done. With real-world problems, there’s always messy edges and next steps they can consider.
Could you talk more about the courses you developed and how you integrate experiential learning?
One of the things I like to do is find ways to let students take ownership over defining the problems they are working on. When I teach Information Security, I get students in the class who are there for a lot of different reasons—some want a job in security, some are curious about the topic, and some just need an upper-level elective. I structure the course around a semester-long project where each student chooses an area of security that they want to dig deeply into. The variety of projects students come up with is amazing. One student interested in becoming a software engineer developed a portfolio of code demonstrating secure programming techniques they can use when applying for jobs. Another created a game designed to teach other college students how to protect themselves from identity theft. All of them have to connect their project back to the fundamental concepts in the course, but they all get to show how they’ve learned that content in different ways. And they all finish the course with meaningful project work for their own interests or career paths.
I do something similar in my introductory Artificial Intelligence course, which is designed to demystify artificial intelligence and allow students to become literate consumers of claims about AI, separating out reality from hype. Most of the students are not CIS majors, so I have them work on projects about the applications of AI into their field of study. So they’re all learning about how the output of an AI is dependent on the type of data you use to train it, but they’re studying how that manifests in systems for mental health diagnosis, or smart building energy optimization, or automating fraud detection. For this course in particular, the students are often nervous about how hard the course is going to be—computing sounds hard and AI sounds even harder. Bringing an experiential element into the course helps overcome that concern. The new knowledge they’re gaining about AI is just a new piece they’re adding on to a subject they already have experience with. For students having their first experience in a computing course, letting each student build on something they already know helps bridge the gap into the more unfamiliar content.
What were the learning experiences you most enjoyed as an Ellis student? How did they influence you on the path to your career?
I can look back and recognize experiences at Ellis that shaped how I thought about effective teaching even before I realized I was going to become an educator. I remember being in Calculus and Ms. George telling us that she was going to present a new concept a few different ways, and being able to call us out by name and say "Amanda, you’re not going to like this first way of thinking about this, but just hang on because I’ll go through this the way you’ll want to see this next.” Knowing that she thought about each of us as distinct learners and planned how she’d build a class specifically for us made it easier to trust that it would all make sense in the end. I’ve borrowed that technique from her—I said something similar to my programming class last week before presenting different ways to understand a particular coding structure. I remember AP Physics with Mr. Walker and maintaining a notebook of exercises that we could revise and resubmit as many times as needed to get the right answer—I think there were some exercises from September I was still trying to get right when April rolled around. But it was clear that the goal was to give each of us the time needed to understand the material, and that it was okay if we had to go at different paces. I not only make use of revision in a lot of my courses now, I even wrote a paper a few years ago about the positive effects of having opportunities for revision in computer science courses. As I’ve become involved in computer science education as a research field, I’ve realized how well-designed our Ellis education was. It definitely set a high bar for what I expect from myself and others when it comes to teaching.
Is there any advice or encouragement you’d like to share with current Ellis students?
One of the best things you can do for your education is to cultivate a mindset of curiosity. If we know that students learn better when they understand why a particular piece of knowledge is useful or important, then as a student you can use that to your advantage by looking for what you find meaningful in any topic you’re studying. One of the signs that an experiential learning experience has been successful to me is when a student says they forgot they were going to be graded on what they’re doing. I see students juggling so many responsibilities and it is easy to treat classwork as an item on a checklist to get done as efficiently as possible. I explicitly tell my AI and Security students, when I introduce the projects I described above: we’ll be spending all semester on this so it is worth it for you to take some time now before the semester gets busy to find a topic that you actually care about. Hopefully you are all having educational experiences where you’re being invited to take ownership of your learning. When that happens, accept the invitation thoughtfully and enthusiastically!