Linguistics 445/515
The Computer and Natural Language
Autumn 2010

Course goals

Present-day computer systems work with human language in many different forms, whether as stored data in the form of text, typed queries to a database or search engine, or speech commands in a voice-driven computer system. We also increasingly expect computers to produce human language, such as user-friendly error messages and synthesized speech. Through selected readings, exercises, demonstrations and Python programming, this course will: a) survey a range of issues relating natural language to computers, covering real-world applications, b) provide practical experience about representation and use of natural language on computers, and c) illustrate key principles of natural language processing through programming. Emphasis will be put on basic natural language processing strategies and technologies using linguistic theory

Topics include text encoding, search technology, tools for writing support, machine translation, dialogue systems, computer-aided language learning, and the social context of language technology.

Some details

Meeting time: MWF 11:15am-12:05pm
Classroom: Lindley Hall (LH) 030
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: (at least for the first week)

M 10:00-11:00am
R 11:00am-12:00pm
  or by appointment

Course requirements:

There will be various reading selections throughout the quarter, but most of the material will be introduced solely in the classroom. There will be approximately one exercise sheet, or homework, every two weeks. These assignments give you the opportunity to explore new aspects of the topics discussed in class, as well as to ensure that you are comprehending the material covered in class. These assignments will occasionally also give you the opportunity to practice your programming skills. Additionally, there will be in-class exercises which are included in your participation grade.


There is no textbook for this course, but there will be readings assigned periodically throughout the course, including portions from a textbook-in-progress.

For each unit, slides will be available from the webpage before class. These slides are meant to aid classroom discussion and cannot replace actually being in class.


Grades will be based on classroom discussion/participation, homeworks, a midterm exam, and a final examination. For 515, there will be an additional final project.

L445 grading:
HOMEWORKS 40% (8@5% each)
MIDTERM 25% Wednesday, October 13 @ 11:15am
FINAL 25% Wednesday, December 15 @ 10:15am

L515 grading:
HOMEWORKS 40% (8@5% each)
MIDTERM 18% Wednesday, October 13 @ 11:15am
FINAL 18% Wednesday, December 15 @ 10:15am
FINAL PROJECT 19% Thursday, December 16, by 5:00pm

Grading scale:

(Scores in percentages)

A+ 99-100 B+ 87-89 C+ 77-79 D+ 67-69 F 0-59
A 93-98 B 83-86 C 73-76 D 63-66    
A- 90-92 B- 80-82 C- 70-72 D- 60-62    

Make-up Policy:

If you plan on missing either the midterm or final, you will have to provide extensive documentation for your excuse. See me immediately if this is the case.

Final Project (L515):

For those enrolled at the 515 level, there is a final project requirement, the topics of which will be discussed individually with the instructor (beginning in October). The projects will generally be papers extending discussion of specific topics touched on in class, although they may also be implementations of a specific natural language processing algorithm (documented and evaluated) or evaluation of existing algorithms and software systems. The projects will be due on Thursday, December 16 at 5:00pm.


To assist you in learning how to think logically & algorithmically, you are going to be taught some fundamentals of programming, using the Python programming language. We will include this in various class sessions (not always listed on the syllabus). I expect that most of you have absolutely no experience in programming and might be a little (or a lot) scared of it, and so I want to be clear about a few points:

Academic Misconduct:

Academic misconduct is not allowed in this course. The Indiana University Code of Student Rights, Responsibilities, and Conduct ( defines academic misconduct as ``any activity that tends to undermine the academic integrity of the institution . . . Academic misconduct may involve human, hard-copy, or electronic resources . . . Academic misconduct includes, but is not limited to . . . cheating, fabrication, plagiarism, interference, violation of course rules, and facilitating academic misconduct'' (II. G.1-6).

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;

Computational Linguistics:

If you find yourself loving this material, I encourage you to come see me or Professor Sandra Kübler for more information about computational linguistics.


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.)


Links to notes and homeworks will be posted on the course website.

Month Date Topic Assignments
Aug. 30 Intro to class  
Sep. 1 Text & speech encoding: text (.pdf, -2x3.pdf)  
  3 Text & speech encoding: speech  
  6 Programming basics (.pdf, -2x3.pdf)  
  8 Searching (.pdf, -2x3.pdf)  
  10 Searching: internals (Handouts: 1, 2) HW1 due
  13 Searching: regular expressions (handout)  
  15 More Python (.pdf, -2x3.pdf)  
  17 Corpus annotation (.pdf, -2x3.pdf)  
  20 Writers' aids: spelling correctors (.pdf, -2x3.pdf) HW2 due
  22 Writers' aids: grammar correctors (parsing) (handout)  
  24 Writers' aids: grammar correctors (ngrams) (handout)  
  27 More Python (.pdf, -2x3.pdf)  
  29 Writers' aids HW3 due
Oct. 1 Writers' aids  
  4 Classifying documents (.pdf, -2x3.pdf)  
  6 Classifying documents  
  8 Classifying documents (.pdf, -2x3.pdf) HW4 due (code)
  11 Midterm review (handout)  
  15 Special session on grammatical error detection (.pdf, -2x3.pdf)  
  18 Cryptography (.pdf, -2x3.pdf) (from Jason Baldridge)  
  20 Cryptography  
  22 More Python (.pdf, -2x3.pdf) HW5 due
  25 Machine Translation (MT) (.pdf, -2x3.pdf)  
  27 Machine Translation (MT)  
  29 Machine Translation (MT)  
Nov. 1 Symbolic MT  
  3 Statistical MT  
  5 Statistical MT HW6 due (code)
  8 N-grams in Python  
  10 Statistical MT  
  12 Statistical MT  
  17 Dialogue systems: dialogue (.pdf, -2x3.pdf) (corpus)  
  19 Dialogue systems: chatterbots (slides - from Jason Baldridge)  
  22 N-grams in Python (.pdf, -2x3.pdf, files: furniture.txt, 1, 2, 3, 4, 5, 6, HW7 due
  29 Dialogue systems: modern systems  
Dec. 1 Computers and language learning (.pdf, -2x3.pdf)  
  3 Computers and language learning  
  6 Computers and language learning  
  8 Social context of language technology use HW8 due
  10 Final review (handout)  
  15 FINAL EXAM, 10:15am-12:15pm  
  16 FINAL PROJECT (L515) (details) due by 5pm