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
- PHP web services for handling and responding to web services 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
There are 5 main modules we will cover in the course to introduce key web programming technologies:
- Webpage structure and appearance with HTML5 and CSS
- Client-side interactivity with JS DOM and events
- Using web services (API's) as a client with JS
- Writing web services with PHP
- Storing and retreiving information in a database with MySQL
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).
Each week, there will be 3 lectures (Monday, Wednesday, Friday), and two TA-led sections (Tuesday and Thursday). Sections will be separate on Tuesdays and pairs of sections will combine with two TAs on Thursdays.
Lectures are designed to introduce new material throughout the quarter, motivate key concepts, and demonstrate web development strategies. Attendance is not required, but 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 instructors gauge where students are at, and it is usually the case that many students share the same question.
There will usually be readings (occassionally other resources such as videos or exercises) assigned before class. We expect you to read/review these resources before lecture. We have included these pre-lecture readings in our calendar this quarter based on feedback from previous students that they didn't know which resources to review outside of lecture slides. We will not expect you to spend more than an hour on pre-lecture readings, but the hour 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.
Tuesdays and Thursdays, you will participate in a weekly sessions, held at various times (see MyUW for details). The TA who runs the Tuesday section will likely be same TA who grades your homework assignments. 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 solving exercises on a computer with TAs available to help.
At the beginning of Tuesday sections you will be given short "quick check" - a five minute written mini assessment. They are intended largely for you to understand your knowledge "in the moment" and are a great study aid for the midterm and final. You MUST be present in your section to do a quick check; they cannot be turned in late nor submitted on-line.
On Thursdays, your section will be combined with another section that meets at the same time. You will also be given more time to work on computer based exercises, and sometimes even given an opportunity to make progress on part of a creative project. The two TAs will be circulating the room and available for help, so make use of their expertise!
Participating in sections earns you points toward your course grade. Each section is worth 2 points. On Tuesdays you will receive 1 point for completing the quick check and 1 point for participating in the work for that day. On Thursday you will receive up to two points for participating in section, working effectively and only on course materials during any independent work time. Thus, you can earn up to 4 points per week, with a maximum score of 32 points for the quarter, meaning you may miss up to 4 sessions without penalty to your course grade. However, we do recommend you attend all of the sessions, high session attendance is correlated with a deeper understanding of the material (and higher overall grade) in the course.
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.
- You will need your laptop for in-class work for your section for CSE 154. As such you are expected to come to class with your computer charged and with your charger available should it lose power. Please see the Technology section of the Expectations page for more information on what to do prior to section if your laptop is not working or is unavailable.
- Your computer is NOT to be used for anything other than designated course work during class. This includes other course homework, other projects, gaming, and/or other social media.
- It will not be possible to make up missed section without advance permission from the instructor(s) (not your TA). Permission is given only in severely extenuating circumstances.
Failure to adhere to the notes above could cause you to lose lose one or both points for any given section.
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. Moreover, you may not get credit for your attendance or your quick check if you attend an alternate section. 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.
You, the student, are expected to...
- Check the course website daily for announcements, and assignments.
- Use our Piazza 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.
The instructors will ...
- Do our best to make assignments and assessments clear and accurate.
- Do our 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. Participation is part of your grade, and you can't be graded on participation if you're not physically present. In addition, 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 arrive on time to class except for in cases of emergency. If you do arrive late, please respect the learning of other students and take a seat in the back putting forth great effort to reduce distracting other students when you arrive. 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 lecture breaks, office hours, or WPL.
(Portions heavily borrowed from Professor Hacker)
Technology in the Classroom
This is a computer science class and somewhat obviously, we'll need to use technology in the classroom. However, it is to be used for adding value to your learning, not as a distraction. I understand that your phones connect you with your friends and family, but the classroom should be a place apart, however briefly, from the outside world. You will learn more, in short, if you can concentrate on the course while you’re in the course.
The following are some guidelines:
- Phones, tablets and other communication devices: This should go without saying: your cell phone and other devices should not be a distraction in the classroom, whether it be in Lecture or Section.
- We are not asking you to turn your phone "off" (no one does when they're told to anyway), but your phone should be set to silent or vibrate before you enter the classroom and put away where it will not distract you (i.e preferably not in your pocket, but rather in your bag).
- You should not be sending or receiving any messages (text, Snapchat, Facebook, etc), playing games, shopping, or doing other unrelated activities during class.
- If there is an urgent case where you do need to receive a phone call or text message, please speak with the instructor at the beginning of class to explain why you need an exception to these rules. We will ask that you still keep your phone on vibrate, and as soon as you receive said call or message, you can quietly excuse yourself outside to answer it, returning promptly after.
- The *one* special exception to the "Phones Away" policy is during work time in Sections. If you truly work well listening to music via headphones/earbuds, you may do so. However, if your TA sees that communication with the phone is distracting you they will tell you to put it away.
- Laptops: Research (this, and this, and this) has shown that you should really take notes with pen and paper. However, you may use a laptop to take notes during this class. In fact, we'll be needing our laptops quite a lot to do course work, test out theories, and even look up facts during lecture and section. However, in-class laptops also present temptations that many students find irresistible. You should not use a laptop during class to follow a game, use social media, play games, IM, respond to email, etc, or even do work for another class! Such activities not only distract you (meaning you will be less able to participate meaningfully in the class’ conversations), they also distract anyone around or behind you. If you seem distracted by what’s on your screen, we will ask you to put your laptop away if we are lecturing (and perhaps even during work time).
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:
- 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)
- Use the university lab resources through Odegaard or the Engineering lab to complete your homework for this class.
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 instructors.
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 instructors.
Copyright and Citations
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 instructors (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.
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.
As your instructors, 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 on line (like our nemesis, Stackoverflow) to learn how to achieve new things, but we expect you to synthesize this information and not copy it directly. You should never copy (plagarize) 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.
Programming assignments must be completed individually. You may discuss an assignment in general terms with other students, including general discussion of how to approach the problem, but all code you submit must be your own. Any help you receive from classmates should be limited and should never involve details of how to code a solution. 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 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 post your homework solutions on a publicly accessible (non-password-protected) web server, 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.
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.
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 instructors if something has been recorded incorrectly. If you feel something has been regraded incorrectly, please see the re-grade policy below.
Graded work will receive categorized point values, with the following categories and their respective weights:
- 45% individual homework assignments
- 10% creative projects
- 15% section participation
- 10% midterm exam
- 20% final exam
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|
The instructor reserves the right to fail (0.0) any student who does not show up for the final exam.
There will be one midterm and one final in this class:
- The midterm will be approximately halfway through the term, held in the early evening.
- The final exam will be Monday, June 10th from 2:30PM - 4:20PM (tentative).
Alternate exams will only be given in unusual extenuating circumstances. You must contact the instructors prior to the exam date if you believe you need to take the exam at another time, but no later than least two days prior to the exam.
You will be given an instructor provided "cheat sheet" for the exams. More information about the exams, their structure, and what resources you will be allowed to use will be discussed in class and listed on the course website as we approach the exam times.
Creative Project / Homeworks and the Late Day Policy
You will be given an assignment each week, alternating between the creative project and more structured homework assignments. Programs will be graded on "external correctness" (behavior and output), "internal correctness" (correct use of the technlogies taught) and "style and documentation" (style, design, and web standard compliance).
Homework and creative projects will be submitted electronically the online submission system on the course website. Assignments will not be accepted by email, FTP, instant message, posting them to a web server, or other turn-in methods without permission from your instructor or TA. It is your responsibility to ensure that your turn-in is successful and on time. The turn-in system will display the date and time of your last submission. If there is a question about your assignment turn-in, your instructor may ask you to display the turn in page to provide the original date and time of the turn in.
Each student receives 5 free "late days" to use on either CP or HW throughout the quarter. Each late day which allows you to submit a program up to 24 hours late without a penalty. Once a student has used up all late days, each successive day that an assignment is late will result in a loss of 1 point. Regardless of how many late days you have, you may not submit a program more than 3 days after it is due or after the last day of class. Students will not be granted extensions without highly extenuating circumstances as decided by the instructor.
Reflecting on feedback is one of the most valuable ways you can learn from your mistakes, and we encourage you to do so. If you have a question about a grade you received or if you feel the grade you received is incorrect, please email an instructor for an appointment to discuss the assignment and your grade in detail.
It is also 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 may 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.
- Homeworks/projects: Regrade requests for Homework and Creative Project assignments must be submitted within two weeks of when the grade was returned to you. You must do two things in order to request a regrade of a homework or creative project (failure to do these two things may result in the regrade not happening):
- Reply to the code review comment that is prompting your request of the regrade. You can find your code review comments in your repository for that assignment.
- Send an email to the TA who graded the submission and CC the instructors that you are requesting a regrade. Include a link to the repository in your email and a written summary describing why your work should be reexamined.
Outside of lectures, sections, and labs, there are a few ways to ask questions or discuss course issues:
- Visit office hours during the posted times or email to make an appointment.
- Post questions on the course discussion board. NOTE: 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 pseudocode), even to ask what is wrong with it. Detailed debugging is best handled in office hours.
- Email an instructor or your TA privately, particularly if you can not post to the discussion board.
- Send anonymous feedback that goes only to the instructor. The instructor will address the issue and share it with others only as appropriate, but can not reply to you without addressing the whole class.
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 instructors know so the issue can be addressed.
The Association for Computing Machinery (ACM) recently released guidelines of 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 harrassing behavior and speech.
- Be mindful of your surroundings and your fellow participants.
- Alert community leaders 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.
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 firstname.lastname@example.org 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.
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.