Sana Odeh > Web Development and Programming


Web Development and Programming

Section 1 & 2 Course Website

Professor Sana Odeh
Clinical Professor of Computer Science
Faculty Liaison for Global Programs of Computer Science
Computer Science Department
Courant Institute of Mathematical Sciences
New York University

Email sana [AT]
Office 321 in Courant:
251 Mercer Street,  Courant Institute, NYU, 251 Mercer street, New York City
Help Whenever you have a question about the course material, please feel free to see me during my office hours or write me an email message. If at any time you feel that you are falling behind or are overwhelmed by the material, let me know: I will be very happy to help you.

Class time and office hours

Section One
Class Time Mon/Wed, 3:30 PM – 4:45 PM
Room 101 CIWW (Courant)
Office Hours Mondays, 5:00-6:00 PM
Room 321 (Courant)
Or other times by appointment
Section Two
Class Time Tue/Thu, 3:30 PM – 4:45 PM
Room 101 CIWW (Courant)
Office Hours Tuesdays, 5:00-6:00 PM
Room 321 (Courant)
Or other times by appointment

Course description

This course provides concrete knowledge in client and server-side web programming. Students design, and build interactive, secure and powerful web applications. Students learn and use key technologies such as HTML5, CSS3, JavaScript, jQuery, AJAX, JSON, Web APIs, and PHP.


Non-majors: Web Design and Computer Principles ( CSCI-UA.0004) or equivalent, and Introduction to Computer Programming (CSCI-UA.0002) or one semester of programming in Java, Python or an equivalent programming experience such as in C.

This is an intensive programming course: You will need to write and debug programs the entire course!

Topics covered

  • Quick review of the foundations of the Internet and the Web
  • Quick review of HTML
  • Quick review of CSS
  • Client-side programming
    • JavaScript
      • Foundation
      • Data types
      • Making decisions
      • Iteration structure (Loops)
      • Arrays
      • Functions
      • JavaScript Objects (String, Arrays, Date, and Math)
      • The Browser Objects- Document Object Model (DOM): Methods and Properties
      • Events
      • JavaScript Libraries
        • jQuery
        • Ajax and JSON
        • Other Web APIs will be discussed if time permits
  • Server-Side Programming
    • PHP
      • Syntax (Variables, Data Types, loops, and arrays)
      • functions
      • Built-in functions
      • How to collect and process data from forms (web programming)
      • File (I/O): reading and writing to file
    • Ajax and JSON
    • The LAMP stack
    • Cloud-based back-end solutions (Google Firebase, etc.)

Required Course Materials

JavaScript and jQuery: Interactive Front-End Web Development
First Edition
Author: Jon Duckett
Publisher: Wiley
ISBN: 978-1-118-53164-8

Optional Course Materials

Learning PHP, MySQL & JavaScript
Fifth Edition
Author: Robin Nixon
Publisher: O’Reilly Media
ISBN 9781491978917.

Midterm Exam
Dates and locations

Section Date and time Location
Section One October 23 (during class) Room 101 CIWW (Courant)
Section Two October 24 (during class) Room 101 CIWW (Courant)

Final Exam
Dates and locations

(Please note new date and location)

Section Date and time Location
Section #1 and #2 Friday, December, 13, 2019
5:30PM – 7:20PM
Room 109 CIWW (Courant)


Exams (60% of final grade)

There will be one in-class midterm exam (25%) and one final exam (35%). Both exams are hand-written exams, where neither books nor computers are permitted. There will be no makeup exams, so make sure to make the midterm and final on these dates! Do not book any travel on these dates!

Homework assignments which  (40% of final grade)

The homework assignments are required and will consist mainly of programming assignments. The details will be posted later. There will be 7 assignments or projects.

Grading Policy:

  • Ten percentage points of the grade will be deducted per class an assignment is late, with a possible maximum deduction of 30%. Assignments will not be accepted past the third class after their due date without the instructor’s permission.
  • You should save all of your programs and keep backups for the entire semester.
  • Programming style will be considered when grading the assignments: You are expected to use meaningful names for your variables and files and provide sufficient comments in the body of the programs.
  • Throughout the semester, you may submit one homework up to one week late without penalty. In that case, please be sure to advise the instructor before the due date that you will be using your “freebie extension”.

Academic integrity

Make sure that you read the Computer Science Department’s Statement on Academic Integrity. We take cheating very seriously!

  • Discussing homework concepts is fine, but you must submit your own work.
  • Copying all or part of another student’s homework, project or exam is considered cheating.
  • Allowing another student to copy all or part of your homework, project, or exam is also considered cheating.

Please note that if you are caught cheating, you will receive a failing grade for the course.

Web server account

If you do not already have one, you will be assigned a Unix Web server account at the start of the semester. This is called an “i6 account” and we will use it to host our websites. All class work should be posted here.

For questions about i6 accounts, see this FAQ page. If you forget your i6 password, go to this page for instructions on how to reset your password ASAP. If your question is not covered in the FAQ, please see me or the course tutor asap.


Please contact our excellent tutors if you require help in person or via email! Please note that Tutoring hours are held at 539-541 LaGuardia Place ITS Lab (Tel. 212-998-3421)

1) Sijia Meng 

Tuesday/Thursday: 5-8 PM
Wednesday 5-8 PM
2)  Carsen Decker <>

Tuesday/Thursday: 10:30 am- 1:30PM

Wednesday 12:00 – 3:00 PM

Class graders

Section One:  Claire Wang <>

Section Two: Hansa Chen

Submitting assignments through NYU Classes

  1. Log in to NYU Classes with your NYU NetID and password.
  2. Click on the tab for the appropriate class (if there is more than one).
  3. Click on Assignments in the navigation bar on the left.
  4. Click on the link for the corresponding assignment in the main window.
  5. Answer the assignment in the “Assignment Text” box and/or attach files by clicking on the Choose File button under “Attachments”
  6. When you are ready, confirm that your text and any attachments appear and click the Submit button. Wait for confirmation before closing the browser window.

Please note that once you have submitted an assignment you can only resubmit it twice (within the due date), so make sure that what you are submitting is the final version of your assignment.

Make sure that any program you submit as part of the assignment is working (i.e. contains no syntax errors). Otherwise, you will not receive credit for the assignment.