CMSC 122
Intro to Programming via the Web

12/10/14   As was mentioned in class (twice) there is a limit to the size of your project. If your zip file is too large it will be rejected. Under 8MB should be okay. If your project is rejected by the server you will have to trim some things down. Please see the previous announcement about reducing the size of photos. We will not be granting extensions for students whose projects are rejected by the server because they are too large, so it would be a good idea not to wait until the last day to attempt to submit the project.

12/09/14   For anyone who is using multiple photos in the Term Project but is concerned about the file size limit for submission: I found a cool utility online that resizes photos and allows you to save them with "lower quality", which makes the file size a lot smaller. It has default sizes that are limited, but note that there is a small (hard to see) link that says "More options", which will allow you to resize the photo to any size you want. The utlity is here.

12/08/14   The final exam will be on Monday 12/15 from 4:00PM to 6:00PM in room TYD 0130. Please arrive at 3:50 so that we can get everything underway at 4:00PM precisely.

11/13/14   Although a little late to be of use for our Term Paper, I want to make sure you know about the UMCP Writing Center. These folks can help you improve your writing in a variety of ways.

11/13/14   Please bring laptops to class on Friday for an in-class exercise on HTML forms.

11/09/14   The Term Project assignment has been posted.

11/06/14   Some additional exercises on arrays can be found here. Feel free to drop by office hours (mine or one of the TAs) if you are not sure how to solve any of these.

11/02/14   Please bring laptops to class on Wednseday for an in-class exercise about arrays.

10/30/14   Project #4 has been posted.

10/29/14   Please bring laptops on Friday, if you have one. Also, please don't forget that we will be having a quiz that day.

10/29/14   Regarding Project #3: You should be trying to make your tables look as close to the example as possible. The font we used was arial.

10/21/14   It has been brought to my attention that at least one of the TAs misunderstood my intentions for grading Project #1 and penalized too much for validation errors. The TAs are going through to correct any students who were affected. The maximum penalty for validation errors should have been 10 points.

10/20/14   Project #3 has been posted.

10/19/14   If you have a laptop, please bring it to class with you on Wednesday.

10/10/14   The midterm exam is on Monday. Be sure to arrive on time, and bring pencil(s) with working eraser(s).

10/06/14   If you have a laptop, please bring it to class on Wednesday 10/08.

10/01/14   Project #2 hint: If you are having trouble getting an element to align either at the top or the bottom of its container, you might try setting the "vertical-align" property instead of adjusting margins/borders.

09/29/14   The due date for the Term Paper was posted incorrectly. The term paper is due at the beginning of class on Wednesday 11/19.

09/29/14   The Term Paper assignment has been posted.

09/29/14   Project #2 has been posted.

09/23/14   There will be another in-class exercise on Friday, so please bring a laptop with you if you have one.

09/23/14   For project #1, you are not permitted to use CSS for your main page, but you may use CSS for your additionalInfo page, if you choose to. Be sure that no matter what you do, your code still validates succesfully!

09/16/14   Project #1 has been posted! There is a link to the project specification in the "Assignments" section of this page. We will give an overview of the project in class tomorrow.

09/16/14   The first quiz will be on Friday of this week. It will cover everything we've talked about in class up through Monday's lecture.

09/11/14   Please bring a laptop (if you have one) to class again on Monday of next week.

09/08/14   If you have a laptop, please bring it to class on Wednesday. There are two applications that you should try to install on your computer as soon as possible. Both are available on the "Resources" area of this web site. They are: Komodo Edit, and one of the File Transfer Clients.

09/02/14   All students are required to attend the lecture for which they are registered. Sorry, but the course is quite full, so we will be adhering to this policy very strictly.

09/02/14   Welcome to CMSC 122 for the Spring 2014 Semester. Important announcements will appear here as the semester goes on. Be sure to look every day.

Welcome to CMSC 122. This course provides an introduction to the internet/web capabilities and trends, and to computer programming in the context of building simple web pages. Intended for students with no previous programming experience who wish to understand the technologies making web sites possible, this course will provide a set of practical problem solving skills necessary for the development of dynamic client-side web content. This class provides non-majors with a basic skill set for leveraging web technologies and limits of such resources.

Topical Content
  • History of the Web/Internet
  • Internet and Society
  • Web/Internet Fundamentals
  • HTML/CSS for dynamic web sites
  • Web authoring tools
  • Design (pseudocode)
  • Input/Output/Expressions in JavaScript
  • Conditional/Iteration Statements in JavaScript
  • Testing/Debugging
  • Aggregate types in JavaScript
  • Web Page Evaluation
  • Research-Quality Web Searching
  • Basics of usability and art theory in web page design
  • Basics of e-commerce and tool integration in the web

