Important Note: I do not have control over individual enrollment for any of my courses. If you need help adding a course, speak with your academic advisor.
For a full list of courses I've taught, check out my CV.
This undergraduate course introduces students to the landscape of IST, where information, people, and technology intersect. Uses for information technology are staggering in their richness and complexity: they include entertainment, social interaction, productivity, safety, finance, research, education, transportation, and nearly every sector of human activity. Students in this course examine how information technology interacts with our culture, and how those interactions will shape the future of information technology and our society. This course satisfies Penn State's first-year seminar requirement and also satisfies a GS General Education requirements for students not in IST.
This course introduces students to the expectations of college and the landscape of data science. Uses for data science are staggering in their richness and complexity: they include entertainment, social interaction, productivity, safety, finance, research, education, transportation, and nearly every sector of human activity. Students in this course will gain an understanding of college expectations and resources, and they will critically explore applications of data science, with particular attention to their own interests and future goals.
This is a graduate course on selected topics in natural language processing, covering sentiment analysis, computational semantics, and computational discourse. We explore each of these topics in a module that begins with background material and then changes over to recent research results. Students also work in groups on term projects, which I encourage them to submit for publication. (See my Final Project Hall of Fame below.)
To be prepared for this course, I recommend that students (1) have some prior experience with machine learning or natural language processing (either is fine) and (2) be comfortable with programming in Java or Python (e.g., familiar with the concepts in the first half of Python.org's Python tutorial).
I taught this course at Carnegie Mellon University in Spring 2014 and at the University of Cincinnati in Fall 2017.
This course introduces students to methods that enable computers to extract structure and meaning from human languages. It covers topics such as (but not limited to) morphology, language modeling, syntactic parsing, sentiment analysis, meaning representations, dialogue systems, question answering, and machine translation. Proficiency in Python and/or Java is a prerequisite for this course.
I encourage students in some of my courses to submit modified versions of their final project reports to conferences, journals, and workshops. In Spring 2019 I began keeping track of final project teams that took up the challenge. Accepted papers appear with full citations. To protect anonymous submissions, I include only brief descriptions of other papers.
The course included a semester-long project to build question answering and question generation systems that operate on Wikipedia articles. Students worked in small teams of three to five, and they competed to produce the best-performing systems. You can watch the final reports from the top three teams below.
I can provide a statement of teaching philosophy and teaching references upon request.