<div class="instructor"><strong>Instructor:</strong> Morgan Doocy (<address class="email">mdoocy</address>)</div>

<h3 id="course-content-and-learning-objectives">Course Content and Learning Objectives</h3>

<p>The goal of this course is to familiarize students with client-side web programming languages and technologies, website design and production, and industry best practices for creating accessible, usable websites.</p>

<p>Specifically, we aim to cover:</p>

   <li>Authoring web content using HTML and other semantic web formats.</li>
   <li>Layout &amp; presentation of content using CSS-based design.</li>
   <li>Adding interactive behavior using JavaScript.</li>
   <li>Dynamically modifying the content and appearance of pages using the Document Object Model (DOM).</li>
   <li>Retrieving and injecting fresh data into the page using AJAX.</li>
   <li>Interacting with web services which supply data in XML and JSON formats.</li>
   <li>Using the jQuery JavaScript library to facilitate common JavaScript use cases.</li>
   <li>Remembering users and storing preferences with cookies and session storage.</li>
   <li>Keeping content accessible across browsers, devices, media, and audiences.</li>
   <li>Design and usability considerations for building easy-to-use websites.</li>
   <li>Adapting to differences between browsers.</li>

<p><strong>Prerequisite: CSE 142 or equivalent</strong></p>

<h3 id="lecture-and-lab-times">Lecture and Lab Times</h3>

<p>All lectures and labs are held in Mary Gates Hall room 430.</p>

<dl class="sections">
   <dt>Section A:</dt>
      Tue/Thu 8:30-10:20 Lecture<br/>
      Wed 8:30-9:20 Lab
   <dt>Section B:</dt>
      Tue/Thu 10:30-12:20 Lecture<br/>
      Wed 9:30-10:20 Lab
   <dt>Section C:</dt>
      Wed/Fri 10:30-12:20 Lecture<br/>
      Fri 9:30-10:20 Lab

<h3 id="textbooks">Textbooks</h3>

<p>There are no required textbooks for this course.</p>

<p>However, many <strong>optional</strong> readings from the following will be provided:</p>

   <em>Web Programming Step by Step.</em><br/>
   Marty Stepp, Jessica Miller, and Victoria Kirst.<br/>
   ISBN 978-0-578-01239-1.

<p><strong>Note:</strong> A brand-new second edition of this book has just been released as of March 2012. Readings provided will be the same for either edition, and will not make use of added material in the second edition. If you already have the first edition, there is no need to purchase the second edition for the purposes of this course; however, if you don’t already own the book, the second edition is recommended.</p>

<h4>Recommended advanced reading</h4>
   <li>Transcending CSS</li>
   <li>JavaScript: The Good Parts</li>
   <li>Don't Make Me Think!</li>
   <li>Designing the Obvious</li>
   <li>Fluid Web Typography</li>

<h3 id="mini-labs-and-labs">Mini-Labs &amp; Labs</h3>

<p>Most lecture sections will contain a “mini” lab anywhere between 20 and 50 minutes long (although most will be between 25 and 40 minutes). The goal of these is to get brief, immediate practice with the material just learned.</p>

<p>In addition, once weekly you will attend a full 50-minute lab session. The goal of these is to get more comprehensive practice with the material from the past week.</p>

<p>Labs and mini-labs will be worth a variable number of points — generally, 1 point for every 10 minutes allotted. This means a full 50-minute lab (and a longer 50-minute “mini”-lab during lecture) will be worth 5 points, and a shorter 20-minute mini-lab will be worth 2 points.</p>

<p>You will submit each lab and mini-lab <strong>twice</strong>:</p>

   <li>First, you will submit whatever you have done (whether or not it is correct or complete) at the end of the period in which it is assigned. This will earn you an automatic 2 points for participation.</li>
   <li>Then, if you aren’t finished, you will have up to 3 days (72 hours) from the end of class to submit your completed work for the remaining points. These remaining points will be graded by your TA for completeness, correctness, and stylistic considerations.</li>

