Approx. {{courseState.expectedDuration}} {{courseState.expectedDurationUnit}}

Assumes 6hr/wk (work at your own pace)

Join {{92258 | number:0}} Students
view course trailer
View Trailer

Course Summary

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.

Prerequisites and Requirements

This course assumes previous programming experience, comparable to what is covered by the Udacity CS101 course.

See the Technology Requirements for using Udacity.

What Will I Learn?


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

Instructors & Partners

Westley Weimer is a Professor of Computer Science at the University of Virginia where he teaches computer science and leads research in programming languages and software engineering. He has won three awards for teaching and over half a dozen "best paper" awards for research. He has MS and PhD degrees from the University of California at Berkeley.

track icon

View more courses in Software Engineering

Frequently Asked Questions

When does the course begin?

This class is self paced. You can begin whenever you like and then follow your own pace. It’s a good idea to set goals for yourself to make sure you stick with the course.

How long will the course be available?

This class will always be available!

How do I know if this course is for me?

Take a look at the “Class Summary,” “What Should I Know,” and “What Will I Learn” sections above. If you want to know more, just enroll in the course and start exploring.

Can I skip individual videos? What about entire lessons?

Yes! The point is for you to learn what YOU need (or want) to learn. If you already know something, feel free to skip ahead. If you ever find that you’re confused, you can always go back and watch something that you skipped.

How much does this cost?

It’s completely free! If you’re feeling generous, we would love to have you contribute your thoughts, questions, and answers to the course discussion forum.

What are the rules on collaboration?

Collaboration is a great way to learn. You should do it! The key is to use collaboration as a way to enhance learning, not as a way of sharing answers without understanding them.

Why are there so many questions?

Udacity classes are a little different from traditional courses. We intersperse our video segments with interactive questions. There are many reasons for including these questions: to get you thinking, to check your understanding, for fun, etc... But really, they are there to help you learn. They are NOT there to evaluate your intelligence, so try not to let them stress you out.

What should I do while I’m watching the videos?

Learn actively! You will retain more of what you learn if you take notes, draw diagrams, make notecards, and actively try to make sense of the material.