ECS 189H - Web Programming
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.
MWF, 2:10-3:00 pm, 234 Wellman
W 10:00-10:50 am, Haring 1024
W 10:00-10:50 am, Haring 2016
In class, Mon 5/1 and Mon 5/24.
Wds, June 14, 6-8pm in 234 Wellman.
Prof. Nina Amenta
amenta AT cs.ucdavis.edu
Lab hours: Mon 4-5:30, in 71 Kemper Hall
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
, for questions and discussion.
, for grades.
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.
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
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.
into things we need like HTML and CSS, FlexBox,
Node.js, Express and a database package.
Our server-side programs will
run in the Unix operating system.
This course will have weekly programming assignments
and/or online tutorials, two midterms
and a final.
Grades will be determined using this formula (approximately):
Programming assignments 25%
Midterm 1 20%
Midterm 2 20%
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
and much else, and the tutorials at the
Reading (from last year; will be updated)
On HTML and CSS:
On SVG graphics:
- HTML chapter in Interactive Data Visualization for the Web
- CSS chapter in Interactive Data Visualization for the Web
Rendering and the box model in
Visualization for the Web.
- The tutorials at W3schools.
On women in the open-source node community:
- SVG chapter in Interactive Data Visualization for the Web