Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

University of Virginia

Programming Languages

University of Virginia via Udacity


This class will give you an introduction to the fundamentals of programming languages. Key concepts include how to specify and process valid strings, sentences and program structures.

Why Take This Course?

Take this class and learn how to build your own simple web browser complete with the ability to parse and understand HTML and JavaScript.


String Patterns

Finding and specifying classes of strings using regular expressions

Lexical Analysis

Breaking strings down into important words


Specifying and deconstructing valid sentences


Turning sentences into trees


Simulating programs

Building a Web Browser

Interpreting HTML and JavaScript


Exam testing your knowledge

Taught by

Wes Weimer

Related Courses


3.4 rating, based on 10 reviews

Start your review of Programming Languages

  • Anonymous

    Anonymous is taking this course right now.

    Taking the course now, after completing Udacity CS101 and Learn Python the Hard Way. The course is much less thorough than CS101 and many concepts are poorly explained.

    For example, after explaining briefly what a token is, the instructor will show a 3 minute video with him using a Lexer to go through tokens, (without any explanation of how it works, why he wrote it that way, what the code does, how it interprets tokens, or anything else), then assign homework problems where you have to make them. You end up rewatching the videos several times and looking for content outside of the class.

    You'll learn, but don't expect explanations as thorough as in CS101 and expect to do self learning just to keep up.
  • Mihai Vinaga

    Mihai Vinaga completed this course.

    This course is great. I've written this comment to get it's ratings up, it's unfair that it has only 3.5. If you have at least 2 years of programming under your belt then this is the course for you. The assignments can be a bit hard but not impossible as long as you read them carefully, a habit that I don't have which caused me a lot of pain in this course. A great course prof. Grossman is great and in my opinion if you didn't liked this course then you don't have enough programming experience to take it.
  • Anonymous

    Anonymous completed this course.

    I really enjoyed this class. It was difficult and a lot of work, but it really helped me understand the differences between programming languages and some of the trade-offs between them. It is not an introduction to programming course, you do need to understand basic programming, especially recursion. The languages taught are SML, Racket, and Ruby. In summary, a great course taught by a great professor. Definitely recommend this course and any other course Prof Grossman would teach in the future.
  • Anonymous

    Anonymous completed this course.

    It is interesting how Dan Grossman starts the class by telling you that all assignments are described precisely and with minimum words. Actually the assignments are easy (for experienced programmers) once you get around the terrible instructions. I asked a friend whose job it is to 'translate' government speak to plain english and he thought a lot of the descriptions were terrible. There were similar complaints on the forums. Maybe Dan Grossman needs to consider and take on some of the comments rather than just arrogantly dismissing them outright. I would not recommend this course at all.
  • Mark Henry Butler completed this course.

  • Thomas Kamara completed this course.

  • Sachin Patidar

    Sachin Patidar is taking this course right now.

  • Anonymous

    Anonymous completed this course.

Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free