CMSC 106 Syllabus

What you will learn in this course

CMSC 106 is an introductory course in client-side web development. In this course you will learn to construct web pages with HTML and CSS, and make those pages dynamic and interactive through the use of the JavaScript programming language. This course assumes that you have no prior experience in computer programming, and in fact is designed as a gentle introduction to computer programming for students who may eventually want to take more courses in computer science.

What you will not learn in this course

Web development consists of two aspects, client-side web development and server-side web development. This course will cover only client-side development. If you are interested in learning server-side development, you should plan on continuing on to take CMSC 150 and CMSC 250 to learn the rudiments of server-side programming. Following those courses you should be in a position to do the necessary self-study to learn what you need to do server-side programming using either Java or JavaScript.

Materials you will need for this course

Our textbook for the first three weeks of the course is HTML & CSS: Design and Build Websites by Jon Duckett. For the JavaScript portion of the course I will be posting full lecture notes on the course web site.

The only software tools you will need for this course are a browser and a text editor. The browser I will be using for all of the examples I show in class is the Googel Chrome browser. If you would like to use that same browser you can download it from http://www.google.com/chrome/. If you prefer to use a different browser you are welcome to do so. You will also need a text editor. I recommend the free Visual Studio Code editor from https://code.visualstudio.com/download.

Course web site

I will be maintaining a course web site at http://www.lawrence.edu/fast/greggj/cmsc106.html. On the course web site you will find a schedule of readings, examples, and problem statements for the projects.

Access to help

If you need assistance with the projects or have questions about the reading, I strongly encourage you to see me in office hours. My office is Briggs Hall 413, and my office hours this term will be 1-3 MWF and 2-4 TTh. If you have questions outside of regular office hours, you can also reach me via email to greggj@lawrence.edu.

Grading policy

Your grade for this course will be based on two components: weekly projects and a weekly quizzes. The best way to learn any kind of programming is to practice, so over the course of the term I will be assigning a number of short projects. These projects will constitute 60% of your grade for this course. In addition to the projects, we will also be having weekly quizzes - these will usually be 20 minute in-class written quizzes that will primarily test your comprehension of the assigned reading. The quizzes will constitute the remaining 40% of your grade. We will not be having midterm exams or a final for this class.

Late policy

Projects will be due at the start of class time on the days that they are due. If you have to turn in a project late, you can do so for 5% late penalty for each day the project is late. (Two weekend days will count as one full day for the purpose of this policy, so if a project is due on Friday and you turn it in on Monday you will be assessed a late penalty of 10% instead of 15%). If you have a legitimate excuse for turning in your work late, such as an illness or an excused absence, please contact me in advance of the due date to arrange an extension.

If you miss a quiz due to illness or other legitimate reason, please contact me to arrange an alternative time to take the quiz. If you miss a quiz and do not have a valid reason for missing class that day you will receive a grade of 0 for the quiz.