ECS 89H - Beginning Web Programming
Spring 2015

CRN: #30857

Lecture: MWF, 10:00-10:50 am, 107 Cruess
Discussion Section: Th 12:10-1:00 pm, 176 Chemistry

Instructor: Prof. Nina Amenta
Office hour: F 2:10-3:30 93 Hutchinson
Teaching Assitant: Jesse Smith
Office hour: M 11:30-12:30 73 Hutchinson
Office hour: Tu 12:10-1:00 in 2060 Science Lab Building

Prerequisites: An introdutory programming class or equivalent programming experience. Introductory programming classes at UC Davis include ECS 10, ECS 30, Eng 6, ME 5, TCS/ECS 12 and Design 37. Students who have not completed ECS 40 or equivalent, should sign up for 4 units. Students who have credit for ECS 40 may sign up for 2 units; a lot of the material in this class will be review for you.

Introduction

This is a course on Web programming for beginning programmers. 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. The focus will be more on improving our programming skills and understanding the Web, rather than on designing beautiful Web pages.

The course will be taught mostly in Javascript, with excusions into things we need like HTML and CSS, and things that will make our lives easier, like JQuery. We will learn about object-oriented programming and good Javascript style. Our server-side programs will run in the Unix operating system, but prior knowledge of Unix is not required. We will use node.js for server-side programming.

More advanced programmers (completed ECS 40 or equivalent) should be aware that this is a lower-division course, so it cannot be used as an elective towards the CS major. While this course should be fun, there are also many other ways for an advanced programmer to learn Web programming, for instance through the extension school. Another possiblity is the free online course on Web development from Udacity.

Format

This course will have weekly programming assignments, a midterm and a final. Two of the weekly lectures will meet in the computer lab in 73 Hutchinson.

Piazza

We can use Piazza for online questions and discussion.

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!

Reading

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