Fawzi Emad

Recommended Textbooks
Title Authors ISBN
JavaScript: A Beginner's Guide, Second Edition John Pollack 9780071809375
HTML and XHTML Pocket Reference Jennifer Niederst Robbins 9781449363352
CSS Pocket Reference (Any Edition) Eric A. Meyer 9781449399030

Textbook Notes:

  • The books listed here are recommended not required.
  • A textbook may be available as an eBook (EBK). This version is the actual text, costs less than the text,and is available for 180 days. It is downloaded directly to the students computer and sent via email.

Course Grades

Final grades will be computed according the following weights.

40% Projects
8% Research Paper
10% Quizzes (Some Pop Quizzes)
11% Midterm #1
11% Midterm #2
20% Final Exam

Due dates

Programming Projects

The due dates for these assignments are rigid. Programming assignments will be due at 11:00PM on the date specified at the top of the project description. You may submit a programming assignment up to 24 hours after the due date, but you will be penalized 20 points (we will subtract 20 points from your total). No assignments will be accepted after the late deadline. Exceptional circumstances will be considered only if discussed with the instructor before the assignment is due. These assignments are to be submitted electronically according to the instructions provided in the project description. We will not accept programming assignments via email.

Written Assignments

Assignments that are to be handed in on paper will be due at the beginning of class. These assignments will not be accepted after the due date unless there are very extraordinary circumstances.

Project Implementation
Projects in this class must be completed individually and collaboration is not permitted. All assignments can be done on the machine of your choice. You are welcome to do the work on a home computer if you have one. There should not be any machine-specific dependencies in your code. However, if we are not able to run your program because there is a difference between your and our computer environments, you must work with us to get your program to work in our environment.

Class Announcements

You are responsible for reading the class announcements that are posted on this webpage often (at least once a day). Important information about the course (e.g., deadlines, project updates, etc.) will be posted in this section.

Excused Absences
  1. Any student who needs to be excused for an absence from a single class session , due to a medically necessitated absence shall:
    • Make a reasonable attempt to inform the instructor of his/her illness prior to the class. If you are going to miss an in-class assignment then we expect to hear from you (either email or a telephone message) before the class session begins.
    • Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. The note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(h) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and will result in disciplinary action.
    • This self-documentation may not be used for the Major Scheduled Grading Events as defined below and it may only be used for 1 class meeting during the course.

  2. Any student who needs to be excused for more than one absence, or for a "Major Scheduled Grading Event", must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the timeframe that the student was unable to meet academic responsibilities. The documentation should be given to the instructor, not the TA. We will not accept a "self-signed" note for "major scheduled grading events", as defined below, nor for multiple absences. The note must be signed by a health care professional.

    The Major Scheduled Grading Events for this course include:
    • Midterm #1
    • Midterm #2
    • Final Exam
    • Programming Projects
    • Research Paper

Academic Honesty
All assignments/exams must be done individually. Please visit the webpage of the Student Honor Council for a detailed explanation of what constitutes academic dishonesty. Note that it 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. You are allowed to use the Web for reference purposes, but you may not copy code from any website or any other source. In short, all submitted work must be your own.

Cases of academic dishonesty will be dealt with harshly. Each such case will be referred to the University's Office of Judicial Programs. If the student is found to be responsible of academic dishonesty, the typical sanction results in a special grade "XF", indicating that the course was failed due to academic dishonesty. More serious instances can result in expulsion from the university. If you have any doubt as to whether an act of yours might constitute academic dishonesty, please contact your instructor.

