CSc 337 - Web Programming

University of Arizona, Summer 2021

Course Description

Introduction to the techniques and technologies for developing dynamic web sites. Topics include a web server, a server-side scripting language, database, JavaScript and AJAX for enriching web services, and page layout with HTML and CSS. Security concerns will be considered with details for prevention of such vulnerabilities in web applications. This course includes a team project to deploy a dynamic website.

Location and Time

This is an online course. There will not be a particular, required class meeting time. However, you will be expected to go over prep material, take a prep quiz, and watch a video most days Monday-Friday for the duration of the course.

Prerequisites & Co-Requisites

The only prerequisite is one semester of computer programming, such as CSc 110, ISTA 130, or ECE 175.

Instructor & Teaching Staff

There will also be some undergraduate TAs. See the class website for their contact info.

Course Format and Teaching Methods

As has been stated, this will be an online course. Though there won’t be regular class meeting times, there will be many course videos that you will be expected to watch. Though the course will be online, I am going to attempt to incorporate active learning and flipped-learning techniques.

By active learning, I mean that watching the course videos won’t just be starting at a computer screen. Instead, the videso will have periodic enbedded questions, which will be worth points. Thus, you’ll need to pay close attention as you watch the videos, and attempt to get as many questions correct as you can! Thus, you can spend some time “actively” learn, rather than “passively” listen to me talk on videos.

By flipped-classroom, I mean that you will often be assigned reading or other material to complete before watching course videos. By doing this, you will (hopefully) have a basic understanding of a concept before watching the video about that concept.

Course Objectives & Learning Outcomes

This course will provide you with hands-on skills for how to do web programming. Topics will include the basics of how the web works (HTTP, HTTPS, web browsers), client-side web programming (HTML, CSS, and Javasccript) and server-side web development (Javascript, Nodejs, Database). By the time you complete this course, you should be well-equipped to build basic web applications. There are many methodologies, design principles, tools, frameworks, and libraries that can be used to build web applications in 2021. We are not going to cover everything (not nearly), but hopefully by the time we are done you’ll know the basics, and gain the confidence to learn new things throughout your career.

Coursework and Grading Policies

The breakdown of grades in this course is as follows:

Instead of meeting at a particular place at a particular time for class, you should watch and interact with pre-recorded videos. The pre-recorded videos will generally have question(s) interspersed throughout. These questions and/or activities will amount to 10% of your final course grade. It is important that you PAY ATTENTION while watching the videos - otherwise, you might not do so well on the questions, costing you valuable points. There will typically be approximately 7 or more videos due per week (Mon-Fri). Each day day of the week, you’ll have one or two videos due.

There will also be an assigned material to read/watch along with each day of class. The general flow of a particular “day” of class should be like so:

Make sure you check D2L regularly to ensure that you don’t miss any of the videos! If you miss or get a zero on more than 6 videos, this will result in a 10% letter grade deduction.

There will be a number of programming assignments throughout the course, which will contribute to 35% percent of the student’s grade. The majority of these will be individual projects, other than the final project.

There will be three exams throughout the course (including the final), for a total of %35. The final will be worth 15%, and the others 10%. These exams may cover material from class, the programming assignments, the final project, and the readings.

Note that you will be taking these exams online, possibly using an electronic proctoring service, such as examity. When taking an exam, it is important to ensure that you have the proper technology and internet access to complete the exam. I will not be providing make-up opportunities for technical difficulties, such as your battery dying while taking an exam, losing internet during an exam, etc. It is up to you to ensure that you have access to a good computer, a reliable internet connection, a webcam and microphone, etc.

The instructor and teaching staff will do their best to have grades back to students within 1 week. This includes, but is not limited to, grades for exams, projects, programming assignments, attendance, videos, and quizzes. Once a grade has been entered for a particular item on the digital grade-book, students have at most 5 days (including weekends) to dispute the grade. This includes disputes related to excuses such as sickness, personal matters, dean’s excuses, etc. If 5 days pass and there has not been such a request, the grade is final.

The correspondence between percentage grade and numeric grade is as follows:

Required Meeting

You are required to meet with the instructor or a TA live in office hours at least twice throughout the duration of the course. The first meeting must be before exam 1 (between 6/7 and 6/29), and the second must be between exams 1 and 2 (7/1 - 7/21). The purpose of these meetings is to allow us to (A) meet you and get to know you, and (B) provide guidance / suggestions on how to do well, how to improve your grade, etc.

Late Days

