Get to Know Our CS Teaching Faculty

Computer science is one of the most popular degrees at Columbia and each year more and more students are interested in taking a CS course or shifting majors. As the number of students enrolling in computer science classes increases, the department is expanding the number of teaching faculty to ensure a solid grounding in computer science skills and methods for all students. 

CS teaching faculty members

Some of the largest classes, with 300 students or more, are taught by the teaching faculty. Their classes cover everything from Intro to Computer Science to graduate-level Analysis of Algorithms. Aside from teaching, some of them draw from their research backgrounds to mentor student projects, improve CS education, and advance the computer science field. 

We caught up with them to get to know them a little better and to find out how students can do well in their classes!

 

Daniel Bauer
Classes this semester/year:
ENGI E1006 Introduction to Computing for Engineers Applied Scientists
COMS W4705 Natural Language Processing

What are your research projects at the moment? 
I work on a variety of small projects related to natural language semantics. I also work on applications of NLP, such as knowledge graph extraction for human rights research. In addition, I am interested in CS education research, focusing on how to make CS courses more accessible and effective.

What type of student should apply to work on your research projects? 
Students interested in NLP research who have taken at least COMS W4705 Natural Language Processing, or an equivalent course. They should be very comfortable programming in Python. Ideally, they’d have first-hand experience with machine learning, including using TensorFlow or PyTorch. For CS education research, students should have a strong interest in education and some prior experience working with students, for example, as a TA. They should also have some experience collecting and analyzing data. In general, I enjoy working with students who can work independently, are enthusiastic about the research topic, and are interested in how the specific work relates to the broader field.

Why did you decide to become a professor?
Some of my undergraduate professors were great role models, who engaged in cutting-edge research but also really cared about their students. I thought being a professor, as opposed to working in industry, would give you the freedom to work on any topic you are interested in, without having to worry about applicability and external demands (that turned out to be an incorrect assumption). When I started working as a TA and later as a Ph.D. student, when I started teaching courses by myself, I discovered that I really enjoyed teaching. So I decided to become teaching faculty.

What do you like about teaching?
I like getting people interested in new areas of CS and hopefully sharing some of my enthusiasm with them. Sometimes, when explaining a tricky (but beautiful) concept to someone, you can watch them have an “aha” moment when all the pieces fall into place. These are the most rewarding situations for me as a teacher. Because I teach courses at all different levels I get to follow students through the CS program and it’s fun to watch them succeed and grow academically.

What are your tips for students so they can pass your classes?
It’s normal to get stuck, especially if you are new to CS. When students fail classes, there was usually a lack of communication. Be proactive in reaching out to the teaching staff for help, even in large classes. Talk to other students in the class. Make use of all the resources the course provides to you.

 


Brian Borowski
Classes this semester/year:
COMS W3134 In Data Structures in Java in the Fall 
COMS W3175 Advanced Programming in the Spring

Why did you decide to become a professor?
To me, a professor is both an instructor and a mentor. I endeavor to be an effective educator, combining the finest attributes of my high school teachers and college professors while completely disregarding the approach of those who merely went through the motions.

When I was in high school, I wrote a Pascal program to multiply polynomials and combine like terms. It was challenging for me at the time, and I couldn’t wait to show my AP Computer Science teacher. My enthusiasm was met with the response, “Why don’t you go outside and play like a normal boy?”

Fortunately, I wasn’t discouraged and remained committed to computer science all throughout college, graduate school, and my career. Over the years, I’ve taken courses with professors whose enthusiasm for the material shone through as soon as they stepped into the classroom. They would explain WHY something is important as well as how it works and would work tirelessly to get everyone to understand the material. I want to share my knowledge with my students, galvanizing their enthusiasm in the classroom, so they can be inspired to always continue learning and go out into the world and make a difference.  

What do you like about teaching?
Every lecture is different, even if you’ve taught the same course for years. Someone will inevitably ask a question for which you don’t know the answer or solve a problem in a way you never considered. It’s exhilarating when a typical class meeting turns into a profound discussion. 

Do you have a favorite story about your students that you tell people about?
I don’t have, per se, a favorite story. I delight in my students’ accomplishments whether it be getting a good grade in a course, passing a round of technical interviews, landing an internship or full-time job, being accepted into graduate school, winning a programming competition, or completing a research or software development project. Over the years, my students have shared with me so many success stories that I don’t know where to begin recounting them!

What are your tips for students so they can pass your classes?
For years I have been saying that computer science is not a spectator sport. Students will learn better by trying to solve problems and code solutions on their own rather than by watching someone else do it. Learning takes place while making attempts, and often a small amount of coaching will get a student back on track.

 


Adam Cannon
Classes this semester/year:
COMS W1002 Computing in Context in the Fall 
COMS W1004 Intro to CS in the Spring

