Lecture: MW 2:30-4:15 PM @ SENSQ 5502
Instructor: Nicholas Farnan (nlf4 [at] pitt.edu)
GitHub: nfarnan
Office: 6313 SENSQ
Office Hours:
MW 1-2:30PM
Recitations: M 4:30-5:20PM @ SENSQ 5505
W 1:30-2:20PM @ SENSQ 5505
TA: Matthew Barren (mpb43 [at] pitt.edu)
GitHub: mpb43TA
Office: 5106 SENSQ
Office Hours:
7-23 Project 4 was posted to GitHub on 7-19
7-2 Project 3 has been posted
6-13 Project 2 has been posted
5-29 Project 0 has been posted
Project 1 has been posted
5-16 All example code for the term will be posted to the following repository:
5-14 Welcome to CS/COE 1520!
Class web site is up. Please look over the Course Policies.
5-14 The midterm will be held in class on Wednesday June 20th.
The second exam will be held in class on Wednesday Aug 1st.
5-14 Please use this link to link you GitHub username with your Pitt ID for this class. Use your Pitt username (i.e., your initials and a number/your Pitt email address without @pitt.edu, e.g., "nlf4") and your PeopleSoft ID (this 7-digit number can be found under "Demographic Information" on the Student Center) to link your GitHub username.

Note that the ID link site is only accessible from Pitt's network (i.e., on campus).

If you have recently add/dropped into the class, please see the instructor about linking your GitHub username.

I will announce in class once the GitHub organization has been created. If, at that point, you have not recieved an email from GitHub inviting you to join the class organization, please visit the GitHub organization's page to accept the invitation to the class and access your project repositories.

Be sure to register your GitHub username by 5-21 so that you can start the projects on time!
0 Introduction to the course
Goals of the course
Brief HTML/CSS overview
Initial source for this page
1 Responsive design
Backus–Naur form
Google Responsive Design Basics
MDN viewports
Viewports blog post
MDN Media queries
CSS examples:
2 Introduction to client-side scripting with Javascript slides
Javascript examples:
3 The DOM
Event-driven Programming
MDN Document
MDN Node
MDN Element
MDN Events
DOM game example
Javascript examples:
4 Web Storage slides
MDN Storage API
Javascript examples:
5 Regular Expressions slides
MDN Regex
Javascript examples:
6 HTTP Overview
Introduction to Networking
MDN HTTP codes
7 Python slides
Language reference
Standard library
Python examples:
8 Server-side scripting with Flask slides
Flask examples:
9 Using Templates to Generate Views in Flask slides
Jinja2 docs
Template Inheritance
Flask examples:
10 Developing Models in Flask slides
SQLAlchemy install guide
Flask-SQLAlchemy quickstart
Flask-SQLAlchemy user's guide
SQLAlchemy column types
SQLAlchemy docs
SQLAlchemy library
Flask-SQLAlchemy queries
Flask-SQLAlchemy BaseQuery
SQLAlchemy Query API
Common filter() operators
Basic relationships
Relationship API
Flask examples:
MDN AJAX portal
MDN AJAX quickstart
MDN JS Timers
JavaScript examples:
Building RESTful APIs with Flask
Extended REST example
PayPal's REST API documentation
Flask-RESTful extension
Flask-RESTful installation
Flask-RESTful quickstart
Flask-RESTful documenation
Flask examples:
13 Functional programming slides
MDN Array.map()
MDN Array.reduce()
MDN Array.filter()
JavaScript examples:
14 Authentication slides
MDN HTTP Authentication
Base64 Encoding
Flask Basic Authentication
Python examples:
15 Web security slides
XSS Wikipedia article
16 Advanced JavaScript
ECMAScript spec
ECMAScript compatibility
MDN strict mode
MDN Promise use
MDN Fetch use
MDN Fetch Response
Babel transpiler
17 React slides
React Documentation
React Tutorial
React Native

We will be using the git version control system via GitHub for the development and submission of programming projects this term. Please visit the above URL to register an account. You will need to have an account before the first assignment is released.

Slides on using Git can be found here. The official documentation on how to use git can be found here: https://git-scm.com/documentation

Project 0

Posted: 5-29 Due: 6-6 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

Project 1

Posted: 5-29 Due: 6-12 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

Project 2

Posted: 6-13 Due: 7-1 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

Project 3

Posted: 7-2 Due: 7-16 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.

Project 4

Posted: 7-19 Due: 7-30 @ 11:59PM
Refer to the individual GitHub repository created for you for assignment description.