Course Evaluations
Your participation in the evaluation of courses through CourseEvalUM is a responsibility you hold as a student member of our academic community. Your feedback is confidential and important to the improvement of teaching and learning at the University as well as to the tenure and promotion process. Please go directly to the website ( to complete your evaluations. By completing all of your evaluations each semester, you will have the privilege of accessing online, at Testudo, the evaluation reports for the thousands of courses for which 70% or more students submitted their evaluations.

Disability Support Services
Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support Services (DSS) within the first two weeks of the semester. If special accommodations are to be given for any exam, then the student is also required to schedule the exam and provide to the instructor (before/after class) the form that specifies the scheduled time and date of the requested accommodation. This form must be provided at least four days before the exam. Please note that the time/date of the scheduled exam must overlap with the time/date of the regular in-class exam. You may not schedule the exam at an alternate time or date.
Exam Dates:

Lecture Schedule (Approximate):
Week 1
Course overview, Intro to Networks
Lecture Slides
Servers, World Wide Web, DNS
Lecture Slides
Week 2
URL's, HTML, tags, validation
Lecture Slides
Coding Examples
HTML Examples, practice session
Lecture Slides
Comments, attributes, lists, links, etc.
Lecture Slides
Coding Examples
Week 3
Last day for schedule adjustment (drop/add)
Images, Practice session
Lecture Slides
Coding Examples
Tables, block vs. inline elements, intro to CSS
Lecture Slides
Coding Examples
Quiz #1
CSS syntax, colors, size units
Lecture Slides
Coding Examples
Week 4
Children, parent, descendants; comments; selectors
Lecture Slides
Coding Examples
Pseudo-classes, box model, fonts, backgrounds, Fun with Text
Lecture Slides
Coding Examples
Practice Session
Lecture Slides
Coding Examples
Week 5
Conducting research using Web resources
Lecture Slides
Coding Examples
Quiz #2
Intro to JavaScript; output, comments, strings, variables
Lecture Slides
Coding Examples
Input (prompt), variable names, type conversions, math functions
Lecture Slides
Coding Examples
Week 6
Comparison operators, boolean variables, if and if/else statements, logical operators
Lecture Slides
Coding Examples
Practice Session
Lecture Slides
Review for midterm
Lecture Slides
Coding Examples
Week 7
Midterm #1 Return and go over Midterm
Java Error Console; Intro to loops
Lecture Slides
While loops; Nested loops
Lecture Slides
Coding Examples
Week 8
More Nested loops, Do-while loops, Intro to functions
Lecture Slides
Coding Examples
Practice session (guessing game)
Lecture Slides
Coding Examples
More functions, parameters, return values; local vs. global variables
Lecture Slides
Coding Examples
Week 9
Event driven programming, Javascript events and event handlers, dynamically updating HTML elements
Lecture Slides
Coding Examples
Another dynamic example; "Pausing" with setTimeout; for loops
Lecture Slides
Coding Examples
practice session (Whack-A-Mole)
Quiz #3
Lecture Slides
Week 10
Lecture Slides
Coding Examples
Practice Session (arrays)
Lecture Slides
Coding Examples
Intro to forms; buttons, text boxes
Lecture Slides
Coding Examples
Week 11
Last day to Withdraw from course is Tuesday 11/11
Intro to Color Theory; Measuring and Improving "Usability"
Lecture Slides
Forms: Multi-line text box, checkboxes, radio buttons, selection boxes
Lecture Slides
Coding Examples

Practice session (payment calculator)
Quiz #4
Lecture Slides
Coding Example

Week 12
Labels, Fieldset, Legend, Client-side form submission, get vs. post, separating JavaScript form HTML
Lecture Slides
Coding Examples
Large scale software, dramatic softare failures, tips for becoming a better programmer!
Lecture Slides
Review for Midterm
Week 13
Midterm #2 TBA Thanksgiving Holiday (No class)
Week 14
Go over Midterm Rounding errors, 2-dimenensional arrays, increment/decrement operators
Lecture Slides
Coding Examples
Variations on assignment operator, break/continue, intro to Recursion
Lecture Slides
Coding Examples
Week 15
Continue recursion
Lecture Slides
Coding Examples
Continue recursion
Quiz #5

Lecture Slides
Coding Examples
Review for final
Lecture Slides
Week 16
Final Exam

Fawzi Emad
Office: 1201 A.V. Williams
Office Hours: MWF 11:00-11:50

Teaching Assistants
 EmailOffice Hours
Bor-Chun (Sirius) Chen (See table below)
Rahmatri Mardiko (See table below)
Konstantinos Zampogiannis (See table below)

TA Office Hours Schedule

All TA office hours take place in room 1112 A.V. Williams. Please note that a TA may need to leave 5 minutes before the end of the hour in order to go to his/her class. Please be understanding of their schedules.

9:00 Sirius        
10:00 Sirius   Mardiko    
11:00   Kostas      
12:00   Kostas      
1:00     Sirius Kostas  
2:00 Mardiko   Sirius Kostas  
3:00 Mardiko        
4:00         Mardiko
Online Course Tools

Programming Resources

File Transfer Clients

Online Tutorials
Term Assignments
Assignment Due Date
Term Paper Wednesday 11/19, at the beginning of class
Term Project Friday 12/12, 11:00PM

Focused Projects

Web Accessibility

Assignment Due Date
Summer Camp Webpage (HTML) Sunday 09/28/14, 11:00PM
My Major (HTML & CSS) Thursday 10/09/14, 11:00PM
Hiding Game Thursday 10/30/14, 11:00PM
Hiding Game, Part II Sunday 11/09/14, 11:00PM