Why did you decide to become a professor?
I love teaching good students and working in a university environment. I have worked in industry as an engineer and I’ve been a full-time researcher at a national lab but I’ve always felt most at home on a university campus.    

How did you end up teaching CS?
When I was getting out of grad school I applied mostly to math departments but the work I was doing was on the interface of discrete math, statistics, and CS so I also applied for a couple of CS positions. I didn’t think I would be teaching for long but wanted to try it and Columbia CS seemed like a good place to do that.  

What do you like about teaching?
There’s a feeling you get when your students understand something new for the first time. I’ve heard some teachers call it a “teacher’s high.” It’s a thing and I like it. Then there’s something specific to STEM and that’s bringing people in that never really considered a career in STEM before. Broadening participation in CS and more generally in STEM is something that resonates with me.

What are your tips for students so they can pass your classes?
1. Go to class
2. Do the homework.
3. Do the reading
That’s it.


Tony Dear
Classes this semester/year:
COMS W3203 Discrete Math 
ORCS 4200 Data-Driven Decision Modeling

About research, are you working on anything now? 
I am investigating using deep reinforcement learning for robot locomotion.

What types of projects have you worked on with your students? 
In an ongoing project, students have investigated wheeled and swimming snake robots in simulation to endow them with the ability to learn how to locomote. Other projects have covered using a combination of reinforcement learning with genetic algorithms to enable humanoid robot locomotion and using real-time replanning algorithms to coordinate motion planning for multiple robots.

Why did you decide to become a professor?
I am driven by the pursuit and dissemination of knowledge. My job allows me to be colleagues with experts who are authorities in their field. And I get to regularly interact with bright students who teach me new things all the time and have the potential to do great work.    

What do you like about teaching?
Guiding students from the very beginning of the course to the end and seeing them make all the little connections. Continuing to interact with talented students when they work with me as TAs and seeing them solidify their knowledge. Learning about students’ diverse backgrounds and experiences, and how they’ve applied their knowledge outside the classroom.

Do you have a favorite story about your students that you tell people about?
I’ve taught a wide array of students, some of whom are older than myself. One such student had a couple of decades of industry experience before coming back to school for his graduate degree. He was an extremely talented student in my classes and ended up TAing with me in a later semester. After graduating, he took up an adjunct professor position to teach computer science at an even broader level, partially attributing this decision to his experiences working with me.

What are your tips for students so they can pass your classes?
Different strategies work for different students. But the most successful students in my classes tend to manage their time well, can focus without getting easily distracted, and ask questions as soon as they need help.

 


Eleni Drinea
Classes this semester/year:
CSOR W4246 Algorithms for Data Science in the Fall 
CSOR W4231 Analysis of Algorithms in the Spring 

What do you like about teaching?
What I mostly enjoy about teaching are the materials I teach and my students’ enthusiasm and brilliance. I love teaching courses on algorithms where we solve a wide range of interesting problems as efficiently as possible. I am fortunate to have hard-working students, often with diverse academic backgrounds (ranging from Computer Science, and Engineering more generally, to Statistics and Physics), who ask challenging questions and can offer insights and connections with other fields.

Do you have a favorite story about your students that you tell people about?
When I was teaching the Data Science Capstone & Ethics course (ENGI 4800) in Fall 2017, a student team I was supervising worked so diligently that they finished their semester-long project on Deep Learning in just two weeks. Their industry project mentor was very impressed: He extended the scope of the project to include a heavier research component and recruited two out of the five students in the team to their company (MediaMath).

What are your tips for students so they can pass your classes?
Students should always ask questions in class (or during office hours or on EdStem) if there is anything unclear from the lectures. I encourage students to pursue and test extensively their own ideas when solving homework problems to develop confidence in their own algorithmic thinking. I also recommend working through the optional exercises I provide in every homework. Finally, I encourage students to form study groups, which offer an effective and enjoyable way to learn.

 


Jae Woo Lee
Classes this semester/year:
On sabbatical this year
COMS 3157 Advanced Programming 
COMS 4118 Operating Systems 

Why did you decide to become a professor?
I’ll answer a slightly narrower question: why I became a teaching-focused professor, rather than a research-focused one. Midway into my PhD years, the department needed an instructor for AP at the last minute, due to an unexpected departure of the instructor who was assigned to teach it. I volunteered, thinking not much more than that it wouldn’t hurt to have an actual instructor experience on my resume. This turned out to be a life-changing experience for me. I spent all my time that semester creating my version of the course and teaching it (and did zero research…). After that, I knew that teaching was what I wanted to do.

What do you like about teaching?
I don’t really have one magical part of teaching that I love the most. I like all the normal things about teaching, especially when I try my best and end up doing them well. Some of the things that make me happy: preparing a well-developed lecture and delivering it exactly as I planned it, anticipating difficult questions and being ready to answer them, developing cool assignments with crystal-clear and well-thought-out instructions, writing sample code as carefully and beautifully as I can, coming up with sharp exam questions that are not unexpected yet challenging, and of course, hearing from students that they appreciate the efforts.

