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

CSC 337 Web Programming

Fall 2022

Official 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. Weekly laboratory.

Modifications: The department dropped weekly labs several years ago. Also, due to the online modality of CSC 337 this semester there will be no team project this semester.

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). 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. We do not have time to teach any frameworks such as React.

Instructors and Contact Information:

● Instructor of Record: Rick Mercer [email protected]

● Home page: http://www.cs.arizona.edu/people/mercer
Course Web Page: The CSC 337 D2L website

● Rick's Zoom Hours: See the Zoom Hours tab on our D2L website

Teaching Assistants (TAs): grade, hold Zoom (office) hours, and respond to email to help you:

● Jesse Chen [email protected]

● Vovwe 'vo-we' Ikumariegbe oaikumariegbe@arizona.edu

● Brandon Kaplan                          [email protected]

Course Format and Teaching Methods: This course will be taught asynchronously in UArizona's iCourse  modality, also known as online and Fully Online. This means you are required to watch prerecorded Panopto videos of lectures over a one to two day period, not at a specific time. Lecture and Assignment specifications will be available no later than 7:00 am on Monday and Thursdays. You’ll have 36 hours to watch the lectures and 65 hours to complete Assignments. These hours are subject to change later in the semester. The instructor and three TAs will have Zoom (office) hours online througout the week. You must begin to take the final exam as a D2L quiz anytime from 7:00 am to 9:30 pm on Friday 9-Dec. As for teaching methods, each lecture will have .pdf presentations and code demos. All Assignments will utilize the new lecture content to reinforce learning.

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 Center can guide you toward university resources to help you succeed. Computer Science major students are encouraged to email [email protected] for academic advising related questions.

CS Tutor Center: The Department of Computer Science offers FREE tutoring for students enrolled in CSC courses. You can view tutor schedules and sign up for tutoring sessions by visit our CS Tutoring Page

● 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 the Computer 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 Office can be reached at 520-621-2057 or [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.

Class Recordings (inclusion of this statement is required by the University to protect UArizona's intellectual property): For lecture recordings, 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 are subject to suspension or civil action.

Course Objectives: CSC 337 presents the concepts and programming languages needed to build dynamic websites as you become 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), which is an API that allows you to create, read, update, and destroy (CRUD) databases.

Expected Learning Outcomes: Successful students will be able to:

● 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 programing language to perform server-side programming to access data in files and data bases 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 user 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 small data base to represent real word 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 at http://catalog.arizona.edu/policy/class-attendance-participation-and-administrative-drop

● 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/absences

● We will be grading the percentage of lecture you watch for the 15% "Panopto Participation" (see below). Monday lectures must be completely viewed before 7:00 pm Tuesday, Thursday lectures must be completely viewed before 7:00 pm Fridays.

● If you cannot watch a le[email protected]

● cture for a valid reason, ask Rick for an extension. Do not ask your TA for any extension. TAs cannot provide extensions. If you ask me (Rick) to make up more than one week of work, it will not happen. If you have an emergency that makes you miss a week or more of class, like being hospitalized, you will have to contact the Dean of Students (DOS) with documentation. If the documentation is valid, the DOS will send me an emergency declaration and let me decide whether or not to grant any extension.

● 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 have to miss less than 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: (The Universoty wrieta)  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 visit http://www.covid19.arizona.edu/.

Makeup Policy for Students Who Register Late: 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 screencasts of the lecture on D2L. You are required to watch all Panopto screencasts, read all email from us, and read all Piazza posts. You will be using D2L to turn in Assignments.

Required Texts: There is no required textbook to buy. You will be required to read free online resources.

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: There will be a new Assignment almost every Monday that will be due by 11:59 pm the following Wednesday and another Assignment every Thursday that is due be the following Sunday before 11:59 pm. Thre is also a 24 hour late turnin time with a 20% late penalty. Due dates are subject to change. Assignments will range from 20 to 100 points. There will be no midterm exams.

Final Exam: There will be a three-hour final exam on Friday 9-Dec as a D2L quiz. You must begin to take the online final anytime from 7:00 am to 9:30 pm that day. Students with DRC accommodations will receive extra time.

Grading Scale and Policies:

55% Assignments                                                A  >= 90%

30% Final: Fri 9-Dec Begin from 7:00 am to 9:30pm       B  80.0 to 89.9%

15% Panopto Participation                                    C  70.0 to 79.9%

Percentage of the Panopto lecture watched D  60 to 69.9%

0%..19%    0 points E  < 60.0%

20%..59%    1 point There is no rounding up: 89.9 is a B

60%..89%    2 points

90%..100%  3 points

Computer Science Grading Policy:

1. We will be downloading Panopto Participation csv files at 7:30 every pm every Tuesday and Friday.  If you had not watched lectures between 7:00 am Mondays and Thursdays through 7:00 pm Tuesdays and Fridays. you may receive only 0, 1, or 2 points out of the maximum of 3 for a Panopto Participation Grade. It’s pretty easy to get 100% for your 15% Panopto Participation grade.

2. The final exam will be a three-hour D2L Quiz that you can begin anytime from 7:00 am to 9:30 pm on Friday 9-Dec. The final exam will be graded by 10:00 pm Tuesday 13-Dec.

3. Assignments will be graded within one week of the due date.

4. 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 at http://catalog.arizona.edu/policy/grades-and-grading-system#incomplete and http://catalog.arizona.edu/policy/grades-and-grading-system#Withdrawal respectively.

Scheduled Topics/Activities by Week

1. Syllabus, Course Intro, HTML

2. More HTML

3. CSS, Layout

4. JavaScript

5. JavaScript, the DOM tree

6. Event-Driven Programming

7. HTML Forms

8. Form validations, Regular Expressions (REGEX), PHP

9. More PHP, Server-side processing of files with PHP

10. Asynchronous calls to the server (AJAX)

11. Relational Databases, SQL, PHP Data Objects (PDO)

12. Database Design, 2nd normal form, JOIN

13. Website Security, salt/hash,  htmlspecialchars, PDO's bound parameters
14. TBD: Catch-up, lab days, or an additional topic not in the course description
15. Practice Final Monday, Final Exam you can start on Friday 9-Dec from 7:00am to 9:30 pm

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.).

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 http://policy.arizona.edu/education-and-student-affairs/threatening-behavior-students.

