Course Goals

On the surface, this course is an introduction to programming for the World Wide Web. We will learn about the relationship between clients and servers, briefly how the internet works, and how web pages are constructed using several technologies:

  • HyperText Markup Language (HTML) for authoring web pages
  • Cascading Style Sheets (CSS) for applying stylistic information to web pages
  • JavaScript (JS) for creating interactive web pages
  • Asynchronous JavaScript (AJAX) with fetch and JSON for enhanced web interaction and applications
  • Web services for handling and responding to client-side requests
  • Structured Query Language (SQL) for interacting with databases

In the process of learning these technologies, you will also:

  • Practice the skill of reading detailed specifications and writing readable, well-documented, and structured code
  • Learn how to appropriately search for and evaluate solutions
  • Have an opportunity to develop an individual portfolio to show prospective employers

Modules

There are 5 main modules we will cover in the course to introduce key web programming technologies:

  1. Webpage structure and appearance with HTML5 and CSS
  2. Client-side interactivity with JS DOM and events
  3. Using web services (APIs) as a client with JS
  4. Writing web services with a server-side language
  5. Storing and retrieving information in a database with SQLite

By the end of the course, you will be able to write a simple "full-stack" website with webpages, client-side code, server-side code, and a database, with a survey of other important web programming concepts and technologies (including Git version control, code quality guidelines in multi-language projects, accessibility, and form validation).

Course Organization

