Instructor: Bei Xiao, American University Location: DMTI Room 110 Office: DMTI Room 204 First Class: Jan 15th
Office hour: Tuesday, 3-4pm, Thursday, 11-noon or by Appointment
The Web is intertwined with our lives. No matter if you decide to be a politician, a musician, a small business owner, a scientist, an artist, a doctor, a journalist, or purely an interesting person, web design is an extremely useful skill. Web development is useful in advertising (personal homepages), entrepreneurship, (web API), journalism (news media and blog), multi-media (Pinterest), social networks (Facebook LinkedIn), e-commerce (Amazon), user experiences and crowd-sourcing (Amazon Mechanical Turk), and online games (Phantasy star online).
This course is an introduction to programming for the World Wide Web. We will cover all the major pieces of how websites work. This will include the relationship between clients and servers, how web pages are constructed, and how the Internet works. We will NOT focus on how to stylize a website. Students who are interested in web design should take courses from the Graphic Design Program.
We will examine several technologies in various depths, though our majority of time will spend on JavaScript and its libraries.
- HyperText Markup Language (HTML) for authoring web pages
- Cascading Style Sheets (CSS) for supplying stylistic information to web pages
- JavaScript and its libraries (jQuery, D3) for creating interactive web pages
- PHP Hypertext Processor for generating dynamic pages on a web server
- Asynchronous JavaScript and XML (Ajax) for enhanced web interaction and applications
- JSON for transferring data
- Structured Query Language (MySQL) for interacting with databases 8.Git and Github tools for version control and web hosting.
The course is NOT simply teaching you how to build a web side. You can learn this from free online tutorials. However, the expected learning outcome of the course is to have a deep understand the fundamental technology and principles behind web applications so that you can adapt to any new programming languages and APIs you might encounter in your career. You will also be expected to learn how to debug your own code, which is an important skill of software engineering. Of course, you will be acquiring skills about building a dynamic user-friendly website that interacts with database.
Projects are graded on the Faculty’s computer with the source code submitted on the blackboard. Make sure the code COMPILE and RUN smoothly with all three browsers (Chrome, Safari, Firefox). Homework can’t be graded with screen shots!
Graded work will receive categorized point values, with the following categories and their respective weights:
60% individual assignments (approximately 5-6 projects)
10% Mid-term exam (multiple choices and short programming exercises)
10% Creative project (build your own web app)
10% Final Project
10% In-class exercises. These are short tutorial-like exercises, such a simple maze.
To give you a chance to play around with the technologies we’re learning, this semester one of your homework assignments will be to write a user response website from scratch, entirely of your own design.
Each week, there will be some requirements that you have to meet, but the requirements don’t force you to have any particular content, layout, color scheme, feel, etc – you’ll make that yourself.
The end project of your creative website will be an interactive crowd-sourced user-response web app. At the end, the working project can also be sent to Amazon Mechanical Turk or other server to collect real-time user responses from the crowd. What type of data do you want to collect? It is entirely up to you (e.g. neighborhood safety rating, movie reviews, labeling photos, political surveys, etc). This project will allow you to learn how to use front-end design, create interactive user experiment and collect data, real-time data visualization, back-end data storage and analysis, as well as interacting with databases and whatever tools you came across.
It is an interactive class with lots of live demos and discussions. Missing a class must be accompanied by written medical proof in advance (at least 3 days) and athletes must submit written evidence before they miss classes for sports events. Without any advanced written notice, missing 2 classes will result in zero attendance score. Missing one class without written request will result in 2% reduction in attendance score.
In-class quiz, which will be randomly assigned, cannot be made up.
Late Policy: Homework assignments are usually individual programming projects. All assignments will be submitted electronically on Blackboard, and will be due at 11:59 pm on the due date. No assignments are accepted via email.
Assignments must be submitted by the due date to receive credits.
Each late homework will receive 5% automatic reduction for each late day. No homework is accepted 5 days after the due date.