Accessibility and Accommodations: At the University of Arizona, we strive to make learning experiences as accessible as possible. If you anticipate or experience barriers based on disability or pregnancy, please contact the Disability Resource Center (520-621-3268, https://drc.arizona.edu/) to establish reasonable accommodations.

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 https://deanofstudents.arizona.edu/policies/code-academic-integrity

Uploading material from this course to a website other than D2L (or the class piazza) is strictly prohibited and will be considered a violation of the course policy and a violation of the code of academic integrity. Obtaining material associated with this course (or previous offerings of this course) on a site other than D2L (or the class piazza), such as Chegg, Course Hero, etc. or accessing these sites during a quiz or exam is a violation of the code of academic integrity. Any student determined to have uploaded or accessed material in an unauthorized manner will be reported to the Dean of Students for a Code of Academic Integrity violation, with a recommended sanction of a failing grade in the course. A faculty member may impose any one or a combination of the following sanctions:

loss of credit for the work involved, reduction in grade, notation of the violation(s) on the student’s transcript, a failing grade in the course, or revocation of a student’s degree. The faculty member may also impose a sanction of suspension or expulsion from the program, department, college, or University.

The University Libraries have some excellent tips for avoiding plagiarism, available at http://new.library.arizona.edu/research/citing/plagiarism.

Nondiscrimination and Anti-harassment Policy: The University of Arizona is committed to creating and maintaining an environment free of discrimination. In support of this commitment, the University prohibits discrimination, including harassment and retaliation, based on a protected classification, including race, color, religion, sex, national origin, age, disability, veteran status, sexual orientation, gender identity, or genetic information. For more information, including how to report a concern, please see http://policy.arizona.edu/human-resources/nondiscrimination-and-anti-harassment-policy

Additional Resources for Students:

UA Academic policies and procedures are available at http://catalog.arizona.edu/policies. Visit the UArizona COVID-19 page for regular updates.

Campus Health: http://www.health.arizona.edu/ Campus Health provides quality medical and mental health care services through virtual and in-person care. Voluntary, free, and convenient COVID-19 testing is available for students on Main Campus. COVID-19 vaccine is available for all students at Campus Health.

Phone: 520-621-9202

Counseling and Psych Services: https://health.arizona.edu/counseling-psych-services CAPS provides mental health care, including short-term counseling services.

Phone: 520-621-3334

The Dean of Students Office’s Student Assistance Program:

https://deanofstudents.arizona.edu/support/student-assistance

Student Assistance helps students manage crises, life traumas, and other barriers that impede success. The staff addresses the needs of students who experience issues related to social adjustment, academic challenges, psychological health, physical health, victimization, and relationship issues, through a variety of interventions, referrals, and follow up services.

Email: [email protected].

Phone: 520-621-7057

Survivor Advocacy Program: https://survivoradvocacy.arizona.edu/

The Survivor Advocacy Program provides confidential support and advocacy services to student survivors of sexual and gender-based violence. The Program can also advise students about relevant non-UA resources available within the local community for support.

Email: [email protected]

Phone: 520-621-5767

Subject to Change Information contained in this course syllabus other than the grading and absence policy is subject to change with reasonable notice, if deemed appropriate by the instructor.