We have structured the course so that spending a few hours per day will maximize your efficiency. Why?

  • You will work this way in the real world — you cannot cram a 10-week development project into a single day — so you may as well work this way now.
  • You will understand the material better, especially since we are covering various languages and technologies (it will feel like a lot at first, but you'll get better with practice!)
  • If you leave the homework for the day before it is due you will not have time to ask questions when (not if) the software misbehaves. In most circumstances, accommodations will not be made for technical difficulties the night of an assignment deadline

That said, we do our best to keep this course a standard 5-credit workload, and you are welcome to talk with the instructor about different study strategies if you find yourself falling behind. We also offer a ton of resources, so take advantage of them early!

Each week, there will be 3 lectures (Monday, Wednesday, Friday), and two TA-led sections (Tuesday and Thursday).

Lectures

Lectures are designed to introduce new material throughout the quarter, motivate key concepts, and demonstrate web development strategies. Many students have acknowledged the faster pace of this course. New material will be introduced in each lecture, and it will be very easy to fall behind if you miss a class.

We encourage questions in lecture - questions help the instructor gauge where students are at, and it is usually the case that many students share the same question.

Lecture Readings

The pre-lecture readings are designed to support your studying and learning in a course that covers multiple languages and technologies, and we will do our best to make them interesting. We do not expect you to spend more than 30-45 minutes on the readings, but the time you do spend will be important to introduce the fundamentals of a new language or technology so that lecture can reinforce what you read and allow the instructor to provide motivation, demonstrate code examples, and discuss practical use-cases during lecture.

Lecture Guidelines and Expectations

Students are expected to adhere to the below expectations for remote lectures. These guidelines are intended to help lecture go more smoothly, facilitate questions and group activities, and foster a sense of community within the class.

  • You are not required to have your video turned on during lecture except for during group activities in breakout rooms
  • Please keep your mic muted unless you're asking a question
  • To ask a question, please type "hand" in the chat in Zoom. The instructor will call on you and then you can unmute your mic and ask your question
  • You may also post questions in the chat, but you will be asked to unmute your mic and ask your question aloud
  • There will be individual and group based activities, questions, and polls which you are expected to participate in (see below for requirements).
  • It may be helpful for some students to see the instructor speaking even when the instructor is sharing their screen. This can be achieved by right clicking the instructor's video and choosing "pin" video. Then, under "view options" you can choose the side-by-side option which will enlarge the instructor video

Sections

On Tuesdays and Thursdays, you will participate in a weekly sections, held at various times (see MyUW for details). Sections occurring at the same time will be combined into a single section this quarter. Tuesday and Thursday sections will be similar those you may have had in other classes - we will spend the 50 minutes answering questions, going over common errors in homework solutions, discussing sample problems in more detail than we can in lecture, and completing exercise worksheets with TAs available to help.

During sections, you are free (and encouraged) to work on section exercises with other students. Collaboration is fundamental in programming projects in industry, and this is an opportunity for you to work with other students sharing an interest in web programming and discuss different problem-solving strategies. However, you are NOT to work with other students on homework assignments, even during your section time.

Attendance in Sections

You are only to attend the Sections that you are enrolled in. Attending alternate sections can be disruptive to the TA and the other students in the class. However, if there is a one time change - i.e. a Very Important Appointment That You Can Not Miss - you must email both your TA AND the TA for the temporary section at least 24 hours in advance of the first section time to get approval from both TAs.

Remote Section Guidelines and Expectations

Students are expected to adhere to the below expectations for remote sections. These guidelines are intended to help section go more smoothly, facilitate questions and group activities, and foster a sense of community within the class.

  • You are required to have your video on at all times. This is not to monitor you, but to help create a sense of community in the classroom
  • Please keep your mic muted unless you're asking a question
  • To ask a question, please type "hand" in the chat in Zoom. A TA will call on you and then you can unmute your mic and ask your question
  • You may also post questions in the chat, but you will be asked to unmute your mic and ask your question aloud
  • There will be individual and group based activities which you are expected to participate in
  • You are only to attend the sections that you are enrolled in. However, if there is a one time change (e.g., you have an appointment you absolutely can't miss), you must email both your TA and the TA for the temporary section at least 24 hours in advance of the first section time to get approval from both TAs

Grading, Exams, & Assignments

The grade book will be kept on Canvas and will be updated regularly; please check it to be sure scores have been recorded correctly. Please contact your TA or the instructor if something has been recorded incorrectly. If you feel something has been graded incorrectly, please see the re-grade policy below.

Graded work will receive categorized point values, with the following categories and their respective weights:

  • 40% Homework Assignments
  • 20% Creative Projects
  • 20% Quizzes
  • 15% Final Assignment
  • 5% Participation

Your percentage in the class maps to the 4.0 scale roughly as follows. You will get at least the grade below for the percentage shown:

90%: at least 3.5 85%: at least 3.0 80%: at least 2.5
75%: at least 2.0 70%: at least 1.5 60%: at least 0.7

Exams

There will be no formal, large exams in this class this quarter.

Quizzes

There will not be a midterm exam this quarter. Instead, there will be 5 quizzes, given approximately every two weeks and taken at your own pace within a 24-hour period. The single lowest quiz grade will be dropped at the end of the quarter.

Late days cannot be used for quizzes, and in most circumstances make up quizzes will not be allowed.

Remote

Participation

All students enrolled in this course are expected and required to be active participants in it:

  • The required portions (see above for this portion of the overall grade) will be measured based on participation in lecture activities. These will most often be in the form of polls or short question/answers. These will be graded on completion, rather than correctness. The one exception to this is any questions used to determine if you actually watched lecture.
  • The expected portions are that you attend and be present for lecture, asking questions as appropriate. See below for expectations on Section participation.

Creative Project / Homeworks and the Late Day Policy

Modules 1-4 will each have a Creative Project followed by a more structured Homework Assignment. Homework 4 will cover modules 4 and 5. Programs will be graded on "external correctness" (behavior and output), "internal correctness" (correct use of the technologies taught, including code quality and web compliance) and "documentation" (file/function/class comments and/or APIDOC).

Homework and Creative Projects will be submitted through Gradescope and GitLab (set up in Week 1). It is your responsibility to ensure that your turn-in is successful and on time.

All assignment due dates are at 11pm PDT (Pacific Daylight Time). You are expected to have your work turned in by this time regardless of where you are residing this quarter. If this is a concern, you are expected to reach out to the instructor early.

Each student starts with 5 "late days" to use on either CP or HW throughout the quarter. Each late day allows you to submit an assignment up to 24 hours late without penalty. Once a student has used up all late days, each successive day that an assignment is late will result in deduction of 3 pts for a HW, 1 pt for a CP. Regardless of how many late days you have, you may not submit a program after the "lock date" (usually 2 days after the regular due date, but occasionally earlier, depending on the schedule). Students will not be granted extensions without highly extenuating circumstances as decided by the instructor.

Re-grade Policy

It is possible for the graders to make mistakes. If that happens we certainly would like to correct the error. Please note the following:

  • When you request a regrade, we will likely look at the entire assessment, homework, or creative project. Therefore, it is possible for your grade to go either up or down through this process.
  • We use Gradescope to grade all homeworks, creative projects, and exams and manage regrade requests. Via Gradescope, you should submit any requests separately for each criteria or problem with an explanation for why you want it regraded. The time limit for regrade requests will be detailed in the email you receive from Gradescope.

Expectations

Communication

You, the student, are expected to...

  • Check the course website daily for announcements, and assignments
  • Use our Ed message board for discussions.
  • Read emails that are sent to the course list
  • Respond to direct emails in a timely manner
  • ASK QUESTIONS!!! Particularly if part of an assignment or assessment is unclear
  • Ensure that all assessments and assignments are successfully submitted to Gradescope on time.

The instructor will ...

  • Do their best to make assignments and assessments clear and accurate.
  • Do their best to respond to student emails within 24 hours on weekdays, 48 hours on weekends.

Attendance and Punctuality

You are expected to attend all classes this session. Our goal is to incorporate active learning where appropriate in this class to support an engaging environment, giving you the opportunity to practice key problem-solving strategies, interact with peers, and ask questions of the instructor and TAs.

All students are expected to join the Zoom conference before the assigned class time as lecture and section will begin on time. If you do arrive late, please respect the learning of other students and ensure your mic is muted to reduce distracting the class. Do the best to catch up if we are in a direct instruction (lecture) portion, and ask for additional information and help if you need during office hours or WPL.

Technology

In a remote-only education environment, we are entirely reliant on technology. Things will break, microphones will be left on or forgotten to be turned on, power will go out in the middle of a lecture, and in all cases we will adapt.

But even in the best of times, we're still reliant on technology and it will still break. As such, it is expected that you prepare as best you can for predictable issues, and let the instructor know as soon as possible for the unplanned ones.

Technology "Woes"

Instructors have heard just about every excuse for why work is not turned in on time. Many of these excuses are technology focused, and even some of them really are out of the students' control. Professor Hacker says it best: Let's face it: technology breaks. servers go down, transfers time out, files become corrupt. The list goes on and on. These are not considered emergencies. They are part of the normal production process. An issue you may have with technology is no excuse for late work. You need to protect yourself by managing your time and backing up your work.

As such we expect you will...

  • Have and use anti-virus software provided by the university
  • Back up your work regularly (we strongly recommend investing 30 minutes to learn how and why to use Git commits effectively to back up your code versions)

and... we expect that if your computer breaks, get lost, has trouble, and so on you will:

  1. Look into university resources to get it fixed/replaced (if you need to purchase a new machine check into the University's short term loan program)
  2. Use the university lab resources through Odegaard or the Engineering lab to complete your homework for this class

Getting Help

Outside of lectures and sections, there are a few ways to ask questions or discuss course issues:

  • Office hours
  • Discussion board

Office hours

"Office Hours" are dedicated times that we have (both the instructor and the TA staff) for you to come into our "office" and ask questions or otherwise get help. These times are for you and are valuable time to get your specific question addressed. Visit during the posted times or email to make an appointment. Make sure to follow these guidelines and expectations for WPL:

  • Your camera should be on for the duration of WPL. This is not to monitor you, but to help create a sense of community in the course.
  • You should feel free to talk amongst yourselves in the WPL conference room, keeping the Collaboration Policies listed in the course syllabus in mind.
  • Please keep your mic muted if you're not engaged in conversation.
  • To ask a TA a question, please type "hand" in the Zoom chat window. When available, the TA will create a separate Zoom breakout where you can discuss your question in private.
  • Screen sharing should only occur in a one-on-one breakout with a TA. You should not share your code with the main conference room.

Discussion Board

Post questions on the course discussion board. Make sure to follow these guidelines for the discussion board:

  • All questions in Ed should use the "Question" label (instead of "Post" or "Announcement")
    • For administrative questions, select the "General" category
    • For questions about lecture or section material, select the "Lecture" category
    • For questions on Creative Projects or Homeworks, select the appropriate sub-category under "Assignments"
  • Do not post any part of your homework solutions on the message board. This includes all or part of a solution to an assignment, including "just" a description of your solution to an assignment (such as pseudo-code), even to ask what is wrong with it. Detailed debugging is best handled in WPL.
  • Questions will not be answered immediately. Response times will vary and may take an hour or more
  • Questions outside of 8am to 11pm will not be answered (until the next window)
  • Questions within 1 hour of an assignment's due date will not be answered
  • For more sensitive questions, you may choose to post a private question that only the instructors and TAs will see. Email the instructor or your TA directly if you feel you can't post to the discussion board
  • The course staff reserves the right to remove or make private any post.

Inclusion Statement

You all belong in this class and as such should expect to be treated by your classmates and the course staff with respect. It is our goal, as the course staff, to provide an interesting and challenging environment that is conducive to your learning. If any incident occurs that challenges this commitment to a supportive and inclusive environment, please let the instructor know so the issue can be addressed.

Expected Behavior

The Association for Computing Machinery (ACM) has a set of guidelines for expected behavior as part of their Policy Against Harassment at ACM Activities. The ACM's description of expected behavior is as follows:

  • Exercise consideration and respect in your speech and actions
  • Refrain from demeaning, discriminatory, or harassing behavior and speech
  • Be mindful of your surroundings and your fellow participants
  • Alert community leaders (in this case, the instructor or course staff) if you notice a dangerous situation, someone in distress, or violations of this policy, even if they seem inconsequential

ACM's policy also has a detailed description of unacceptable behavior on the same page.

Academic Conduct

Integrity is a crucial part of your character and is essential for a successful career. We expect you to demonstrate integrity in CSE 154 and elsewhere.

The Paul G Allen School has an entire page on Academic Misconduct within the context of Computer Science, and the University of Washington has an entire page on how Academic Misconduct is handled on their Community Standards and Student Conduct Page. Please acquaint yourself with both of those pages, and in particular how academic misconduct will be reported to the University.

Your academic conduct in this course is evaluated in at least the four areas described in detail below.

Honesty in Communications

Individuals are expected to be honest and forthcoming in communications with TAs and the instructor.

Web Page Content

School Appropriateness of Content

Recall that one of our course policies is to engender an inclusive environment. As such it is important that you are thoughtful about what you choose to post on your page. Please make sure that the images and text you are using are "school appropriate" and follow the guidelines of expected behavior. If you have any questions, please do not hesitate to ask a TA or your instructor. Inappropriate work submitted may be ineligible for credit on that assignment.

All of the expressions of ideas in this class that are fixed in any tangible medium such as digital and physical documents are protected by copyright law as embodied in title 17 of the United States Code. These expressions include the work product of both: (1) your student colleagues (e.g., any assignments published here in the course environment or statements committed to text in a discussion forum); and, (2) your instructor (e.g., the syllabus, assignments, reading lists, and lectures). Within the constraints of "fair use," you may copy these copyrighted expressions for your personal intellectual use in support of your education here in the UW. Such fair use by you does not include further distribution by any means of copying, performance or presentation beyond the circle of your close acquaintances, student colleagues in this class and your family. If you have any questions regarding whether a use to which you wish to put one of these expressions violates the creator's copyright interests, please feel free to ask the instructor for guidance.

The essence of academic life revolves around respect not only for the ideas of others, but also their rights to those ideas. It is therefore essential that we take the utmost care that the ideas (and the expressions of those ideas) of others always be handled appropriately, and, where necessary, cited. When ideas or materials of others are used (particularly in your creative projects), they must be cited. The citation format is not that important - as long as the source material can be located and the citation verified, it's OK. In any situation, if you have a question, please feel free to ask.

You must have the right to publish any of the images, videos, text, or other media on your creative sites. This means you may use:

  • Media you have created or generated yourself (i.e. pictures you have created or taken yourself, text you have written yourself)
  • Images that are in the public domain (something from Wikipedia), or something with a creative commons license that allows for reuse without explicit permission of the owner
    • Creative Commons Kiwi is a really informative video on Creative Commons licensing
    • Instructions on how to search for images that are fair use are here
    • You must cite any works that you use that you did not generate yourself (although technically you only need to cite things that are CC Attribution) A handy site for knowing how to add your citations is here

Collaboration Policies

As a teacher, it's not my goal in life to read a class' worth of programs on a topic that all basically look the same. My goal is to assess whether you understand the material that we've taught in class enough, and you demonstrate that to me through the work you do. I can not assess that if you are turning in someone else's work.

- Dr. Tom Butler, Lakeside H.S.

Computer science education is odd in that we expect you to turn in work that you do completely independently when in the "real world" that's not how it works at all. In the real world, co-workers collaborate, bounce ideas off each other, they look up parts of solutions on the internet. But in the "real world" the people doing the work have years of experience, they have proved themselves to their teachers, co-workers and bosses to where they are at that moment and most importantly, they know how to evaluate which of the solutions they are receiving is an appropriate one to solve the task at hand.

We need to be able to evaluate your work. Thus, unless otherwise specified all work in this and other CS classes must be your own. We realize you may look at other sources online to learn how to achieve new things, but we expect you to synthesize this information and not copy it directly. You should never copy (plagiarize) homework or code from another person in this school (past or present) or that you find online directly and submit it as your own work.

All programming assignments must be completed individually. You may not discuss homework assignments with other students, but you may (and are encouraged to) discuss related material each week, such as section exercises, lecture material, readings, etc. You may also discuss Creative Projects with other students, as long as the code you write is entirely your own, and discussion with students on Creative Projects should never involve details of how to code a solution. Specifically, you must abide by the following:

  • You may not work as a partner with another student on an assignment
  • You may not show another student your solution to an assignment, nor look at their solution
  • You may not have another person "walk through" an assignment, describe in detail how to solve it, or sit with you (physically or virtually) as you write it
  • You may also not provide such help to another student. This includes current or former students, tutors, friends, TA's, web site forums, or anyone else
  • You may not use code directly from any external sources (including copying lecture/section material in programming assignments)
  • You may not post your homework solutions on a publicly accessible (non-password-protected) web server or Git repository, during the course or after it has been completed. Please see the course website for acceptable ways to show your work to others
  • You may not look at or use prior solutions from any source

Under our policy, a student who gives inappropriate help is equally guilty with one who receives it. Instead of providing such help to a classmate, point them to other class resources such as lecture examples, the WPL, or a TA. You must take reasonable steps to ensure that your work is not copied by others, such as making sure to log out or lock shared computers, not leaving printouts of your code in public places, and not emailing code to other students or posting it on the web or public forums.

We enforce our policies by running detection software during the quarter over all programs, including ones from past quarters. Please contact us if you are unsure whether a particular behavior falls within our policy.

Important reading: Some students at Lakeside HS wrote the Collaboration Guidelines for CS document in 2016 (you need to be logged in with your UW NetID to read this). This document has some clear examples of what to do and not to do and will be required reading for Computer Science courses.

Policies on Creative Projects

Creative Projects are unique in that students may look for outside resources for inspiration or assistance in accomplishing their goals. On occasion students may wish to use portions of sample code that has been obtained on our course website or others. In order to avoid academic misconduct for a Creative Project in CSE 154 you must:

  1. Ensure that substantive original work is submitted that can be evaluated by the course staff
  2. Cite the ideas or materials of others that are used. The citation format is not that important - as long as the source material can be located and the citation verified (a url in a comment is generally fine), it's OK
  3. Clearly indicate (e.g. with comments) which portions of your code are completely original and which are used or modified from external sources, if any code is used that builds off of/is inspired by external sources (e.g. adaption of an example CSE 154 exercise, online tutorial you find on Bootstrap or a JS library, etc.). We will only grade your original work. Note that solely changing identifier names or rearranging other source material is not considered your original work - see the examples of appropriate use below for details

A good analogy to this is if you were writing a history paper: You can use quotes in your paper as long as you give attribution to the sources of the quote, but you can not write a history paper out of the quotes of others (particularly with no citations). Some examples of appropriate use:

  • A student closely follows a tutorial to understand a new concept in web development (e.g. CSS3 animations). The student cites the tutorial they used in the file header then substantially modifies the tutorial code to include what is specified for the Creative Project assignment, documenting which portions of the code are their own so TAs know which portions to grade (and to determine whether the material cited as being learned from the tutorial is sufficiently adapted to be considered the student's own work)
  • A student is having difficulty styling their website. They look for a solution and find one on a site such as Stack Overflow. The student uses the code they find in their solution, documents that small piece of code was not their own with a comment that includes where it was found. The TAs will not use that portion of the code in grading

Students with questions about any specific situation should ask the instructor for clarification.

Privacy

To support an academic environment of rigorous discussion and open expression of personal thoughts and feelings, we, as members of the academic community, must be committed to the inviolate right of privacy of our student and instructor colleagues. As a result, we must forego sharing personally identifiable information about any member of our community including information about the ideas they express, their families, lifestyles and their political and social affiliations. If you have any questions regarding whether a disclosure you wish to make regarding anyone in this course or in the university community violates that person's privacy interests, please feel free to ask the instructor for guidance.

Knowingly violating any of these principles of academic conduct, privacy or copyright may result in University disciplinary action under the Student Code of Conduct.

Wellness

It is very important to us that you take care of your mental wellness throughout the course. Everyone on the course staff is available to chat, and you can always attend office hours for a non-academic conversation if necessary.

Beyond the course staff, the University of Washington provides the following resources for mental health concerns. Your anonymity and privacy are protected.

  • Please reach out to the UW Counseling Center for any help and concerns related to mental health (including increased stress), available to all UW students at no cost
  • Visit Hall Health Mental Health Clinic, which also provides support for concerns related to mental health
  • If you are ever feeling uncomfortable and need to talk or are worried about someone close to you, it is highly recommended to visit the UW Heath and Wellness programs. They offer resources to students that can help
  • If you're concerned for yourself or a friend, please call SafeCampus at (206) 685-7233

If you have a temporary health condition or permanent disability (either mental health or physical health related), you should contact DRS at uwdrs@uw.edu if you have not already (see the accessibility section for more details). Additionally, if there is something we can do to make your experience better, please let us know.

Accessibility

The Disability Resources for Students (DRS) is a unit within the Division of Student Life and is dedicated to ensuring access and inclusion for all students with disabilities on the Seattle campus. They offer a wide range of services for students with disabilities that are individually designed and remove the need to reveal sensitive medical information to the course staff.

If you have a medical need for extensions of exam times or assignment deadlines, these will only be granted through official documentation from DRS. Browse to here to start the process as soon as possible to avoid delays.

Note: Students with accommodations are solely responsible for submitting the Alternative Testing Contract and scheduling the exams with DRS well in advance of the exam dates, following the deadine guidelines on the DRS website.

Religious Accomodations

Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW's policy, including more information about how to request an accommodation, is available at Religious Accommodations Policy. Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form on UW's site.