This course provides an introduction to the development of Web-based applications using PHP, JavaScript, MySQL/MariaDB, and Apache. The course covers fundamental programming language constructs of both PHP and JavaScript, forms, sessions, interation with MySQL/MariaDB via PHP, DOM, and JavaScript event-handling. In addition, popular JavaScript libraries (e.g., JQuery) will be overviewed.
| Prerequisite | C or better in CMSC 216 and CMSC 250 |
|---|---|
| Credits | 3 |
Credit granted for only 389J and 389P OR 389N.
| Name | Office |
|---|---|
| Nelson Padua-Perez | AVW 1203 |
For office hours and other contact information, visit the staff link.
Final grades will be computed according the following weights:
| 25% | Individual Projects |
|---|---|
| 15% | Group Project |
| 30% | Midterms (2, 15% each) |
| 30% | Final Exam |
Once we have graded any class material (e.g., exams, projects, etc.) we will post an announcement and a deadline by which you must submit any regrade request (if necessary). It is your responsibility to submit regrade requests by the specified deadline; no regrade requests will be processed afterwards.
Office hours get extremely busy the day before a project deadline. Therefore do not wait to start your projects. Regarding office hours and the TA Room:
You need to keep backups of your projects as you develop them. No extensions will be granted because you accidentally erased your project. Feel free to use the submit server as a backup tool by submitting often. You can also use tools like git, etc. Do not post code in any online system that is accessible to others (e.g., GitHub).
Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. In short, all submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct.
It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit http://www.shc.umd.edu.
The CS Department takes academic integrity seriously. Information on how the CS Department views and handles academic integrity matters can be found at Academic Integrity.
The following are examples of academic integrity violations:
Additional information can be found in the sections titled "Academic Integrity" and "Code of Student Conduct" available at Course Related Policies.
We will be using (Piazza) for class communication. You will not be able to register to Piazza yourself. Your instructor will register you using the e-mail you have in the school system.
See the section titled "Attendance, Absences, or Missed Assignments" available at Course Related Policies.
See the section titled "Accessibility" available at Course Related Policies.
All course materials are copyright UMCP, Department of Computer Science © 2017. All rights reserved. Students are permitted to use course materials for their own personal use only. Course materials may not be distributed publicly or provided to others (excepting other students in the course), in any way or format.
This schedule is tentative and subject to change. Keep in mind that the slides may not include all the material discussed in lecture. You are responsible for any material we present in lecture, even if it does not appear in the posted slides.
| Week | Topics | Slides | Work |
|---|---|---|---|
| Week #1 (Jan 25) |
Course Introduction, HTML5 Intro | IntroHTML.pdf IntroHTMLCode.zip | |
| Week #2 (Jan 30) |
Server-Side Scripting vs Client-Side Scripting, HTML5 Cont., CSS, Server Side Includes, Apache/PHP Installation, PHP/HTML Mode, PHP Fundamentals (variables, types, operators, conditionals, loops) | HTMLCSS.pdf HTMLCSSCode.zip PHPFundamentals.pdf PHPFundamentalsCode.zip | |
| Week #3 (Feb 6) |
Fucntions, Passing by Value/Reference, Default Arguments, HTML Forms, Get vs. Post, include statements, PHP Heredoc | ArrayForms.pdf ArrayFormsCode.zip HeredocSelfRef.pdf HeredocSelfRefCode.zip | P1 Out (Mon) |
| Week #4 (Feb 13) |
Self-referencing Scripts, header function, Sessions, Cookies, Hidden Fields, Files, Data/Time Functions, Configuration Options | ConfigSessionsCode.pdf ConfigSessionsCode.zip FilesTime.pdf FilesTimeCode.zip |
P1 Due (Tue) P2 Out (Mon) Group Project Out (Mon) |
| Week #5 (Feb 20) |
PHP Object Model, Serialization, Database Systems | Objects.pdf ObjectsCode.zip SQL.pdf |
P2 Due (Wed) P3 Out (Wed) |
| Week #6 (Feb 27) |
Database Systems, MySQL, PHP/MySQL | SQLII.pdf SQLII.zip |
P3 Due (Fri) Group Project Proposal Due (Thu) |
| Week #7 (Mar 6) |
MySQL Misc, Security | SQLMisc.pdf Security.pdf SecurityCode.zip |
Midterm I (Tue) P4 Out (Thu) |
| Week #8 (Mar 13) |
JS Data Types, Variables, Expressions, Strict Mode, Tuesday (SnowDay). Project Proposal Discussion | JSIntro.pdf JSIntroCode.zip | |
| Spring Break 2017 (Mar 19-Mar 26) | |||
| Week #9 (Mar 27) |
Arrays, Console, Functions, let/const, Template Literals, Debugging | JSIntroArrays.pdf JSIntroArraysCode.zip | |
| Week #10 (Apr 3) |
Default Parameters, Rest Operator, Spread Operator Arrow Functions, Symbols, Sets, Maps, Forms, DOM, Events Handling, Form Validation | JSElements.pdf JSElementsCode.zip FormsI.pdf FormsICode.zip FormsII.pdf FormsIICode.zip |
P4 Due (Fri) P5 Out (Sat) |
| Week #11 (Apr 10) |
jQuery, Ajax, JSON, Custom Type Definition, localStorage | jQuery.pdf JQueryCode.zip AjaxCookies.pdf AjaxCookiesCode.zip JSObjects.pdf JSObjectsCode.zip ObjsAPIS.pdf ObjsAPISCode.zip | |
| Week #12 (Apr 17) |
Group Project Update, Canvas, FileReader API, Geolocation API |
P5 Due (Mon) Midterm II (Thu) |
|
| Week #13 (Apr 24) |
Browser Object Model, JS Classes, Object Methods, Framework's Overview, Modules | Misc.pdf MiscCode.zip JSClasses.pdf JSClassesCode.zip FrameworksLibraries.pdf | P6 Out (Mon) |
| Week #14 (May 1) |
Node.js, Web Services (REST, SOAP) | NodeJS.pdf NodeJSCode.zip WebServices.pdf | P6 Due (Fri) |
| Week #15 (May 8) |
Project Demos |
Group Project Due (Mon) Last Day of Classes (Thu/May 11) Final Exam (Thu/May 18 1:30pm-3:30pm) |
|
| CMSC389N Schedule | |||
| Name | Nelson Padua-Perez |
|---|---|
| Office | AVW 1203 |
| Office Hours | Mon, Wed → 12:30 pm - 2:00 pm |
| nelson [AT] cs [DOT] umd [DOT] edu |
All TA office hours take place in AVW 1120 (Small TA Room, First Floor).
| Name | Pic | |
|---|---|---|
| Jenish Kanani | jenishkanani1 [AT] gmail [DOT] com | ![]() |
| Reed Trevelyan | reedtrevelyan [AT] gmail [DOT] com | ![]() |
| Roozbeh Yousefzadeh | first name [AT] cs.umd [DOT] edu | ![]() |
| Name | Nelson Padua-Perez |
|---|---|
| Office | AVW 1203 |
| Office Hours | Mon, Wed → 12:30 pm - 2:00 pm |
| nelson [AT] cs [DOT] umd [DOT] edu |
All TA office hours take place in AVW 1120 (Small TA Room, First Floor).
| Name | Pic | |
|---|---|---|
| Jenish Kanani | jenishkanani1 [AT] gmail [DOT] com | ![]() |
| Reed Trevelyan | reedtrevelyan [AT] gmail [DOT] com | ![]() |
| Roozbeh Yousefzadeh | first name [AT] cs.umd [DOT] edu | ![]() |
This schedule is tentative and subject to change. Keep in mind that the slides may not include all the material discussed in lecture. You are responsible for any material we present in lecture, even if it does not appear in the posted slides.
| Week | Topics | Slides | Work |
|---|---|---|---|
| Week #1 (Jan 25) |
Course Introduction, HTML5 Intro | IntroHTML.pdf IntroHTMLCode.zip | |
| Week #2 (Jan 30) |
Server-Side Scripting vs Client-Side Scripting, HTML5 Cont., CSS, Server Side Includes, Apache/PHP Installation, PHP/HTML Mode, PHP Fundamentals (variables, types, operators, conditionals, loops) | HTMLCSS.pdf HTMLCSSCode.zip PHPFundamentals.pdf PHPFundamentalsCode.zip | |
| Week #3 (Feb 6) |
Fucntions, Passing by Value/Reference, Default Arguments, HTML Forms, Get vs. Post, include statements, PHP Heredoc | ArrayForms.pdf ArrayFormsCode.zip HeredocSelfRef.pdf HeredocSelfRefCode.zip | P1 Out (Mon) |
| Week #4 (Feb 13) |
Self-referencing Scripts, header function, Sessions, Cookies, Hidden Fields, Files, Data/Time Functions, Configuration Options | ConfigSessionsCode.pdf ConfigSessionsCode.zip FilesTime.pdf FilesTimeCode.zip |
P1 Due (Tue) P2 Out (Mon) Group Project Out (Mon) |
| Week #5 (Feb 20) |
PHP Object Model, Serialization, Database Systems | Objects.pdf ObjectsCode.zip SQL.pdf |
P2 Due (Wed) P3 Out (Wed) |
| Week #6 (Feb 27) |
Database Systems, MySQL, PHP/MySQL | SQLII.pdf SQLII.zip |
P3 Due (Fri) Group Project Proposal Due (Thu) |
| Week #7 (Mar 6) |
MySQL Misc, Security | SQLMisc.pdf Security.pdf SecurityCode.zip |
Midterm I (Tue) P4 Out (Thu) |
| Week #8 (Mar 13) |
JS Data Types, Variables, Expressions, Strict Mode, Tuesday (SnowDay). Project Proposal Discussion | JSIntro.pdf JSIntroCode.zip | |
| Spring Break 2017 (Mar 19-Mar 26) | |||
| Week #9 (Mar 27) |
Arrays, Console, Functions, let/const, Template Literals, Debugging | JSIntroArrays.pdf JSIntroArraysCode.zip | |
| Week #10 (Apr 3) |
Default Parameters, Rest Operator, Spread Operator Arrow Functions, Symbols, Sets, Maps, Forms, DOM, Events Handling, Form Validation | JSElements.pdf JSElementsCode.zip FormsI.pdf FormsICode.zip FormsII.pdf FormsIICode.zip |
P4 Due (Fri) P5 Out (Sat) |
| Week #11 (Apr 10) |
jQuery, Ajax, JSON, Custom Type Definition, localStorage | jQuery.pdf JQueryCode.zip AjaxCookies.pdf AjaxCookiesCode.zip JSObjects.pdf JSObjectsCode.zip ObjsAPIS.pdf ObjsAPISCode.zip | |
| Week #12 (Apr 17) |
Group Project Update, Canvas, FileReader API, Geolocation API |
P5 Due (Mon) Midterm II (Thu) |
|
| Week #13 (Apr 24) |
Browser Object Model, JS Classes, Object Methods, Framework's Overview, Modules | Misc.pdf MiscCode.zip JSClasses.pdf JSClassesCode.zip FrameworksLibraries.pdf | P6 Out (Mon) |
| Week #14 (May 1) |
Node.js, Web Services (REST, SOAP) | NodeJS.pdf NodeJSCode.zip WebServices.pdf | P6 Due (Fri) |
| Week #15 (May 8) |
Project Demos |
Group Project Due (Mon) Last Day of Classes (Thu/May 11) Final Exam (Thu/May 18 1:30pm-3:30pm) |
|
| CMSC389N Schedule | |||
You must satisfy a minimum set of requirements for each project (Good Faith Attempt) otherwise you will not pass the course (automatic grade of F). Each project defines its own good faith attempt criteria. Notice that you will not receive extra points for completing the good faith attempt. The grade you obtain in the project will be based on your ontime/late submission.
| Project | Good Faith Attempt | Deadline |
| Project #3, Grades Submission | Processing (Going back and correcting grades) | May 1 |
|---|---|---|
| Project #4, Application System | Submit and Review Application | May 3 |
| Project #6, Utilities |
Photoviewer "Slide Show" generates a sequential slide show, "Random Slide Show" generates a random slide show, Doubly-linked list was used to implement functionality, Photoviewer customer type defined. No Recorder implementation expected. | May 10 |
After any class material is graded, you have a period to address any grading concerns. Unfortunately we will not be able to address any grading concerns after the specified deadline.
| Class Material | Grading Concerns Deadline |
|---|---|
| Project #1 | Wed Mar 8 |
| Project #2 | Wed Mar 15 |
| Midterm #1 | Fri Apr 7 |
| Project #3 | Fri Apr 14 |
| Project #4 | Wed Apr 26 |
| Project #5 | Mon May 8 |
| Midterm #2 | Wed May 10 |
| Project #6 | Fri May 12 |
The planned dates when projects will be handed out and due is given in the course schedule. Beware that the exact dates are subject to change, but we will try to give you fair notice of any changes.
| Project | Deadline |
|---|---|
| Web Page (P1) | Wed Feb 15 |
| Group Project | Thu Mar 2/ Mon May 8 |
| Request Form (P2) | Wed Feb 22 |
| Grades Submission (P3) | Fri Mar 3 |
| ApplicationSystem (P4) | Thu Apr 6 |
| DataValidation (P5) | Mon Apr 17 |
| Utilities (P6) | Fri May 5 |
This page provides information regarding course exams.
| Exam | Date |
| Midterm I | Tue Mar 7 |
|---|---|
| Midterm II | Thu Apr 20 |
| Final | Thu May 18 |
Revalidate link is revalidate page.
We will be using (Piazza) for class communication. Regarding Piazza:
This course provides an introduction to the development of Web-based applications using PHP, JavaScript, MySQL, and Apache. The course covers fundamental programming language constructs of both PHP and JavaScript, forms, sessions, interation with MySQL via PHP, DOM, and JavaScript event-handling. In addition, popular JavaScript libraries (e.g., JQuery) will be overviewed.
© 2017 University of Maryland College Park, MD 20742