Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CSC 337 Web Programming

Summer 2023

Description of Course

Introduction to the techniques and technologies for developing dynamic web sites. Topics include a web server, PHP as the server-side scripting language, the MySQL 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.

Course Prerequisites

A college level programming course that teaches programming in a high-level programming language that includes data types, strings, selection, loops, methods (functions), argument/parameter association, lists (arrays), and lists of lists (2-D arrays). CSC 337 are CSC 110 or CSC 127A or CSC 227 or ISTA 130 or ECE 175. Experience has shown students do better in CSC 337 after taking two or three courses such as CSC 110 and 120 for CS majors, or ECE 175 and 275 for Engineering majors, or ISTA 130 and 131 for ISTA majors. You will be learning and using seven languages: HTML, CSS, JavaScript, PHP, REGEX, JSON, and SQL.

Instructor and Contact Information

Instructor: Shreya Nupur Shakya (she/her)

Home page:https://www.cs.arizona.edu/person/shreya-nupur-shakya

Email address: [email protected]

Office hours: Mondays and Tuesdays, 11:00 am to 12:00 pm

Teaching assistant: Honor Lee Jang (she/ her )

Email address: [email protected]

Office hours: TBD

Course Format and Teaching Methods

This course will be taught asynchronously in online modality. However, you are required to watch a weeks lecture within the scheduled week to be able to work on the assignments. The midterms and final exam will also be online but will be on scheduled dates.

Obtaining Help

Academic advising: If you have questions about your academic progress this semester, or your chosen degree program, consider contacting your department’s academic advisor(s).    Your academic advisor and the Advising Resource Centercan guide you toward university    resources to help you succeed. Computer Science major students are encouraged to visit https://www.cs.arizona.edu/undergraduate/advisingfor advisor contact information.

CS Help Desk: The Computer Science IT team can help students with department            technology issues including logging into/resetting your Lectura account, printing in the 930 lab, etc. You can submit a ticket for help by visiting theComputer Science Lab Helpdesk (note, requires UA login).

Life challenges: If you are experiencing unexpected barriers to your success in your           courses, please note the Dean of Students Office is a central support resource for all students and may be helpful. The Dean of Students Officecan be reached at 520-621-2057 or DOS- [email protected].

