Teaching Awards

  • Alumni Association Outstanding Teacher Award, 2015
  • Outstanding Teacher Award, 2015, with membership in the Academy of Outstanding Teachers
  • The Carol Miller Undergraduate Lecturer Award, 2013-2014
  • Most Receptive Undergraduate Professor Outside the Classroom Award, 2012-2013
  • Most Receptive Professor Outside the Classroom Award, 2010-2011

Teaching Statement

Teaching Statement [PDF]

Courses

Undergraduate Courses

I regularly teach five of the ten core undergraduate courses in the areas of Programming Languages and Software Engineering. The syllabi for the courses are linked in below.

  • CSC116: Introduction to Programming - Java
  • CSC216: Programming Concepts - Java
  • CSC230: C and Software Tools
  • CSC326: Software Engineering
  • CSC492: Senior Design
  CSC116 CSC216 CSC230 CSC326 CSC492
Fall 2017   Section 001   Section 001 Section 002
Spring 2017   Section 001     Section 002
Fall 2016   Section 001
Section 002
    Section 002
Spring 2016   Section 001 Section 002   Section 001
Fall 2015   Section 001   Section 001 Section 002
Spring 2015 Section 005   Section 002
Section 601
  Section 001
Fall 2014   Section 001
Section 002
Section 601 Section 001
Summer 2014     Section 651    
Spring 2014     Section 001
Section 002 [Peddycord]
Section 601
  Section 001
Fall 2013   Section 001 Section 001
Section 601
Section 001  
Spring 2013 Section 001 Section 002 Section 001
Section 002 [Fiala]
Section 601
   
Fall 2012   Section 001
Section 002
Section 001
Section 601
   
Summer 2012     Section 051
Section 651
   
Spring 2012 Section 004 Section 001 Section 001    
Fall 2011 Section 003 Section 001 Section 001    
Spring 2011 Section 004 Section 001   Section 001  
Summer 2010   Section 051      
Spring 2010 Section 005
Section 006
Section 001      
Fall 2009 Section 002
Section 003
       
Spring 2005 Section 002        

Undergraduate TA Training Course

  • CSC295-002: TA Training - Fall 2016 [co-taught with Ms. ToniAnn Marini]
  • CSC295-002: TA Training - Fall 2017 [co-taught with Ms. ToniAnn Marini]

Graduate Courses

  • CSC801-006: Seminar on Teaching and Learning in Computer Science with Dr. Tiffany Barnes - Fall 2014
  • CSC801-004: Seminar with Dr. Rudra Dutta - Spring 2012
  • CSC885: Doctoral Supervised Teaching - Fall 2012 & Fall 2013

Summer Camps

Course Materials

CPATHII: Communication across the Curriculum Assignments

I developed several assignments that incorporate communication learning outcomes.

Assignment Reference
H07_GSRS paper in html
Sarah Heckman, “Black Box Test Plan - Bug Hunt,” Incorporating Communication Outcomes into the Computer Science Curriculum, accessed May 29, 2014, http://cs-comm.lib.muohio.edu/items/show/16.
H07_GSRS paper in html
Sarah Heckman, Ed Gehringer, “Design Proposal and Rationale,” Incorporating Communication Outcomes into the Computer Science Curriculum, accessed May 29, 2014, http://cs-comm.lib.muohio.edu/items/show/38.

Testing Materials for CSC116 and CSC216

The testing packet provides an introduction to black box acceptance testing and white box unit testing in Java. The white box testing setup emulates JUnit, but does not require that students work with the JUnit libraries for unit testing.

Reading

Testing Packet

Presentations

Black Box Testing Lecture

White Box Testing Lecture

Sample Code

Triangle.java

StringAnalyzer.java

StringAnalyzerJavaTest.java

CSC216 Course Materials (Fall 2016 and later)

In Fall 2016, a new lab component was added to CSC216. A suite of materials are under development to supplement the existing course materials and to provide guided projects and lab activities. [Note: Currently requires NCSU id to access.]

CSC216 Tutorials (Spring 2016 and earlier)

Students are introduced to several software engineering tools during CSC216. The tutorials provide an introduction to using Eclipse, the Eclipse debugger, and unit testing with JUnit.

