CLMS Survival Guide

Tips and tricks from past CLMA/CLMS students to help future generations. We learned the hard way, and you will too, but maybe not so much if you pay attention to these notes:


  • Work together: You will get more out of this program and do better you collaborate. The faculty encourage collaboration.
  • Introduce yourself in the virtual classroom: add a profile photo and your full name to GoPost (the UW message board system) and any other place you might find so fellow CLMS souls may introduce themselves online and in the classroom. A number of professors use GoPost a lot, so the full names and photos help you and others keep track of who is saying what in a discussion. (It's not always easy to remember that bfriendly4279 is Bob, the intelligent person sitting two seats away from you in class. Give you classmates some help!) -- Jeffry Scott - 15 Apr 2009
  • Ask questions: Apply the 10 minute rule. If you've thought about it for 10 minutes without getting to an answer, post on GoPost (or wherever) and then go back to thinking about it.
  • Use the network: CLMS faculty are here to help connect you to jobs. When you apply for jobs or internships, do it in consultation with us, and we can give you introductions.
  • Start early: On assignments, job seeking, thesis topics, etc.
  • Spread out classes from the winter quarter: After having survived winter quarter 2008, I think that I would do things differently if I had known then what I know now. Many of us full time CLMS students took Ling 567, 571 and 572 all at the same time. Each of these has an intense work load, one assignment per week, so for much of the quarter, it was one assignment every 2 days (luckily the due dates were spread out over the week). For weeks 2,3 and 4 of the quarter, I spent a total of 72, 69 and 51 hours on these three assignments. I am not complaining about the work load. Each of these classes was very appropriate for the CLMS degree. I thoroughly enjoyed all of the assignments. It is just that I would not choose to take these 3 classes in the same quarter again. -- bobnew - 31 MAR 2008
  • Add the Treehouse Wiki feed to your RSS browser: a great way to track changes to the Treehouse Wiki is to add it's RSS feed to your email client (Microsoft Outlook, Thunderbird) or your favorite RSS reader. Go to the main Treehouse Wiki page and select the RSS feed icon on the left, or select the RSS feed [[Main.WebRss][. -- Jeffry Scott - 15 Apr 2009 here]]
  • Prepare for interviews: know the difference between discriminative and generative models - this is usually an important question that will show that you know what you are talking about. If you're interviewing with one of the giants, like Google, brush up on fundamental CS concepts like space/time complexity of algorithms. -- Tom Amundsen - 20 Nov 2009

Course specific

Ling 473

  • I purchased the Mathematica (software) at academic price from the UW bookstore and it helped me with the statistics homeworks quite a lot.

Ling 566

  • Work together! (It bears repeating.)
  • Read Chapter 15 (Features and Unification) of 'Speech and Language Processing' by Jurafsky & Martin before the quarter starts. The 'pizza lecture' might not be enough of a formal foundation for some.
  • Read the glossary at the back of the book. Explanations of all those mysterious linguistics terms!
  • Read the book before coming to lecture.
  • Xerox the entire appendix A of the textbook and cut out each type and lexical entry. Paste them onto a gigantic piece of craft paper in a tree hierarchy so you can visualize the inheritance. I wish I had done this prior to just before the final exam.
  • Get a copy of Linguistic Fundamentals for NLP: 100 Essentials from Morphology and Syntax (Bender 2013) and look up concepts that are new for you there. The book explains important things in relatively simple terms, and it is easier to read about them there first, then try to understand the HPSG analysis of these things. Sections #90 and #91 (raising and control) may be particularly helpful.

Ling 570

  • This class often lets you choose which programming language you want to use, as long as your code can be run on patas. Java, Perl, Lisp, Python, C# (Mono), C, C++, and others (?) are all installed and available for you to use so choose the one that you're most comfortable with.
  • Work in groups to write fairly detailed pseudocode before you start individual programming. When you work alone, even if you plan to think everything through first, the temptation to just get to the coding is sometimes too strong -- and you can pay for it dearly in some of the more involved assignments. when you work in a team, you will keep each other from rushing to implement things (not to mention from procrastination and surfing the web!) and this will make the harder assignments a lot less painful. This also applies to 572.

Ling 571

Ling 572

  • For folks planning to use Python :
  • Please take the time to get familiar with numpy . It is very useful for matrix computations, constructing confusion matrices and computing accuracy. The numpy example list is a very useful resource. The functions numpy.zeros((x,y)), array.sum, array.trace are particularly useful.
  • Also learning to profile python code using "python -m cProfile" can be extremely useful when you have severe performance issues and want to quickly narrow down the offending function/method that is badly affecting the performance.

Ling 573

Ling 567

  • To get the most out of this challenging class, use a little time during Christmas break to install your linux machine, read the Copestake text, and play with the LKB before the first class meeting. You won't be sorry.
  • Contact gslayden at u if you want to use Windows for this class and be an early adopter of the 'agree' grammar engineering environment.
  • Apply the 10 minute rule!
  • Set a very serious deadline for when you will finish implementing, each week. Make yourself stop after you spent the hours that you allocated for the implementation. Allocate at least almost the same number of hours for the writeup. While working on the writeup, you will find bugs in your implementation and will need time to fix them or at least understand them well in order to be able to explain them clearly in the writeup. Remember (and remind yourself often): you do not need to implement everything 100% in this class to get 100% for the assignment. If you don't follow this rule, the number of hours you spend on this class can get unreasonable -- but it doesn't have to be this way!

-- EmilyBender - 05 Dec 2007

Topic revision: r15 - 2015-01-30 - 00:50:00 - olzama

This site is powered by the TWiki collaboration platformCopyright & by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Privacy Statement Terms & Conditions