ECS 89H - Beginning Web Programming
Spring 2016

CRN: #63572
Click here for the practice final.

Lecture: MWF, 2:10-3:00 pm, 158 Olson
Lab Hours: W 12:10-1:00 pm, W 3:00-4:00, and Th 11:00-12:00 in 67 Kemper Hall
Final: Sat 6/4, 10:30am - 12:30pm
Instructor: Prof. Nina Amenta
Office hour: Friday, 3:00-4:00pm, in 67 Kemper Hall
Teaching Assitant: Stewart He
Additional lab hours: Monday, 1:00-2:00pm and Tuesday, 1:00-2:00pm, in 67 Kemper Hall

Prerequisites: ECS 30 or equivalent programming experience. Basic programming skills and familiarity with the UNIX programming environment are required. All students should sign up for 4 units.

Introduction

This is a course on Web programming for lower-division students. We will develop simple Web applications, for instance to let a user search a database over the Web or to present dynamic information provided by a constantly updating online source as a graph or chart. These applications will include both browser-side and server-side programming. The focus will be on improving our programming skills, understanding the Web, and learning to see security holes, rather than on designing beautiful Web pages; although we will get some experinece with working towards an artist's design.

The course will be taught mostly in Javascript, with excusions into things we need like HTML and CSS, Bootstrap, Node.js, OAuth and a database package. We will learn about object-oriented programming and good Javascript style. Our server-side programs will use Node.js and run in the Unix operating system.

Format

This course will have weekly programming assignments, a midterm and a final.

Lectures

Assignments and Labs

Grading

Grades will be determined using this formula (approximately):

Programming assignments 40%
Midterm 25%
Final 35%

Policies

Late assignments: We will have a separate link on SmartSite for late assignments, usually open for a few days after the assignment is due. We will take off 20% for late assignments.

Collaboration and cheating: You should discuss the assignments with each other, and you should look at examples of similar programs or Web pages. But you are expected to turn in your own work. This means: you type in every line yourself, without looking at, or cutting and pasting, someone else's. You can look at someone else's program or Web page; but you should understand it, and then go off and write your own, when you're not looking at it.

Email: Class email is a business communication, not a casual text to a friend. Use complete sentences and punctuation. Use a greeting ("Dear Professor,") and a closing, ("Thanks, Karl"). Identify yourself. Address the Professor as Professor Amenta, Ms. Amenta, or just Professor.

Textbooks

We will refer to four textbooks. Two are free online, but you can buy them in hardcopy for convenience. The third is digital (pdf/mobi) and it costs a whole $9. The fourth is mostly free online but you need to buy it if you want to read the whole thing; this should not be necessary. Also, a major source of programming help and tutorials is W3Schools, which has chapters on HTML, CSS, Javascript, Bootstrap, SVG, node.js, JQuery, SQL, and much else, and the tutorials at the Mozilla Developers Network and the Javascript tutorials.

Reading (from last year; will be updated)

On HTML and CSS: On Javascript: On SVG graphics: On Node.js: On SQLite: