Udacity CS253: Web Development

Web Development
How to Build a Blog
Instructor: Steve Huffman, Reddit
Zeitraum: Oktober 2012
Status: habe ich gemacht, inkl. Exams und Zertifikat

Anmerkung: Hat sicher seine Schwächen aber fand ich ganz nützlich und gut, man baut eine kleine Webanwendung auf der Google App Engine.


Course Syllabus

Lesson 1: How the Web Works (2.5 hours)

In this first lesson, you will learn basic concepts regarding the internet, browsers, HTML, and how all those elements fit together. You’ll start using HTML (HyperText Markup Language) to format content for webpages. Then you’ll get to see the mechanics of how the web works: HyperText Transfer Protocol (HTTP) via GET and POST requests. In the first problem set, you will get a simple website up and running with the Google App Engine platform.

Lesson 2: Forms and Input (4 hours)

In this second lesson you will learn about forms, a very common way to obtain input from users. You will learn how to get and process user input from webpages using Google App Engine to get a live form up and running. By the end of this lesson, you will know how to validate user input and securely obtain data from users.

Lesson 3: Databases (6 hours)

You learned about getting all sorts of information from users in the previous lesson, but what do you do with it once it’s in your hands? You store it! In this third lesson, Steve will dive in and teach you what you need to know about databases, the final piece you need to start setting your blog in motion! You will learn about various database technologies, SQL, and the Google App Engine Datastore.

Lesson 4: User Accounts and Security (6 hours)

In this fourth lesson, you will learn the fundamentals of authentication and security, which are very relevant topics in almost any web application built today. We’ll start by examining how websites use cookies to authenticate users and how we can manage cookies from the backend of a web application. You will implement a login system for your blog and learn how to use hashing to securely read and transmit user passwords.

Lesson 5: APIs (4.5 hours)

Up until now, your programs have generated HTML that a browser can use to render a web page for the user. In the digital world, however, applications and websites communicate not only with people, but also with other applications and websites. By the end of this lesson, your blog will communicate with humans as well as with other computers. Your web application can generate data in formats such as XML and JSON that other computers can access through an API, or application programming interface. Those computers, in turn, can build websites or services that interact with your data. You’ll first learn how to use APIs, and then build web applications as services so that other computers can glean data from your application. We will look at both XML and JSON by investigating how to read them, how to interpret them, and how to manipulate them.

Lesson 6: Caching (3.5 hours)

In this lesson, we will explore how to prepare your applications to run at a large scale. So far, we’ve written ‘toy’ applications for just one or two users. If we want to start writing apps for thousands or, perhaps, even millions of users, then obviously we’ll need to think about scaling. When we talk about scaling, this may mean running your application on multiple machines, storing huge amounts of data, or consuming large amounts of bandwidth. In particular, we will learn about caching, including the uses of caching, why you might want to cache, and specific caching implementations such as Memcached.

Lesson 7: Scaling Up (2.5 hours)

In this last lesson of the course, Steve has prepared a relaxing, story-time segment. You will hear web development anecdotes from people who have been through it all. You will enjoy interviews with engineer Neil Williams from Reddit, and engineer Chris Chew from Udacity. They will share their experiences on working with web applications, and you will see how all that you’ve learned in this course comes into the big picture.

Final Project (8 hours)

For the final project, you will build a fully functional wiki – a website that allows any page to be edited. The wiki you will be able to build by the end of the course will feature the following:

Easily create new pages of the site by using the wiki edit capabilities. You should be able to enter a non-existent URL, redirect to an edit page, and create a new page from there.
Have user accounts so that logged-in users only will have edit privileges.
Use caching functionality.
Have a history section which displays the different wiki versions that have existed.