Introduction to Computing
In this course we will provide a broad introductory overview of the discipline of computer science, with no prerequisites or assumed prior knowledge of computers or programming. A significant component of the course is an introduction to algorithmic concepts and to programming using Python; programming assignments will explore algorithmic strategies such as selection, iteration, divide-and-conquer, and recursion, as well as introducing the Python programming language. Additional topics will include: the structure and organization of computers, the Internet and World Wide Web, abstraction as a means of managing complexity, social and ethical computing issues, and the question "What is computation?" (Juniors and Seniors by waiver) (formerly CSCI 0101) 3 hr. lect./1 hr. lab
Natural Language Processing
In this course we will explore computational models for processing natural (human) language. We will introduce statistical and algorithmic techniques that are used to classify, generate, and understand language at the syntactic and semantic levels. We will explore applications such as parsing, information extraction, language modeling, and sentiment analysis. Assignments will involve constructing and modifying systems and will incorporate a variety of large corpora. We will also discuss the ethical concerns associated with current methods for collecting and labeling large corpora, and how language technologies might reflect and reinforce social hierarchies. This course fulfills the Responsible Computing requirement for the Computer Science major. (CSCI 0200 and CSCI 0201)
Individual study for qualified students in more advanced topics in computer science theory, systems, or application areas. Particularly suited for students who enter with advanced standing. (Approval required) 3 hrs. lect.
Areas of Interest
- Natural Language Processing
- Computational Social Science