Pedu

MSR

Educational Technologies and Tools

for Teaching and Learning in Computer Science

Click to play

PROJECT SUMMARY

This project leverages advances in software testing and program analysis techniques and tools to explore and develop novel educational technologies and tools for teaching and learning programming, testing, debugging, computational thinking, and other critical skills in computer science. The target users who will directly benefit from the project outcomes include the IT workforce pipeline, ranging from K-12 students, undergraduate students, graduate students, and even practitioners. This project also involves efforts on STEM education outreach.

This project is conducted in collaboration between the NCSU Automated Software Engineering Research Group and Microsoft Research RiSE Group. Our initial work has been carried out primarily upon Pex, an automatic unit testing tool from Microsoft Research for .NET programs such as C# programs. Concurrently, some work on iTutor for Java programs has also been carried out. Some of the developed tools are released as open source at the Pex Extensions project web. Our teaching/learning materials around paramterized unit testing/Pex can be found at our Wiki site for Teaching Parameterized Unit Testing/Pex. Our Pex community building activities are summarized in the Pex community web.

INTERNATIONAL or K-12 OUTREACH

PEOPLE

Faculty

Tao Xie

Microsoft Research Collaborators

Sumit Gulwani, Nikolai Tillmann, Jonathan de Halleux, and Wolfram Schulte

NCSU ASE Graduate Students

Justin Gorham

Rahul Pandita

Yoonki Song

Kunal Taneja

Suresh Thummalapenta

Xusheng Xiao

Undergraduate Students

Bellanov Apilli

Shengyen Tony Chen

Travis Weston

SUBPROJECTS (Pex community web)

PUBLICATIONS

  1. Tao Xie, Jonathan de Halleux, Nikolai Tillmann, and Wolfram Schulte. Teaching and Training Developer-Testing Techniques and Tool Support. Proceedings of the 25th Annual ACM Conference on Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH 2010), Educators' and Trainers' Symposium, Reno/Tahoe Nevada, October 2010. [PDF][BibTeX]
    1. Kunal Taneja, Nuo Li, Madhuri Marri, Tao Xie, and Nikolai Tillmann. MiTV: Multiple-Implementation Testing of User-Input Validators for Web Applications. In Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering (ASE 2010), Short Paper, Antwerp, Belgium, September 2010. [BibTeX]
  2. Kunal Taneja, Tao Xie, Nikolai Tillmann, Jonathan de Halleux, and Wolfram Schulte. Guided Path Exploration for Regression Test Generation. In Proceedings of the 31st International Conference on Software Engineering (ICSE 2009), New Ideas and Emerging Results, Vancouver, Canada, May 2009. [PDF][BibTeX]
    1. Kunal Taneja and Tao Xie. DiffGen: Automated Regression Unit-Test Generation. In Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2008), Short Paper, L'Aquila, Italy, pp. 407-410, September 2008. [PDF][Poster][BibTeX]

SELECTED TALK/POSTER PRESENTATIONS

    1. Tao Xie. Automated Developer Testing: Achievements and Challenges. Invited talk, Department of Computer Science, Columbia University, NY, March 2010. [Slides]
    2. Bellanov Apilli and Tao Xie. iTutor: Assisting Students Learning Java Programming. NCSU STARS (Students & Technology in Academia, Research and Service) Project Meeting Poster Session, Fall 2009. [Poster]
  1. Tao Xie. Regression Testing and Programming Tutoring via Automated Testing. CACC Proposal Presentation, Department of Computer Science, North Carolina State University, Raleigh, NC, April 2009. [Slides]
    1. Bellanov Apilli. iTutor: Assisting Students in Learning Java Programming. NCSU STARS (Students & Technology in Academia, Research and Service) Project Meeting Poster Session, Fall 2008. [Poster]

COURSES

  1. Tao Xie created Wiki site for Teaching/Learning Parameterized Unit Testing/Pex and Parameterized Unit Testing presentation/tutorial.
  2. Tao Xie taught CSC 712 Software Testing and Reliability, Graduate Course, Fall 2009, where Microsoft Research Pex, Code Contracts, and NModel were used as the primary tools and materials of the course.
  3. Tao Xie taught CSC 712 Software Testing and Reliability, Graduate Course, Fall 2008, where Microsoft Research Pex and NModel were used as the primary tools and materials of the course.
  4. Tao Xie taught CSC510 Software Engineering, Graduate Course, Spring 2009, where where Microsoft Research Pex and CHESS were used as tools and materials for covering testing topics in the course.

SPONSORS

MSR
NSF

National Science Foundation Award CCF-0915400, SHF Program (09/01/2009-08/31/2012), CCF-0845272, CAREER SHF Program (08/01/2009-07/31/2014), CCF-0725190, SoD Program (01/01/2008-12/31/2010)

Army Research Office Award W911NF-08-1-0443 (09/08/2008-08/30/2011)

NCSU CACC (06/10-05/11)

NCSU Secure Open Systems Initiative (SOSI) (08/15/2008-)