CMSC 122
Intro to Programming via the Web

12/16/15   Course grades have been submitted to the University and are visible on the grades server. Have a great Winter break!

12/11/15   To help you prepare for the final, here is a copy of the questions from quiz #5.

12/09/15   The final exam for this course will be held on Monday 12/14 from 4:00PM to 6:00PM in room TYD 0130 (Tydings Hall). Please arrive at 3:50 so that we can start the exam at exactly 4:00PM.

12/09/15   Correction: In class I mistakenly said that projects would be worth 40% of the course grade. That was a mistake -- as stated on the syllabus, the projects will be worth a total of 35% of the course grade.

11/25/15   Project #5 has been posted. This will be the last project. This project will take a considerable amount of work, so please do not wait until the last minute to begin!

11/25/15   Scores from the second midterm have been posted on the grades server. The median score was 77. (Exam scores for students who took the exam at DSS, or who are taking a makeup exam have not yet been posted.)

11/08/15   Please bring laptops to class on Wednesday for an in-class exercise.

11/01/15   If you'd like more practice writing functions that process arrays, you can find some additional exercises here.

11/01/15   Project #4 has been posted.

10/29/15   Please bring laptops to class on Monday of next week.

10/21/15   Project #3 has been posted.

10/09/15   Midterm #1 is Monday of next week (10/12). Be sure to arrive on time and bring pencils with working erasers!

10/01/15   The Term Paper assignment has been posted. Although the due date is far away, keep in mind that this assignment will require a significant amount of time and effort. We suggest starting early; time invested now will save time later in the semester when you will probably be much busier in all of your courses (including this one).

09/28/15   Project #2 has been posted.

09/27/15   Pouya Motakef's office hour on Wednesday 9/30 from 11-12 is cancelled. Another TA will be covering the hour from 10-11 that day in room 1112 A.V. Williams, and Fawzi has an office hour on Wednesday from 11-12, so stop by if you have questions or need help.

09/25/15   Project submissions will be rejected by the server if the files are too large. If this happens to you, you need to resize your photos (make them smaller) using a photo-editing tool.