<p>If you finish during class, and you’re satisfied that you submitted your best work, you don’t need to submit a second time. (As with homework assignments, you can resubmit as many times as you like before the 72-hour cutoff; we’ll only grade your last submission.)</p>

<p>Note that even though submitting an incomplete 20-minute lab during class will get you the full 2 points, we still highly encourage you to submit a follow-up for correctness and completeness, as you’ll still have the opportunity to receive valuable feedback from your TA which could prevent lost points on a homework assignment or project.</p>

<p>The participation points can <strong>only</strong> be earned by submitting during class; if you don’t submit something during class, you will lose those 2 points. However, if you submit your work before the 72-hour cutoff you can still earn any remaining points, subject to completeness and correctness.</p>

<p>At the end of the quarter we’ll drop your lowest five (5) scores, by percentage, from the combined body of labs and mini-labs. (In the case of zeros, we’ll drop scores worth the most points first — so 0 out of 5 will be dropped before 0 out of 4, and so on.)</p>

<p>Both labs and mini-labs will be submitted online through the drop box on the course website. To get participation points, you must submit your work <strong>from within MGH 430, and only during class hours</strong> — meaning you must be present in class. <em>The drop box will <strong>reject</strong> any submissions from outside of MGH 430 during class hours!</em></p>

<p>The TA who runs your weekly lab session will grade your homework assignments.</p>

<h3 id="homework-assignments">Homework Assignments</h3>

<p>Throughout the quarter you will receive several homework assignments. These may be programming assignments, conceptual/essay-question problems, or both. Programming assignments will be graded on “external correctness” (working behavior), “internal correctness” (programming style/elegance and compliance with web standards), and “user experience” (visual design, presentation, and usability).</p>

<h3 id="exams">Exams</h3>

<p>There will be no exams in this course. (You will be doing projects instead.)</p>

<h3 id="projects">Projects</h3>

<p>You will have two projects in this course: a mini-project toward the middle of the quarter, and a final project due at the end of the quarter. Assignment and due dates for these will be as follows:</p>

<table id="project-dates">
   <tr><th>Mini-project</th><td id="mini-project-assigned">Week 4</td><td id="mini-project-due">Week 6</td></tr>
   <tr><th>Final project</th><td id="final-project-assigned">Week 7</td><td>During scheduled<br/>final exam period</td></tr>

<p>For the mini-project you will be allowed to work by yourself or with at most 1 other person. For the final project you will be required to work in groups of 2 or 3. You may work with students from other sections if you like.</p>

<p>Final projects will be due during your section’s regularly-scheduled final exam period, when you and your group will present your project to the class. Final presentation periods are as follows:</p>

<dl class="presentations">
   <dt>Section A:</dt>
      <dd>Tuesday, December 11, 10:30–12:20</dd>
   <dt>Section B:</dt>
      <dd>Monday, December 10, 10:30–12:20</dd>
   <dt>Section C:</dt>
      <dd>Monday, December 10, 8:30–10:20 am</dd>

<p>If you would like to present during a period other than the one regularly scheduled for your section, you will have the opportunity to sign up to do so. Note however that there will be a limited number of slots available each day, and all of your group members must be able to attend the same presentation.</p>

<h3 id="online-submission-and-lateness-policy">Online Submission &amp; Lateness Policy</h3>

<p>All mini-labs, labs, homework assignments, and projects must be submitted online via the course website; submissions will not be accepted via email, FTP, instant message, posting on a website, or any other medium without permission of the instructor or a TA.</p>

<p>For participation points, mini-labs and labs MUST be submitted from within MGH 430, during regular lecture or lab time. The turnin system will reject lab and mini-lab submissions from outside the lab during class time. For completeness and correctness points, mini-labs and labs will be accepted up to 72 hours after the end of the class period in which they were assigned. No submissions will be accepted past the 72-hour cutoff.</p>

