Work Experience

  • 2019 Present

    Teaching Associate Professor

    North Carolina State University, Department of Computer Science

  • 2012 2019

    Teaching Assistant Professor

    North Carolina State University, Department of Computer Science

  • 2008 2011

    Network Research Engineer

    IBM Research

  • 2005 2008

    Research Scientist

    MCNC, Grid Computing and Network Services

Education & Training

  • Ph.D. 2005

    Ph.D. in Computer Science

    North Carolina State University

  • M.S2002

    Master in Computer Networking

    North Carolina State University

  • B.S.1999

    B.S. in Electrical Engineering/minor in Applied Mathematics

    Kettering University

Honors and Awards

  • 2020
  • 2016
    ACM/AITP Carol Miller Outstanding Undergraduate Lecturer Award
  • 2006
    Nancy G. Pollock NCSU’s University-wide Best Dissertation Award
  • 2002-2003
    IBM PhD Fellow


  • image



    Matlab Apps for Computer Aided Design for Core Courses in Aerospace and Mechanical Engineering Curricula

    Mathwork's Funded Grant; NCSU co-PIs: Larry Silverberg, Jeff W Eischen

    CAD APPS is a set of Computer Aided Design (CAD) and Exploration Applications (APPS) that were developed for undergraduate Mechanical and Aerospace Engineering (MAE) students. The CAP APPS solve problems that are typically found in MAE courses. The CAD APPS have also been found to be useful to high school students, graduate students, and others.

  • image

    Peer Collaboration as a Teaching Strategy


    Exploring peer help, efficiencies and best practicies for teaching CS courses

    There is a surge of interest in Computer Science and a national CSforAll initiative which aims at bringing Computer Science education to all students across the U.S. Thus we need efficient, inovative, evidence-based teaching techniques and modern software tools to better organize and run courses with large number of students.

    I am studying peer collaboration as an aid to students in CS classes. In addition to the well-researched Peer Instruction and Pair Programming, I have studied Organized Study Hours and Two-Stage Submissions.

  • image

    TH!NK: Developing Students' Critical & Creative Skills


    NCSU's TH!NK initiative designed to cultivate students’ higher order skills in critical and creative thinking.

    As a TH!NK Faculty I implemented strategies into my courses that provided my students opportunities to develop and receive feedback on their higher-order thinking skills in introductory Computer Science Courses.

    • Code-review in Labs
    • Discussion activities to teach the critical & creative skills
    • Self-reflection after each test
    • Open-ended project that focused on evaluating the student’s thinking process while taking them through the entire software engineering cycle via milestones


  • Present 2016

    CSC492: Senior Design

    This is a required capstone course for the Computer Science undergraduate students at NCSU. Application of software engineering principles and basic computer science to the total development of a software system. Consideration of the software system design process, including requirements and design detail. Development and evaluation of a prototype accomplished through design team activity. Student teams work with industry sponsors, who propose and mentor the projects.

  • Present 2015

    CSC401: Data and Computer Communications Networks

    This course provides an introduction to fundamental concepts in the design and implementation of computer networks, their protocols, and applications with a particular emphasis on the Internet's TCP/IP protocol suite. Topics to be covered include: overview of network architectures, applications, network programming interfaces (e.g., sockets), transport, congestion, routing, and data link protocols, addressing, local area networks, wireless networks, network security, etc..

  • Present 2012

    CSC113: Introduction to Computing - MATLAB

    The goal of this course is to introduce engineering students to the role computation can play in solving problems. The course covers elementary programming concepts and problem solving techniques. The programming language used in the course is MATLAB. In the context of engineering applications, the students learn basic procedural programming concepts including input/output, selection logic, loops, functions, basic data structures and more. No previous knowledge of programming or numerical analysis is assumed.

    For a basic introduction to programming with Matlab, NCSU's students can check out my Video Tutorials sponsored by NCSU's Engineering Online.

  • 2017 2013

    CSC116: Introduction to Computing - JAVA

    An introductory course in computing in Java. Emphasis on algorithm development and problem solving. Careful and methodical development of Java applications and applets from specifications; documentation and style; appropriate use of control structures; classes and methods; data types and data abstraction; object-oriented programming and design; graphical user interface design.

Workshops/Summer Camps

  • Present 2013

    There must be an App for That!

    COE's Computer Science Summer Camp for high school students organized via the Engineering Place. During this workhop, the students explore the skills necessary to describe, design, implement, and test an Android application via MIT's AppInventor . The students learn the basic computer science skills behind algorithm development and logic.

  • 2016 2015

    TA'ing Courses with Computer-Intensive Assignments

    Part of COE’s Fall training for graduate TAs, this 1.5hr workshop introduced the students to techniques and tools to deal with technical/computer assignments, automate grading, automatically generate feedback files based on rubrics, etc.

Broadening Participation in Computer Science

  • Faculty Adviser for WiCS, 2013-Present

    WiCS is the NCSU CSC Department's student organization whose mission is to support, promote and retain women in computer science by providing opportunities for personal and professional development, social interaction, and outreach.

  • Grace Hopper Conference Faculty Coordinator, 2015-Present

    Representing our department at GHC'2017 as an academic sponsor. Yearly, I also help organize the travel scholarships to the conference for our students.

  • Teaching Growth Mindset, 2015-Present

    I teach the Growth vs. Fixed Mindset theory in all my courses. For example, in CSC116 we added a series of Stembrite videos which are watched by the students throughout the semester. These videos include interviews with students and faculty from our department as well as industry representatives.

NCSU Computer Science Department Committees

  • Strategic Planning Committee, 2016-Present
  • Computer Steering Committee (ETF Funds), 2016-Present
  • Broadening Participation Task Force Committee Coordinator, 2015-2016


  • Technical Symposium on Computer Science Education (SIGCSE 2020) – Organizing Committee, Lightning Talks & Demos Co-chair
  • Technical Symposium on Computer Science Education (SIGCSE 2019) – Organizing Committee, Lightning Talks & Demos Co-chair
  • ASEE SE Section Annual Conference (ASEE-SE 2019) – Local Planning Committee, Tours
  • Technical Symposium on Computer Science Education (SIGCSE 2018) – Organizing Committee, BoF Co-chair
  • IEEE Optical Networks and Systems Symposium ( ICC 2017 ) – TPC Member
  • International Conference on Network Protocols (ICNP 2014) – PhD Forum Co-Chair
  • National Center for Women & Information Technology (NCWIT) - Member
  • Technical Symposium on Computer Science Education SIGCSE 2015 - Session Chair