09/24/15   The in-class exercise that was planned for tomorrow has been moved to Monday of next week. Please bring your laptops on Monday (you won't need them tomorrow).

09/22/15   Project #1 correction: Your web pages must validate with no errors or warnings at all. (Originally the project description stated that certain warnings were okay -- that is not the case.)

09/21/15   Project #1 clarification: Your "additionalInfo" page should not contain a lot of links to external pages. We want to see the content directly ON the page itself.

09/21/15   Project #1 clarification: You should be using CSS on the main page to render the table's border. You should not be using CSS for anything else on that page, but you may use CSS on your "additionalInfo" page, if you choose to.

09/17/15   Project #1 correction: The URL that was originally specified for the "campus tour" was a dead link. The project description has been updated. Please be sure that your "campus tour" link points to this URL:

09/16/15   Project #1 has been posted. There is a link to the project description within the "Assignments" tab.

09/15/15   Fawzi's office hours have moved. Please see the "Contact Info" tab for the new schedule.

09/10/15   Please bring laptops to class again on Monday of next week (9/14). We'll be doing another in-class practice session.

09/10/15   At least one student has reported that Komodo Edit is not running on an older version of Mac OS X. If you are in this situation, we strongly suggest upgrading your operating system to the newest version of OS X, which is a good idea anyway. If you are unable to upgrade, you can try installing an older version of Komodo Edit from this link: Komodo-Edit-8.5.4

09/03/15   If you have a laptop, please bring it to class on Wednesday, 9/9. We will be doing an in-class exercise. Before Wednesday, please install two things on your laptop: "Komodo Edit" and "Cyberduck". There are links to both of these utilities under the "Resources" tab of the class webpage.

09/03/15   Don't forget that campus is closed on Monday!

08/30/15   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.

08/30/15   Welcome to CMSC 122 for the Fall 2015 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

There is no required textbook for this course and no assignments will refer to a textbook.

The web is full of useful information that can help you learn the material we will be covering, and we will suggest many (free) web resources as references as we go along. For students who like having a textbook as a secondary source of explanations and for practice problems, we recommend those listed below. Older editions of these books are just as useful as the newest editions, and there are many vendors selling these materials online for reasonable prices.

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 student's computer.

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

Course Grades

Final grades will be computed according the following weights.

35% Projects
8% Research Paper
10% Quizzes (Some Pop Quizzes)
12% Midterm #1
12% Midterm #2
23% 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
URL's, HTML, tags
Lecture Slides
Coding Examples
Week 2
Labor Day Holiday (No Class) HTML validation, 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
Project overview, tables, block vs. inline elements
Lecture Slides
Coding Examples
Quiz #1
Intro to CSS
Lecture Slides
Coding Examples
Week 4
CSS Children, parent, descendants; colors; size units; comments; selectors (universal, class, id)
Lecture Slides
Coding Examples
Child and Descendant selectors; pseudo-classes, box model, fonts
Lecture Slides
Coding Examples
Backgrounds, "fun with text", Conducting Research on the Web
Lecture Slides
Coding Examples
Week 5
Validity of web resources; practice session
Lecture Slides
Quiz #2
Intro to JavaScript; output, comments
Lecture Slides
Coding Examples
Strings, variables, user input (prompt), variable names, type conversions
Lecture Slides
Coding Examples
Week 6
Math functions, comparison operators, boolean variables, if and if/else statements
Lecture Slides
Coding Examples
Logical operators, Practice Session
Lecture Slides
Coding Example
Review for midterm
Lecture Slides
Coding Examples
Week 7
Midterm #1 Return and go over Midterm
Java error console; While loops
Lecture Slides
Coding Examples
Week 8
Nested loops, Do-while loops, Intro to functions
Nested loops, Do-while loops, Intro to functions
Lecture Slides
Coding Examples
More functions, parameters, return values
Lecture Slides
Coding Examples
Week 9
Local vs. global variables, 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
Quiz #3
Lecture Slides
Coding Examples
Week 10
Modifying arrays; Practice Session (Event driven programming; dynamic updates)
Lecture Slides
Coding Examples
Review; Practice functions and arrays
Lecture Slides
Coding Examples
Intro to forms; buttons, text boxes
Lecture Slides
Coding Examples
Week 11
Last day to Withdraw from a course.
Forms: Multi-line text box, checkboxes, radio buttons, selection boxes
Lecture Slides
Coding Examples
Labels, Practice session (calculator)
Lecture Slides
Coding Examples

Fieldset, Legend, Client-side form submission, get vs. post
Quiz #4
Lecture Slides
Coding Example

Week 12
Separating JavaScript form HTML, Measuring and Improving "Usability"
Lecture Slides
Coding Examples
Intro to Color Theory; 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
Continue recursion
Quiz #5

Review for final
Week 16
Final Exam

Fawzi Emad
Office: 1201 A.V. Williams
Office Hours: Mon 10-10:50, Wed 11-11:50, Fri 3-3:50

Teaching Assistants
 EmailOffice Hours
Mingfei Gao (See table below)
Pouya Motakef (See table below)
Han-Chin Shing (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 - 10:00   Mingfei     Mingfei
10:00 - 11:00   Mingfei Pouya   Mingfei
11:00 - 12:00     Pouya    
12:00 - 1:00   Han-Chin   Han-Chin  
1:00 - 2:00   Han-Chin   Han-Chin  
2:00 - 3:00          
3:00 - 3:30          
3:30 - 4:00       Pouya  
4:00 - 4:30 Pouya     Pouya  
4:30 - 5:00 Pouya        
Online Course Tools

Programming Resources

File Transfer Client

Online Tutorials
Term Assignments
Assignment Due Date
Term Paper Wednesday 11/18, at the beginning of class

Focused Projects
Assignment Due Date
Summer Camp Webpage (HTML) Sunday 09/27/15, 11:00PM
My Major (HTML & CSS) Thursday 10/08/15, 11:00PM
Hiding Game Sunday 11/01, 11:00PM
Hiding Game, Part II Thursday 11/12, 11:00PM
Country Names Thursday 12/10, 11:00PM

Web Accessibility