Linguistics 435 | 555
(Foundations of | Programming for) Computational Linguistics
Fall 2014

Course goals This course is geared towards students in Computational Linguistics and Linguistics with little or no experience in programming. It will lay a platform for computational linguistics, by establishing the fundamentals of programming and computer science and covering practical skills for text processing. While we will work with Python and the Natural Language Toolkit (NLTK), the main focus is on introducing basic concepts in programming, such as loops or functions. In contrast to similar courses in Computer Science, we will concentrate on problems in Computational Linguistics, which generally involve managing text, searching in text, and extracting information from text. For this reason, one part of the course will concentrate on regular expression searching.

Through lectures, lab sessions, and (bi-)weekly assignments, students will learn the essentials of Python and NLTK and how to apply these skills to natural language data.

By the end of the course, you should be able to:

Meeting time: MW 11:15am–12:30pm

Classroom: Lindley Hall (LH) 030

Course website:

Assignments, slides, etc. will be posted here. ... I will, however, sometimes put data on oncourse, and I will always note that it is on oncourse.

Credits: 3

Course prerequisites: None. That means that no prior programming experience is expected.

Instructor: Markus Dickinson

Office: Memorial Hall (MM) 317

Phone: 856-2535


Office hours:

R 11:00am–12:00pm
or by appointment

Readings: There is no required textbook, but we will make reference to various resources throughout the semester. My attitude is that, while I will provide recommended readings, you will be sort of “on your own” in terms of finding useful materials to read—just be sure that what you’re looking at is for Python 3, not Python 2. There are paper versions of many of the links listed below, but they are all available freely online.

Again, note that we will be using Python 3. While you can easily transfer the learning of Python 3 to Python 2, many things will not work right if you are using Python 2.

Grading: Grades will be based on classroom discussion/participation, homeworks, a midterm exam, and a final examination.

Participation 10%
Homeworks 50%(10@5% each)
Midterm exam20%Due Wednesday, October 15 by classtime
Final exam 20%Due Wednesday, December 17 @ 5:00pm

Lab space: Python 3 should be installed in Mac labs on campus. You are also free to use the machines in Memorial Hall (MM) 401, usually open during normal working hours, when the room is not otherwise in use.

Academic Integrity: (from the Dean for Academic Standards and Opportunities)

Academic Integrity: As a student at IU, you are expected to adhere to the standards and policies detailed in the Code of Student Rights, Responsibilities, and Conduct ( When you submit an assignment with your name on it, you are signifying that the work contained therein is all yours, unless otherwise cited or referenced. Any ideas or materials taken from another source for either written or oral use must be fully acknowledged. If you are unsure about the expectations for completing an assignment or taking a test or exam, be sure to seek clarification beforehand. All suspected violations of the Code will be handled according to University policies. Sanctions for academic misconduct may include a failing grade on the assignment, reduction in your final course grade, a failing grade in the course, among other possibilities, and must include a report to the Dean of Students who may impose additional disciplinary sanctions.

Students with Disabilities: Students who need an accommodation based on the impact of a disability should contact me to arrange an appointment as soon as possible to discuss the course format, to anticipate needs, and to explore potential accommodations.

I rely on Disability Services for Students for assistance in verifying the need for accommodations and developing accommodation strategies. Students who have not previously contacted Disability Services are encouraged to do so (812-855-7578;

(Tentative) Schedule: The schedule is subject to change—and I can basically promise you that it will change, depending upon which concepts need more or less clarification. Links to notes and homeworks will be posted on the course website.

MonthDateTopic Readings Assignments

Aug. 25Intro to class/programming (.pdf, 2x3.pdf) ABD, ch. 1
27Unix (.pdf, 2x3.pdf)

Sep. 1Labor Day, no classes
3Unix KWC

8Intro to python (.pdf, 2x3.pdf) ABD, ch. 2; (MP, ch. 1)
10Lists & Tuples (.pdf, 2x3.pdf) ABD, ch. 10; (MP, ch. 2)A1 due

15Lists & Tuples ABD, ch. 12; (MP, ch. 3)
17Conditionals & Loops (.pdf, 2x3.pdf) ABD, ch. 5.1–5.7

22Conditionals & Loops (.pdf, 2x3.pdf) ABD, ch. 7 A2 due
24Conditionals & Loops (.pdf, 2x3.pdf)

29File input & output (.pdf, 2x3.pdf) ABD, ch. 14
Oct. 1Strings (.pdf, 2x3.pdf) ABD, ch. 8; (MP, ch. 4) A3 due

6Strings ABD, ch. 9
8NLTK overview (.pdf, 2x3.pdf) NLTK, ch. 1 A4 due

13Midterm review (.pdf)

20NLTK NLTK, ch. 1 (cont.)
22Dictionaries (.pdf, 2x3.pdf) ABD, ch. 11

27Dictionaries ABD, ch. 13
29Dictionaries A5 due

Nov. 3Functions (.pdf, 2x3.pdf) ABD, ch. 3
5Functions ABD, ch. 5.8-5.14, ch. 6 A6 due

10Modules (.pdf, 2x3.pdf)
12Regular expressions (.pdf, 2x3.pdf) MP, ch. 5

17Regular expressions A7 due
19NLTK tagging NLTK, ch. 5

24Thanksgiving break, no classes
26Thanksgiving break, no classes

Dec. 1NLTK tagging NLTK, ch. 5 (cont.) A8 due
3Testing code

8Testing code A9 due
10Final review (.pdf)

17FINAL DUE (5pm)

If we have time, we’ll also look at classes and objects (ABD, ch. 15–18).

Disclaimer This syllabus is subject to change. All important changes will be made in writing, with ample time for adjustment. (Midterm and final dates, however, will not change.)