<p>Homework will be accepted up to 3 days late, with a 10% deduction for each day late. It is your responsibility to ensure that your turn-in is successful and on time. The turnin system emails and displays a receipt upon submitting your assignment. We very strongly recommend that you save your receipt for all turnins. If you have no receipt and we do not have your assignment files, you may not receive credit for your work.</p>

<p>Students will not be granted extensions (on homework assignments or projects) or make-ups (on mini-labs and labs) without extenuating circumstances as decided by the instructor.</p>

<h3 id="software-and-computing-resources">Software and Computing Resources</h3>

<p>The required software for this course is the Firefox web browser with the Firebug add-on installed (both free). A text editor of your choice is also required; the TextPad (Windows) or TextWrangler (Mac) text editors are recommended. See the <a href="#!/software/">Software</a> page for download links and more options.</p>

<h3 id="grading">Grading</h3>

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

<dl class="grading">
   <dt>30%</dt> <dd>mini-labs &amp; labs</dd>
   <dt>40%</dt> <dd>homework</dd>
   <dt>10%</dt> <dd>mini-project</dd>
   <dt>20%</dt> <dd>final project</dd>

<p>This maps to the 4.0 scale roughly as follows. You will get at least the grade below for the percentage shown.</p>

   <tr><td>90%: at least 3.5</d>   <td>85%: at least 3.0</td>   <td>80%: at least 2.5</td></tr>
   <tr><td>75%: at least 2.0</d>   <td>70%: at least 1.5</td>   <td>60%: at least 0.7</td></tr>

<h3 id="collaboration-policy">Collaboration Policy</h3>

<p>In this course we will have four types of graded activity: mini-labs, labs, homework assignments, and projects. The degree to which you are allowed to collaborate with classmates varies depending on the activity:</p>

   <li><strong>Mini-labs</strong> and <strong>labs</strong> are very relaxed. You may discuss these with classmates and course staff in any amount of detail you like — however, you must still submit your own work.</li>
   <li><strong>Homework assignments</strong> must be completed individually. Students may discuss in general how to approach the problems presented, but such discussions should never involve a detailed narration of a particular solution. You should never confer with anyone — current or former students, friends, TAs, or anonymous internet participants — in sufficient detail to cause the problem to be solved using anyone’s ideas other than the individual submitting the assignment. You should never view another student’s solution or allow your solution, wittingly or not, to be viewed by another student. (See the <a href="#!/syllabus/academic-misconduct">Academic Misconduct</a> and <a href="#!/syllabus/protection-and-security-of-student-work">Protection &amp; Security of Student Work</a> sections below.)</li>
   <li><strong>Projects</strong> are highly collaborative: groups are expected to work together to solve the problem. However, your group’s work should be its own — the same policies apply to groups on projects as apply to single individuals on homework assignments.</li>

<h3 id="academic-misconduct">Academic Misconduct</h3>

<p>Under our policy, a student who gives inappropriate help is equally as guilty as one who receives it. Instead of providing such help to someone who does not understand an assignment, point them to other class resources such as lecture examples, the textbook, or emailing a TA or instructor. You must not share your solution code and ideas with others. You must also take reasonable steps to ensure that your work is not copied by others, such as by making sure to log out or lock shared computers, not leaving printouts of your code in public places, and not emailing your code to other students or posting it on the web or public forums.</p>

<p>We enforce this policy by running detection software a few times per quarter over all submitted student programs, including programs from past quarters. Please contact the instructor if you are unsure whether a particular behavior falls within our policy.</p>

<h3 id="protection-and-security-of-student-work">Protection &amp; Security of Student Work</h3>

<p>Student solutions to all graded work — mini-labs, labs, homework assignments, and projects — must be password-protected <strong>at all times</strong> (both during the quarter and after the course has completed) if posted in a publicly-accessible location. You may enable the viewing of your work to a limited audience (for example, friends, family, or potential employers), so long as doing so does not violate the collaboration policy above (i.e., so long as you are not showing your solution to a current or future student). Please see the course web site for acceptable ways to securely share your work with others.</p>