Course Information

Introduction to Programming for Linguists

Dr. Philip Resnik

You're in for the shock of your life: Programming is fun.

What's new

General description

Course accounts Useful resources Class information

General Course Information

Tuesdays and Thursdays, 9:30-10:45am,
Marie Mount Hall 1108B

Philip Resnik,
Office hours: Marie Mount Hall 1401C, day/time TBA

Noah Smith,
Office hours: TBA


Course Description

General statement. This course is a one-semester introduction to computer programming, intended for linguists and other non-computer-scientists who wish to acquire skills and fundamental programming concepts. It is not intended for students who already have significant programming experience and wish to get introduced to another language or two. The majority of the course will teach Common LISP, with the last section of the course covering Perl. Students who take this course and like it are encouraged to take Linguistics 645, Introduction to Computational Linguistics, where they will have the opportunity to further apply their programming expertise.

Philosophical statement. I believe that the role of an instructor in a computer programming course is primarily to help students teach themselves. Programming skill cannot be taught, it must be acquired, and the only way to acquire it is to do a great deal of programming. Students should expect to get out of the course what they put into it - nobody ever became decent at programming without spending a lot of time sitting in front of the computer making frustrating mistakes. On the other hand, few people other than programmers have ever experienced the sense of triumph that comes with having succeeded at getting the computer to do what you wanted it to! I'd strongly recommend you take a look at Peter Norvig's comments on learning to program for some thoughts on this from a veteran.

Practical statement. A course of this kind, by itself, will almost certainly not provide students enough of a resume item to convince prospective employers that they have adequate programming skills for a position that requires real programming. (See the CORPORA mailing list, August 1998, for an interesting discussion.) And Common LISP is not a programming language for which programmers are highly in demand in today's job market. However, this course will provide a solid foundation for students to build on: Common LISP is a great first language to learn, and students will come out equipped to do programming in service of their own research, to transfer their skills to new programming languages, and to apply their knowledge to coursework and research projects in computational linguistics. I've had students go on from this to take programming courses in the computer science department and they say it was great preparation; I also recently received a nice e-mail message from a former linguistics student who is applying what he learned in the course on a day to day basisl.

Statement about statements. :-) As always, I expect to be educated by the process of teaching and by my students as the semester progresses!

Course Requirements and Grading

  1. Exercises (30%). These will generally be distributed with solutions, so there is no excuse for failing to turn in code that works. Students are expected to attempt to solve exercises first without reference to the solutions, but can refer to, and analyze the solution if they hit a roadblock. (Analyzing someone else's code is itself a skill worth mastering!) Students will turn in (a) a program listing, and (b) a trace of the code working successfully. Students are encouraged to work together, but every assignment must contain one of the following statements:

    1. I completed this assignment solo.
    2. I collaborated to a small extent with [name(s)] on this assignment.
    3. I collaborated extensively with [name(s)] on this assignment.

  2. Programming assignments (40%). These are larger in scope than the exercises, and will not be distributed with solutions.

  3. Final project (30%). Final project ideas will be discussed and projects selected in consultation with the instructor. Students are welcome to help each other out (especially tracking down bugs late at night!), but each will have to be able to turn the project in with a truthful statement that the assignment represents his or her own work.

  Philip Resnik                        Phone:   (301) 405-6760
  Department of Linguistics            Fax:     (301) 405-7104
  1401 Marie Mount Hall
  University of Maryland 
  College Park, MD 20742 USA

By far the best way to reach me is by e-mail to