(Textbook is optional)
Programming the World Wide Web, 8th Ed.
Robert W. Sebesta

ISBN-13: 9780133776096

Grading Breakdown

First Exam 25%
Second Exam 25%
Programming Projects 45%
Participation 5%

Tentative Syllabus

Course Policies

Course Communications

The instructor and TA will periodically post announcements to the course website. It is every student's responsibility to regularly monitor these announcements. The instructor and TA will periodically email enrolled students with announcements. Students must check their Pitt email at least once per day to ensure these announcements are received. When contacting the course staff via email, messages must be addressed to (or CC) both the instructor and the TA. Email subject should be prefaced with the appropriate prefix (e.g., "[CS15XX]").

Academic Integrity

All assignment submissions must be the sole work of each individual student. Students may not read or copy another student's solutions or share their own solutions with other students. Students may not review solutions from students who have taken the course in previous years. Submissions that are substantively similar will be considered cheating by all students involved, and as such, students must be mindful not to post their code publicly. The use of books and online resources is allowed, but must be credited in submissions, and material may not be copied verbatim. Any use of electronics or other resources during an examination will be considered cheating.

Cheating in this course will result in a grade of F for the course and may be subject to further disciplinary action.

Lecture Attendence

Students are encouraged to attend all lectures, which frequently include material that is not directly taken from the text. If a student misses a lecture, he/she is still responsible for the material covered and is advised to copy the notes from a classmate.

Respectful Discussion

This course may include open discussion or other interactions among students. To allow all participants to express their viewpoints, all discussion must remain civilized and respectful, and participants must avoid comments and behaviors that disparage others. A student who feels their viewpoints are not being respected is encouraged to contact the instructor, who will work to correct the situation without revealing the student's specific concerns to the rest of the class. A student in this situation who does not feel comfortable contacting the instructor directly is encouraged to contact the TA, who will uphold the same degree of confidence in relaying the issue to the instructor.

Audio/Video Recordings

To ensure the free and open discussion of ideas, students may not record lectures, discussion or other course activities without the advance written permission of the instructor. Any recording properly approved in advance can be used solely for the student's own personal use.

Copyrighted Materials

All course material is subject to copyright, including notes, slides, assignments, and solutions. Students are allowed to use the provided material only for personal use, and may not share the material with others, including posting the material on the Web or other file sharing venues.


We believe that students should be able to distinguish between helping one another understand the core concepts of the course material and cheating. We encourage students to discuss the content of the course in ways that will improve understanding without violating academic integrity, such as clarifying the objective of an assignment or discussing general solution tactics.

Late Assignments

All assignments specify a precise due date and time. Late assignments will not be accepted. Students must ensure they understand each assignment's submission procedure in advance of its deadline to ensure that submission difficulties do not cause an assignment to be rejected.

Grade Appeal

An assignment grade can be appealed up to two weeks after it has been returned. After this point, no appeals will be considered. When appealing a grade, attach a single-page cover sheet that provides a clear description of why you feel the assignment was graded unfairly; the entire assignment will be re-graded.

The goal of a grade appeal is to ensure a fair and consistent score. Thus, a score will not be adjusted on an issue of partial credit if the awarded points are consistent with the grading policy adopted for the problem for the class as a whole.

After grades have been posted at the end of the term, any further questions or concerns must be presented to the instructor in office hours at the beginning of the following term.

Make-up Exams

Students must be present for all exams. Make-up exams will be given only in the event of a documented emergency. The instructor must be informed of the emergency in advance of, or as soon as possible after, the missed exam. Missing an exam under any other circumstances will result in a score of 0 for the exam.

Grade Records

All graded materials that a student receives back should be saved in a safe place until after the term has ended and he/she has received and accepts his/her final grade. In this way, any grade discrepancies can be easily resolved.

Students with Disabilities

If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services, 140 William Pitt Union, 412-648-7890, drsrecep@pitt.edu, as early as possible in the term. Disability Resources and Services will verify your disability and recommend reasonable accommodations for this course.

Religious Observances

In order to accommodate the observance of religious holidays, students should inform the instructor (by email, within the first two weeks of the term) of any such days which conflict with scheduled class activities.

git http://git-scm.com/
Pitt Academic Calendar http://www.provost.pitt.edu/information-on/calendar.html
Pitt Student Counseling Center http://www.studentaffairs.pitt.edu/cchome
Pitt Disability Resources http://www.studentaffairs.pitt.edu/drswelcome