In this class, you are given 2 late days. What this means is that you are allowed to submit up to 2 programming assignments within 24 hours after the due date throughout the semester, without penalty. You should not burn through all of these free late days on the first few assignments though! Consider saving some for later in the course, when you might be in dire need :).

Final Exam

The final exam will be on August 6, 2021. The window to take this exam will be 10am-2pm on Aug 6th. From when you begin, you will have 2 hours to complete it. If you have work or other committments that you will have on that same day, please work with your supervisor, or others, to make sure you have flexibility to take the exam. There will be no make-up opportunities for the final exam.


There is not a required textbook for this class. However, there will be a number of required readings to read and other resources, such as videos, to watch. These will primarily be freely available resources, such as online videos, blog posts, articles, etc.

Software and Hardware

This class is an introduction to web programming. Due to this, you’ll have to own, or have consistent access to a computer that has a reliable internet connection. You’ll also have to have a code or text editor, though I won’t require a specific one. We will also be using mongoDB and NodeJS, so you will have to have a computer capable of running this software locally.

Web hosting

We will be using digital ocean for web hosting. There is a developer pack students can apply to get free dgital ocean credits. If you have already used your credits in the past, you might need to spend between $10-$20 for this course for your web hosting.

Getting Help

The instructor and teaching staff provide a number of opportunities to receive help when you are stuck. The instructor and TAs will have several online office hours each week. The times of the office hours will likely happen via zoom.

If you are unable to use office hours, you can also get help via email. However, you may not publicly post any of your code or solutions to problems. If you are making a public post (visible to the entire class) make sure you do not include this. If you would like to include this, post to the instructors only. If you are ever stuck, ask for help!


Unless otherwise specified, you may not work in groups on any coursework. This includes exams, programming assignments, projects, videos, and all other coursework. You may not share code, copy/paste code, or look at each-others code. The instructor will be using software to help detect cheating (similar code). If cheating is detected on your work, penalties may include (but are not limited to):

Course Schedule

See the schedule page on the class website for the topic and reading schedule.

Department of Computer Science Code of Conduct

The Department of Computer Science is committed to providing and maintaining a supportive educational environment for all. We strive to be welcoming, respect privacy and confidentiality, behave respectfully and courteously, and practice intellectual honesty. Disruptive behaviors (such as physical or emotional harassment, dismissive attitudes, and abuse of department resources) will not be tolerated.

Classroom Behavior Policy

To foster a positive learning environment, students and instructors have a shared responsibility. We want a welcoming environment where we can challenge ourselves to succeed. To that end, our focus is on the tasks at hand and not on extraneous activities (e.g., texting, chatting, reading a newspaper, making phone calls, web surfing, etc.).Students are asked to refrain from disruptive conversations with people sitting around them during lecture. Students observed engaging in disruptive activity will be asked to cease this behavior. Those who continue to disrupt the class will be asked to leave lecture or discussion and may be reported to the Dean of Students.

Threatening Behavior Policy

The UA Threatening Behavior by Students Policy prohibits threats of physical harm to any member of the University community, including to oneself. See

Accessibility and Accommodations

At the University of Arizona we strive to make learning experiences as accessible as possible. If you anticipate or experience physical or academic barriers based on disability or pregnancy, you are welcome to let me know so that we can discuss options. You are also encouraged to contact Disability Resources (520-621-3268) to explore reasonable accommodation. Please be aware that the accessible table and chairs in this room should remain available for students who find that standard classroom seating is not usable.

Code of Academic Integrity

Students are encouraged to share intellectual views and discuss freely the principles and applications of course materials. However, graded work/exercises must be the product of independent effort unless otherwise instructed. Students are expected to adhere to the UA Code of Academic Integrity as described in the UA General Catalog. See

The University Libraries have some excellent tips for avoiding plagiarism, available at

Selling class notes and/or other course materials to other students or to a third party for resale is not permitted without the instructor’s express written consent.

Violations to this and other course rules are subject to the Code of Academic Integrity and may result in course sanctions. Additionally, students who use D2L or UA e-mail to sell or buy these copyrighted materials are subject to Code of Conduct Violations for misuse of student e-mail addresses. This conduct may also constitute copyright infringement.

Additional Resources for Students

UA Academic policies and procedures are available at Student Assistance and Advocacy information is available at

Subject to Change Statement

Information contained in the course syllabus, other than the grade and absence policy, may be subject to change with advance notice, as deemed appropriate by the instructor.