Linguistics 435 | 555
(Foundations of | Programming for) Computational Linguistics
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:
Course website: http://cl.indiana.edu/~md7/14/555/
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.
|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.
|Midterm exam||20%||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 (http://www.iu.edu/~code/). 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; http://www.indiana.edu/~iubdss/).
(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.
|Aug.||25||Intro to class/programming (.pdf, 2x3.pdf)||ABD, ch. 1|
|27||Unix (.pdf, 2x3.pdf)|
|Sep.||1||Labor Day, no classes|
|8||Intro to python (.pdf, 2x3.pdf)||ABD, ch. 2; (MP, ch. 1)|
|10||Lists & Tuples (.pdf, 2x3.pdf)||ABD, ch. 10; (MP, ch. 2)||A1 due|
|15||Lists & Tuples||ABD, ch. 12; (MP, ch. 3)|
|17||Conditionals & Loops (.pdf, 2x3.pdf)||ABD, ch. 5.1–5.7|
|22||Conditionals & Loops (.pdf, 2x3.pdf)||ABD, ch. 7||A2 due|
|24||Conditionals & Loops (.pdf, 2x3.pdf)|
|29||File input & output (.pdf, 2x3.pdf)||ABD, ch. 14|
|Oct.||1||Strings (.pdf, 2x3.pdf)||ABD, ch. 8; (MP, ch. 4)||A3 due|
|6||Strings||ABD, ch. 9|
|8||NLTK overview (.pdf, 2x3.pdf)||NLTK, ch. 1||A4 due|
|13||Midterm review (.pdf)|
|20||NLTK||NLTK, ch. 1 (cont.)|
|22||Dictionaries (.pdf, 2x3.pdf)||ABD, ch. 11|
|27||Dictionaries||ABD, ch. 13|
|Nov.||3||Functions (.pdf, 2x3.pdf)||ABD, ch. 3|
|5||Functions||ABD, ch. 5.8-5.14, ch. 6||A6 due|
|10||Modules (.pdf, 2x3.pdf)|
|12||Regular expressions (.pdf, 2x3.pdf)||MP, ch. 5|
|17||Regular expressions||A7 due|
|19||NLTK tagging||NLTK, ch. 5|
|24||Thanksgiving break, no classes|
|26||Thanksgiving break, no classes|
|Dec.||1||NLTK tagging||NLTK, ch. 5 (cont.)||A8 due|
|8||Testing code||A9 due|
|10||Final review (.pdf)|
|17||FINAL 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.)