Profile Picture

Dr. Steffen Heber

Associate Professor

Dr. Steffen Heber

Associate Professor


Fall 2019 (upcoming)

  • CSC 505 - Design and Analysis of Algorithms, sections 1, 2, 601 (DE)
  • CSC 530 - Computational Methods for Molecular Biology, section 1

Summer 2019

CSC 505 — Design and Analysis of Algorithms, section 561 (DE) (course website)
A graduate theory core course that introduces the fundamental principles and concepts of algorithm design and problem solving. Topics include: algorithms for classical problems, algorithm design techniques, complexity, and analysis of algorithms. You will learn how to solve computational problems using concepts of algorithms and discrete mathematics, e.g. how to rigorously analyze correctness, time, and space usage of algorithms, when and how to use fundamental algorithms and data structures, and how to apply algorithm design strategies such as recursion, divide-and-conquer, dynamic programming. greedy choice, and approximation.

Office hours: Mon 3:30-4:30 PM or by appointment.

Previous Courses

  • CSC 316 - Data Structures for Computer Scientists [Fall 2006, Spring 2010 (buyout), Spring 2011]
  • CSC 422/522 - Automated Learning and Data Analysis [Fall 2010 (2 sections), Fall 2013 (2 sections), Spring 2015]
  • CSC 505 - Design and Analysis of Algorithms [Fall 2004, Spring 2006, Spring 2008, Spring 2009, Fall 2009, Fall 2011, Spring 2013-15, Fall 2015 (3 sections), Summer 2017, Fall 2017 (3 sections), Summer 2018, Fall 2018 (3 sections)]
  • CSC 530 - Computational Methods for Molecular Biology [Spring 2007-10, Fall 2011, Spring 2013, Fall 2014-18]
  • CSC 591 - Special Topics in Computer Science: Comparative Genomics [Fall 2007, Spring 2008]
  • CSC 591 - Special Topics in Computer Science: Modern Topics in Bioinformatics [Spring 2004]
  • BI/GS 811 temporary number PP 810/610G - Genomic Science Journal Club [Fall 2004 (2 sections), Spring 2005 (3 sections), Fall 2005 (3 sections), Spring 2006 (3 sections)]
  • CSC 791 - Advanced Topics in Computer Science: Computational Genomics [Fall 2010]

Other Teaching

  • Summer CSC 495 Special Topics Course: Nature-Inspired Computation with Julia, 5 weeks Summer course, 2018
  • Summer CSC 495 Special Topics Course: Bio-Inspired Computation with Julia, 5 weeks Summer course, 2017
  • Summer Short Course in Bioinformatics: Expression Analysis, 2 days course, Raleigh, June 2016
  • Summer Institute in Statistical Genetics: Introduction to Bioinformatics, 2.5 days course, Raleigh, May 2003-2005, and Faro, July 2004
  • Lecturer, Pan-American Advanced Studies Institute: Hands on training – Searching biological databases, Montevideo, February 2004

Teaching Philosophy

I believe teaching should focus on the student as a whole person. Learning is an active process where students are prompted to reflect on their experiences. To promote a thorough understanding of a topic, students should engage in deep thinking, active experimentation, and problem solving. In my opinion, effective teachers project their enthusiasm for material and provide experiences so that students can learn by doing.

Inspired by these principles, I have created and offered several graduate-level courses in Bioinformatics and Computer Science, and I have contributed to the core undergraduate Data Structures course. I have also participated in multiple summer schools and have been a faculty mentor in the REU Site: Socially Relevant Computing and Analytics project and the NSF Alliances for Graduate Education and the Professoriate (AGEP) summer research experience. I try to foster the students’ problem-solving skills and their ability to think critically and independently. In addition to regular class topics, I focus on collaboration, technical communication, and time-management skills. Most importantly, I try to spark interest and excitement for the class and encourage exploration outside the classroom. I am fascinated by the opportunities that technology creates to engage students in the learning process, and I have been an active participant in the College's “Engineering Online” distance education program.

I am committed to promote and explore innovative teaching methods and educational tools. In collaboration with Sarah Heckmann, I organized a DELTA summer short workshop on student engagement. I served on multiple NSF Postdoctoral Research Fellowship and NCBC Education Enhancement panels, and I have organized the Symposium for Life Science Education. I have also written a chapter on “Genome Rearrangements” in the Bioinformatics for Biologists textbook. I am particularly proud of my "Bioinformatics in Motion” animation library. This interactive educational resource brings scientific concepts to life and targets instructors, Distance Education, and independent student learning in Bioinformatics. I am now exploring the suitability of the high-performance programming language Julia for teaching Bioinformatics and nature-inspired metaheuristics.

I believe that my role as a teacher goes beyond the classroom. I find mentoring students at all levels to be extremely rewarding, and I try to be more than just a research advisor. I recognize diversity and foster different points of view. I always encourage my mentees to think and plan beyond their current problem, and to focus on their overarching goals. Education is not preparation for life; education is life itself.