Skip to content

Latest commit

 

History

History
91 lines (57 loc) · 8.6 KB

README.md

File metadata and controls

91 lines (57 loc) · 8.6 KB

Web Programming

CSC 435 Spring, 2019

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

General Information

Course Objective

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.

  1. HyperText Markup Language (HTML) for authoring web pages
  2. Cascading Style Sheets (CSS) for supplying stylistic information to web pages
  3. JavaScript and its libraries (jQuery, D3) for creating interactive web pages
  4. PHP Hypertext Processor for generating dynamic pages on a web server
  5. Asynchronous JavaScript and XML (Ajax) for enhanced web interaction and applications
  6. JSON for transferring data
  7. Structured Query Language (MySQL) for interacting with databases 8.Git and Github tools for version control and web hosting.

Learning outcomes:

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.

Grading:

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.

Creative Project

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.

Attendance policy

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

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.

Course Schedule

Day Lecture Reading Homeworks
Tuesday, Jan 15 Lecture 1: Internet and Web Getting Started With The Web (https://www.google.com) Homework 1(receipe) out
Friday, Jan 18 Lecture 2: HTML Intro to HTML (https://developer.mozilla.org/en-US/docs/Learn/HTML) Creative Project Week 1
Friday, Jan 25 Lecture 3: CSS Selectors CSS selectors (https://developer.mozilla.org/en-US/docs/Learn/CSS)
Tuesday, Jan 29 Lecture 4: CSS IDs CSS: IDs and Classes (https://developer.mozilla.org/en-US/docs/Learn/CSS/Styling_text) In-Class: resume.html
Friday, Feb 1 Lecture 5: CSS box model CSS Box model (https://developer.mozilla.org/en-US/docs/Learn/CSS/Styling_boxes)
Tuesday, Feb 5 Lecture 6: CSS lay-out CSS lay-out (https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout) Creative Project 1
Friday, Feb 8 Lecture 7: CSS review CSS page layout review (http://www.webstepbook.com/samples/ch04-layout.pdf) Homework 2(movie review)
Tuesday, Feb 12 Lecture 8: Starting JavaScript JavaScript Data Types (https://eloquentjavascript.net/01_values.html) Homework 3
Friday, Feb 15 Lecture 9: JavaScript Function, Event-driven Programmiong JavaScript Function and Array (https://eloquentjavascript.net/04_data.html) Homework 3
Tuesday, Feb 19 Lecture 10: JavaScript Objects JavaScript objects (https://eloquentjavascript.net/06_object.html) Lecture 10: In-class Exercises
Friday, Feb 22 Lecture 11: Unobtrusive JS, , Events, OOP Unobtrusive JS (https://www.codeproject.com/Articles/878436/Lets-Write-Unobtrusive-JavaScript) Lecture 11:In-class Exercises
Friday, Feb 26 Lecture 12: JavaScript Objects JS Objects (http://eloquentjavascript.net/04_data.html) Lecture 12 In-class Exercises
Tuesday, March 5 Lecture 13: JavaScript Objects JS Timers, Events, Objects (http://eloquentjavascript.net/04_data.html) Lecture 12 In-class Exercises