ECS 189H - Web Programming
Spring 2017
CRN: #91643
CRN: #92543
Lecture: MWF, 2:10-3:00 pm, 234 Wellman
Discussion Section:
W 10:00-10:50 am, Haring 1024
W 10:00-10:50 am, Haring 2016
Midterms: In class, Mon 5/1 and Mon 5/24.
Final: Wds, June 14, 6-8pm in 234 Wellman.
Instructor: Prof. Nina Amenta
amenta AT cs.ucdavis.edu
Lab hours: Mon 4-5:30, in 71 Kemper Hall
Teaching Assitants: Tara Harini, Carlos Rojas
thariri AT ucdavis.edu, crojas AT ucdavis.edu
Lab hours: Tu 1-2, Wds 11-12, Thurs 11-1, Fri 12-2, all in 71 Kemper Hall
Ed Tech:
Piazza, for questions and discussion.
Canvas, for grades.
Prerequisites:
ECS 30 or equivalent programming experience.
Some programming skills and
familiarity with the UNIX programming environment are required.
All students should sign up for 4 units.
Introduction
We will learn how to
develop 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 developing asynchronous, distributed
software.
We will also touch on learning to see security holes,
data visualization, simple database setup and queries,
and the challenges of working with a designer.
The course will be taught mostly in Javascript, with excusions
into things we need like HTML and CSS, FlexBox,
Node.js, Express and a database package.
We will learn about object-oriented programming and good Javascript
style.
Our server-side programs will
run in the Unix operating system.
Format
This course will have weekly programming assignments
and/or online tutorials, two midterms
and a final.
Grading
Grades will be determined using this formula (approximately):
Programming assignments 25%
Midterm 1 20%
Midterm 2 20%
Final 35%
Policies
Late assignments: We will have a separate submission link for late
assignments, usually open for a few days after the assignment is due.
We will take off 20% for late assignments. We will be strict about this
because we want to be able to manage the class efficiently.
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.
In this course, this means:
you thoroughly understand every line of your program.
You can look at someone else's program or Web page; you can even
cut and paste a few lines here and there (we all do sometimes,
for instance for complicated
library calls with a lot of parameters),
but you have to understand everything, and write most of it without
reference to some other source.
If we find two or more submitted programs that are substantially the same,
we will report them to SJA.
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 and Reference Books
These two textbooks are are free online, but you can buy them in
hardcopy for convenience - and to support the author!
All of the following reference books are published
by O'Reily, so you can get to them
for free through the library (you need to be either connected
on campus or use the library's VPN from home).
Again, you may want to buy them. There are many other
O'Reily books on Web programming, feel free to share if you
find one that is really helpful.
Finally, this one is not available for free
online as far as I know.
Also, a major source of programming help and tutorials is
W3Schools, which has
chapters on HTML, CSS, Javascript, Node.js, JQuery,
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:
- HTML chapter in Interactive Data Visualization for the Web
- CSS chapter in Interactive Data Visualization for the Web
-
Rendering and the box model in
Interactive Data
Visualization for the Web.
- The tutorials at W3schools.
On Flexbox:
On Javascript:
On SVG graphics:
- SVG chapter in Interactive Data Visualization for the Web
-
SVG reference
at W3schools.
On Node.js:
On SQLite:
On women in the open-source node community: