CSC443
Web Programming
Course Description
This course introduces advanced concepts in Web Programming and focuses on the development of dynamic web pages that incorporate both client-side and server-side programming. Topics include web scripting using JavaScript, VBScript, and PHP; Java Beans, server side components such as CGI, ASP, and PHP, installing and configuring web servers. The course also discusses accessing databases through web application. Hands-on experience is required.
Course Learning Outcomes
Students shall be able to demonstrate:
Announcements
August 28, 2017: Fall classes begin
September 28, 2017: Midterm Examination
October 3, 2017: Last day for early withdrawal (WI)
October 24, 2017: Deadline for Incomplete grades
November 7, 2017: Last day for withdrawal from courses (WP/WF)
December 7, 2017: Fall classes end
Instructor
Professor Haidar M. Harmanani
haidar@lau.edu.lb • http://vlsi.byblos.lau.edu.lb • http://harmanani.github.io
Office Hours:
Block A • Room 810
Tuesday, Thursday • 3:00pm – 4:30pm • 8:00pm – 9:30pm or by appointment
Lectures
Lecture 1: Course introduction
Lecture 2: The INTERNET… and a bit of history
Lecture 3:Basic HTML
Lecture 4: CSS for Styling
Lecture 5: CSS for Styling (continued)
Lecture 6: CSS for Styling (continued)
Lecture 7: PHP Basic Syntax
Lecture 8: PHP: Cookies, Sessions, and Database interface
Lecture 9: HTML Forms
Lecture 10: Client Side Scripting: JavaScript
Lecture 11: JavaScript Scope and Closures
Lecture 12: Unobtrusive JavaScript/The DOM Tree
Lecture 13: The DOM Tree
Lecture 14: jQuery
Lecture 15: XML
Lecture 16: JSON
Lecture 17: AJAX
Lecture 18: Web Services
Lecture 19: Web Security
Lecture 20: Web Sockets
Lecture 21: Networks Programming and Web Services Using Python
Lecture 22: MongoDB [MongoDB in 5 Minutes] [MongoDB CRUD Guide]
Lecture 23: NodeJS [Node.js Original Presentation] [Node.js Tutorial]
Lecture 24: AngularJS [Angular 4 Tutorial]
Lecture 25: Introduction to Ruby
Lecture 26: Introduction to Rails
Assignments
Assignment 1: HTML and CSS
Assignment 2: PHP
Assignment 3: JavaScript Prototype Framework and DOM
Assignment 4: AJAX and JSON [JSON Data File]
Assignment 5: MongoDB, NodeJS, and Angular
Assignment 6: Putting it all together!
Labs
Project
Your project should include at least four of the following grouped items with the first item being compulsory:
Your report should document the use of these technologies!
Your project will be graded based on the following:
Although you will be working indecently on the project, you will have five milestones that you have to keep in mind:
Exams
All students are expected to take exams during the scheduled time slots. With the permission of the instructor, you may be allowed to take an exam at an alternate time. However, you must request this rescheduling at least 2 weeks prior to the exam date. Exceptions will naturally be made for sudden problems such as serious illnesses/injury. Since the exam schedule is being published at the beginning of the semester, scheduling conflicts (e.g., job interviews, GREs, etc.) are not legitimate reasons to miss an exam.
Midterm Exam
The midterm exam is scheduled for February 16, 2016: Midterm Examination. The midterm exam will be a closed book exam. In principle, all topics discussed in class (whether on the lecture notes or not) and in the assigned readings are a legitimate source for exam questions.
Fall 2008 Midterm Examination.
Fall 2011 Final Examination.
Final Exam
The final will be comprehensive, with roughly 1/3 of the material devoted to material covered prior to the midterm. The exam will be on May 15, 2015 from 8:00 am - 11:00 am.
Grades
Resources
Readings