Do you have a favorite story about your students that you tell people about?
I get this question from time to time, but I never have an answer ready. I do have some stories about former students and TAs, but I don’t usually share them with others. I haven’t found a good story for which I am also certain that everyone involved would be OK with it being shared…

What are your tips for students so they can pass your classes?
It’s usually pretty easy to pass AP: Keep trying until the end and don’t cheat. A related question would be: How can one do well in AP? There are many tips, and my TAs and I share them at every chance we get. I’ll say one of them that some people find surprising: Get as little help as you can manage. Don’t run to a TA office hour at the first sign of trouble. Try to fix things yourself as much as possible. Even if you end up not going anywhere and needing some TA help eventually, the time you spent thinking and debugging is never wasted.


Ansaf Salleb-Aouissi
Classes this semester/year:
COMS 4701 Artificial Intelligence 
COMS 3202 Discrete Mathematics 

What are your research projects at the moment?
My current research focuses on predicting and preventing adverse pregnancy outcomes like premature birth and preeclampsia.

I am also working on predicting the consequences of spine surgery like PJK (Proximal Junctional Kyphosis). On a more fundamental aspect, I study counterfactual explanations and physics law discovery from data. I strongly believe that machine learning will be a game changer in advancing science and medicine, in the next decade or so.

My overall focus is research and applications of AI for the benefit of science and education.

What type of student should apply to work on your research projects?
In general, my projects require students with backgrounds in machine learning/artificial intelligence. Whenever possible, I also involve students without experience to work on real-world problems, do data cleaning, and just learn how research goes. I am fully staffed this Fall though!

Why did you decide to become a professor?
I loved teaching ever since I was a kid. I recall mimicking my teachers, solving problems with chalk and board at home, and explaining the solution steps to an imaginary audience.

Later in high school and college, I volunteered in tutoring my little neighbors and siblings. For me, teaching is a duty, a way to give back to society. It is one of the most demanding yet satisfying activities that teaches, in return, compassion and selflessness, and pushes the frontier of one’s own knowledge.

What do you like about teaching?
I like breaking up concepts to make them accessible to all students. It is for me a way to be creative about how to present things. I also genuinely care about how students perceive a new concept; I care about their self-esteem and happiness in my class.

I believe in a stress-free and inclusive teaching environment that can reach every student in class despite their difference in backgrounds and preparation.

Do you have a favorite story about your students that you tell people about?
I have many stories of students who came to class not on good terms with mathematics but ended up doing very well. Discrete math for me is the reconciliation of many young students with math that they perceived in high school as an inaccessible subject but then they discover the beauty of proofs and critical thinking, and how math is not boring but an engaging subject that sparks creativity.

What are your tips for students so they can pass your classes?
Just sit, relax, and enjoy learning the material. Make sure you do your own homework all by yourself and get the most out of it. Feel free to reach out to me anytime if you have any questions, and I will be more than happy to help. Then, not only you will pass my class, you will excel and thrive.

 


Nakul Verma
Classes this semester/year:
COMS 4771 Machine Learning
COMS 4774 Unsupervised Learning

What are your research projects at the moment?
I like working on various aspects of machine learning problems and high-dimensional statistics. I am especially interested in analyzing how data geometry affects the learning problem. My theoretical projects include studying how to design effective machine learning algorithms in non-Euclidean spaces. My practical projects include developing algorithms and systems to do data analysis on domain-specific structured data, such as clustering mathematical documents or discovering patterns in neuroscience data.

What type of student should apply to work on your research projects?
Students with a strong mathematical background, who are interested in unsupervised learning or topological data analysis.

Why did you decide to become a professor?
Being a professor not only provides me the freedom to study a topic in greater depth but also gives me the opportunity to learn from and interact with world-class students and faculty. I find getting to know students and helping them achieve their goals extremely rewarding.

What do you like about teaching?
Teaching lets me share my passion for the subject with my students. It is very fulfilling to see students apply what they learned in class to their ML-related projects outside of class in creative ways.

Do you have a favorite story about your students that you tell people about?
I occasionally get students who are very stressed about taking my class because of “all the math” that is involved. I once had a student who was very underprepared to take my class. They let me know their concerns at the beginning of the semester, so we developed a plan to strengthen their math skills alongside doing their regular assignments. It was a struggle, and at times I really thought that the student would not be able to succeed. But to my pleasant surprise, this student ended up doing very well in class. I was truly impressed by what they were able to accomplish over the semester. I like to share this story to remind everyone, including myself, that planning ahead, communicating, and devoting time can and does make a remarkable difference.

What are your tips for students so they can pass your classes?
I think “passing” my class is easy, but to excel I recommend getting a solid understanding of the basics and doing consistent work throughout the semester.