Tutorial Title Tutorial Authors Tutorial Overview
CSC216 Eclipse Development Environment Setup
(Last Updated: 7/8/2013)
Sarah Heckman
Jo Perry
Instructions for downloading and installing Eclipse and plug-ins required for CSC216.
Getting Started with Eclipse for Beginning Programmers
(Last Updated: 1/7/2013)
Sarah Heckman
Ed Gehringer
Andy Meneely
Introduces the Eclipse Integrated Development Environment and incorporates an exercise that reviews basic object-oriented programming concepts.
Using the Eclipse Debugger for Beginning Programmers
(Last Updated: 1/8/2013)
Sarah Heckman
Ed Gehringer
Andy Meneely
Introduces the Eclipse Debugger and incorporates an exercises where students find bugs seeded in a small object-oriented programming project.
Unit Testing in Eclipse Using JUnit for Beginners
(Last Updated: 1/9/2013)
Sarah Heckman
Jo Perry
Ed Gehringer
Introduces the JUnit unit testing library and incorporates an exercise where students must unit test a small object-oriented programming project with seeded bugs. Students learn how to use Web-CAT for automated grading.

Getting Started with Eclipse for Beginning OO Programmers
(Last Updated: 8/23/2015)

Sarah Heckman
Jo Perry
Jason King 
Ed Gehringer
Andy Meneely
Introduces the Eclipse Integrated Development Environment with an exercise that reviews advanced object-oriented programming concepts including abstract classes and interfaces.
Unit Testing in Eclipse Using JUnit for Beginner OO Programmers
(Last Updated: 9/1/2015)
Sarah Heckman
Jo Perry
Jason King 
Ed Gehringer
Introduces the JUnit unit testing library and incorporates an exercise where students must unit test a new module of a small advanced OO project.
CSC216 Basics of Jenkins Guide
(Last Updated: 8/11/2014)
Jason King
Sarah Heckman
Introduces Jenkins and how to interpret the Jenkins results.

CSC326 Tutorials

I helped develop many tutorials as reference for software engineering tools used in CSC326.

Tutorial Title Tutorial Overview

Getting Started with Eclipse 3.1
Updated: 2011/08/13

Getting Started with Eclipse 3.5
Updated: 2011/08/13

In this tutorial, you will learn the basic concepts of using Eclipse v3.1. You will know how to:

  • Create a new Java project,
  • Manage views and perspectives,
  • Compare different versions of local files, and
  • Run a Java project

Installing Plug-ins in the Eclipse 3.1 Environment
Updated: 2011/08/13

Installing Plug-ins in the Eclipse 3.5 Environment
Updated: 2011/08/13

Learn how to install plug-ins in Eclipse.
Javadoc
Updated: 2011/08/13
In this tutorial, you will learn how to use Eclipse's built in Javadoc assistant to generate Javadoc HTML files.
Acceptance Testing Using FIT
Updated: 2011/08/13
In this tutorial, you will use FitRunner, an Eclipse plug-in, to create acceptance testing using the FIT framework.
HttpUnit for Black Box Testing
Updated: 2013/08/27
HttpUnit is a Java-based API for interacting with websites. Acting like a browser, HttpUnit can automate complex test cases as if a user was clicking through your website.
jUnit for Eclipse 3.5 
Updated: 2011/08/13
jUnit runs white-box unit test cases in Eclipse
Test Coverage with EclEmma 
Updated: 2011/08/13
This tutorial shows you how to gather line coverage for your unit tests with EclEmma, an Eclipse plugin.
Test Coverage with djUnit
Updated: 2011/08/13
This tutorial shows you how to gather line coverage for your JUnit tests with djUnit, an Eclipse plugin.
Using Subclipse for Configuration Management 
Updated: 2011/08/13
This tutorial shows you how to use the configuration management Eclipse plug-in, Subclipse.
Using Subversive for Configuration Management 
Updated: 2011/08/13
This tutorial shows you how to use the configuration management Eclipse plug-in, Subversive.
FindBugs Static Analyzer 
Updated: 2012/02/24
FindBugs is a static analysis tool that runs in the background when developing code. FindBugs uses bug patterns to find potential vulnerabilities in your source code.
JDBC: Java Database Connectivity 
Updated: 2013/08/27
Learn how to interact with databases using Java.
JSP: JavaServer Pages
Updated: 2013/08/27
JSP is the Java technology used to create dynamic web sites.
Object-Oriented Metrics
Updated: 2011/08/13
In this tutorial, you will use metrics, an Eclipse plugin, to calculate metrics on your code.
Writing Web-based Applications in Eclipse
Updated: 2011/08/13
Learn how to setup your home machine for use with a webapp using Eclipse, Tomcat, Sysdeo, and mySQL.
GERT
Updated: 2011/08/13
GERT is an Eclipse plug-in that is used to provide reliability estimations and feedback on the quality of test coverage in an application.

Workshop: TA'ing Courses with Computer Intensive Assignments

Google Site with TA Resources