Physical and mental-health challenges : If you are facing physical or mental health         challenges this semester, please note that Campus Health provides quality medical and        mental health care. For medical appointments, call (520-621-9202. For After Hours care, call

(520) 570-7898. For the Counseling & Psych Services (CAPS) 24/7 hotline, call (520) 621- 3334.

UA Ombuds : TheUA Ombuds Office (https://ombuds.arizona.edu/) helps with a wide variety of issues, concerns, questions, conflicts, and challenges. The primary mission of the Ombuds  Program is to assist individuals in resolving conflict, facilitating communication, and assisting the University by surfacing issues and providing feedback on emerging or systemic concerns. Communications with the Ombuds Committee are informal and off-the-record. The Ombuds   Committee is governed by the following standards: (1) Confidentiality; (2) Impartiality: (3)    Informality; and (4) Independence.

Class Recordings

For lecture recordings, which are used at the discretion of the instructor, students must access  content in D2L only. Students may not modify content or re-use content for any purpose other than  personal educational  reasons. All  recordings  are  subject to government  and  university regulations. Therefore, students accessing unauthorized recordings or using them in a manner  inconsistent with UArizona values and educational policies (Code of Academic Integrity and the

Student Code ofConduct) are also subject to civil action.

Course Objectives

CSC 337 presents the concepts and programming languages needed to build dynamic websites with you as a full-stack web developer. This includes the client side: the browser using HTML, CSS, forms, client-side validation with REGEX, along with JavaScript for event-driven programming with high order functions, changing the DOM tree, and making asynchronous calls using high order functions (AJAX). Topics also include experience with the server-side using PHP, file processing on the server, a Database management system (a fork of MySQL named MariaDB), JSON, and PHP data objects (PDO) as an API that allows you to create, read, update, and destroy (CRUD) databases.

Expected Learning Outcomes

•    Use HTML5 and CSS to style and layout web pages

•    Use the JavaScript programming language on the client side (the browser) to manipulate the Document Object Model (DOM) tree, the tree data structure that models all web pages, to present the modern way to show web pages.

•    Use the PHP programming language to perform server-side programming to access data in files and databases on the server to be sent back to the browser for display.

•    Use event-driven programming to allow users of your web site to do things like select options, enter data in a form, and get desired information.

•    Employ client-side validation to prevent incorrect input from users using your website.

•    Use AJAX to provide asynchronous calls to the server that result in smoother web page updates and a better user experience in the browser.

•    Design a database to represent real world entities and a structured query language (SQL) to create, read, and update databases.

•    Understand some of the vulnerabilities that Web programming allows, how they actually work, and know how to prevent some dangerous security risks that can leak sensitive data to hackers.

•     Build a full stack dynamic website like what you use all the time that includes client-side processing to present the view to the user and ways to do what the user desires, server -side processing with a database, and a controller to coordinate the data exchange between the client and server

Absence and Class Participation Policy

The UA’s policy concerning Class Attendance, Participation, and Administrative Drops is available

athttps://catalog.arizona.edu/policy/class-attendance-and-participation

The UA policy regarding absences for any sincerely held religious belief, observance or practice will

be   accommodated   where   reasonable: http://policy.arizona.edu/human-resources/religious- accommodation-policy.

Absences pre-approved by the UA Dean of Students (or dean’s designee) will be honored. See

https://deanofstudents.arizona.edu/policies/attendance-policies-and-practices

Participating in the course and attending lectures and other course events are vital to the learning process. As such, attendance is required at all lectures. Absences may affect a student’s final course grade. If you anticipate being absent, are unexpectedly absent, or are unable to participate in class online activities, please contact me as soon as possible.  To request a disability -related accommodation to this attendance policy, please contact the Disability Resource Center at (520) 621-3268 or [email protected]. If you are experiencing unexpected barriers to your success in your courses, the Dean of Students Office is a central support resource for all students and may be helpful. The Dean of Students Office is located in the Robert L. Nugent Building, room 100, or call 520-621-7057.

Illnesses and Emergencies

●   If you feel sick, or may have been in contact with someone who is infectious, stay home. Except for seeking medical care, avoid contact with others and do not travel.

●   Notify your instructor(s) if you will be missing up to one week of course meetings and/or assignment deadlines.

●   If you must miss the equivalent of more than one week of class and have an emergency, the Dean of Students is the proper office to contact ([email protected]).  The Dean of Students considers the following as qualified emergencies: the birth of a child,  mental health hospitalization, domestic violence matter, house fire, hospitalization for

physical health (concussion/emergency surgery/coma/COVID-19 complications/ICU), death of immediate family, Title IX matters, etc.

●   Please understand that there is no guarantee of an extension when you are absent from class and/or miss a deadline.

Statement on compliance with COVID-19 mitigation guidelines:

As we enter the semester, our health and safety remain the university’s highest priority. To protect the health of everyone in this class, students are required to follow the university guidelines on

COVID-19 mitigation. Please visitwww.covid19.arizona.edu.

Makeup Policy for Students Who Register Late

If you register after the first class meeting, you may not make up missed assignments. This means you may receive zeros for any assignment not submitted before the posted deadline.

Course Communications

Official online communications will be conducted through D2L, our course web page, Piazza, email, and Panopto recordings of the lecture on D2L. You are required to read all email from us, and read all Piazza posts. You will be using D2L to turn in Assignments.

Required Texts or Readings

There is no required textbook to buy. You will be required to read from online sources such as W3Schools.

Required or Special Materials

You must have a laptop or desktop computer to take this course. IPads and Chromebooks are not sufficient. All required software will be free to install on Mac or Windows. If you don't have a computer, contact [email protected]

Assignments and Examinations: Schedule/Due Dates

There will be two 75-minute tests during the semester (dates given below). Students with DRC accommodations will receive extra time. Both tests will be given as a D2L quiz that must be completed on the scheduled dates.

There will be at least one and at most two assignment deadlines at 11:59 pm every week that range from 10 to 80 points.

Final Examination

The final exam will be on Wednesday, August 9, 2023.

Link to the Final Exam Regulations and Final Exam Schedule: https://registrar.arizona.edu/faculty- staff-resources/room-class-scheduling/schedule-classes/final-exams

Grading Scale and Policies

University policy regarding grades and grading systems is available at

http://catalog.arizona.edu/policy/grades-and-grading-system

A >=90%

B 80.0 to 89.9

C 70.0 to 79.9

D 60.0 to 69.9

E <60.0

50% Assignments

20% Test 1 (June 28, 2023, Wednesday)

20% Test 2 (July 19, 2023, Wednesday)

05% Final Exam (August 09, 2023, Wednesday)

05% Weekly questions (To be submitted at the end every week; 1-3 sentences maximum about what you learnt, what you liked, any recommendations, any questions)

Department of Computer Science Grading Policy:

1.    Assignments will be graded within 3 working days of the deadline.

2.    Both tests will be taken as a 75-minute D2L Quiz. They will be graded within one week. The final exam will be a two-hour D2L Quiz and will be graded within two working days.

3.    Grading delays beyond promised return-by dates will be announced as soon as possible with an explanation for the delay.

Incomplete (I) or Withdrawal (W):

Requests for incomplete (I) or withdrawal (W)  must be made in accordance with University

policies, which are available athttp://catalog.arizona.edu/policy/grades-and-grading- system#incomplete and http://catalog.arizona.edu/policy/grades-and-grading- system#Withdrawal respectively.

Scheduled Topics/Activities

The following weeks are estimated for the following topics and may change according to the pace of the class. The Pdfs will be available under the “Content” section on D2L.

WEEK

TOPIC

PDFs

Assignments

1

Syllabus

Course introduction

Introduction to HTML, CSS

-Installing Xampp

(MacOS/Windows)

-Programming

Paradigms

-HTML

-CSS

-HTML and CSS

-Rancid Tomatoes

(06/11/2023)

2

JavaScript

DOM

-JavaScript

-DOM

JS Functions

(06/18/2023)

3

Event-Driven Programming

- Event-Driven

Programming

JS Events

(06/25/2023)

4

HTML Forms

Form validation

MIDTERM 1

-HTML Forms

-Form validation

Purchase Receipt

Validation

(07/02/2023)

5

Regular Expressions (REGEX) PHP

-PHP

PHP functions Rancid Server Start

(07/09/2023)

6

Server side processing with PHP AJAX JSON

-AJAX

-JSON

Purchase Receipt

Server

MVC

-MVC

Best Reads

(07/16/2023)

7

Relational Databases

SQL

PHP Data Objects (PDO)

MIDTERM 2

-SQL

-PDO

-Database Adapter

-Actors or Movies

07/23/2023)

8

Higher order functions

Database Design and Joins

Cookies and sessions

-Higher Order

Functions

-DB Designs and Joins -Persistance Cookies and Sessions

Quotes 1

Quotes 2

(07/30/2023)

9

Web Security Vulnerabilities

Quotes 3

(08/06/2023)

10

Salt/hash, htmlspecialchars PDO's bound parameters

FINAL EXAM

Web Security

---

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 and inclusive, 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.  The complete Code of Conduct is available on our   department web site.  We expect that you will adhere to this code, as well as the UA Student      Code of Conduct, while you are a member of this class.

Classroom Behavior Policy

To foster a positive learning environment, students and instructors have a shared responsibility.  We want a safe, welcoming, and inclusive environment where all of us feel comfortable with each other and 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.).