This class is asynchronous; lectures will be recorded and released around 5:00 PM or earlier on Tuesdays and Thursdays. Detailed class schedule here. Lecture slides and video recordings for each lecture will be posted twice a week on Canvas. Students are required to watch video recordings to engage with class activities. All course materials, such as the syllabus, major assignments, and handouts, can be found on the course page located on Canvas at Canvas.
Instructor: Dr. Phu Phung, Visiting Scholar, Department of Electrical and Computer Engineering, homepage: Dr. Phu Phung Email: phungph@ucmail.uc.edu
Office Hours: 2:00-4:00 pm Tuesdays and Thursdays on Teams. You must book a 10-minute slot in advance (link->). Additional slots might be available upon request.
Teaching Assistant: Sohan Chidvilas Bodapati (bodapass@mail.uc.edu)
Office Hours: 11:30 am-12:30 pm and 5:30-7:30 pm MWF on Teams. Additional slots might be available upon request.
In this course, students will study basic web application development with front-end (HTML5, JavaScript, CSS) and back-end (PHP/MySQL). Web application vulnerabilities and attacks will be introduced and explored with hands-on exercises on the range. Secure programming principles and practices will be introduced to avoid potential web application vulnerabilities and attacks.
(Recommended) Prerequisites: Intermediate programming skills in any language.
There is no required textbook for this course. Lecture handouts are provided for every class. A good reference book (Free PDF online): “Learning PHP, MySQL & JavaScript: A Step-by-Step Guide to Creating Dynamic Websites,” Robin Nixon, O'Reilly Media, 6th Edition (2021).
Additional readings will be posted correspondingly before lectures.
You are required to have a laptop/computer to run a Linux virtual machine for hands-on exercises, e.g., labs, individual projects, and a team project. You need to install VirtualBox (VirtualBox) and install an Ubuntu 22.04 virtual machine on your laptop/computer. Alternatively, you will be provided with an online virtual machine to use during the semester. Detailed instructions will be provided in the second class.
The Shell and git video tutorials:
This class heavily uses Shell and git. If you are not familiar with the Shell, we strongly recommend you do some hands-on exercises on the first topic, “The Shell”: MIT Course from a free MIT course “The Missing Semester of Your CS Education.”
We will provide hands-on exercises for git during the labs. However, if you have never used git before, it is strongly recommended you practice the git lecture MIT git Lecture in the above course to avoid any git issues during the code development.
Video recordings will be released around 5:00 PM or earlier on Tuesdays and Thursdays. To help you keep up with the class pace, you are required to watch the videos within 24 hours on Canvas. There will be a survey randomly placed in a video you must respond within 24 hours to earn 5% participation grade.
Multiple-choice quizzes in lectures:
Each class will have instant multiple-choice quizzes, discussed and explained with answer keys in class and recorded in the videos that you should note for later references. These quizzes will be posted on Canvas, and it should take less than a few minutes to answer if you have attended the class or watched the video. To ensure you keep up with the class pace, you need to submit your answers by the end of each week. In total, you will earn 5% for these quizzes toward your total final grade percentage. These quiz questions will be randomly selected for the final exam online.
Advice and class communication:
It is important for you to know that skipping any class/lecture video will not only prevent you from learning the class’s topics and concepts but also put you behind the assignments and the next classes. If you must miss a class, e.g., due to illness, please inform the instructor and ensure that you will learn the materials and watch the video within an extended time granted by the instructor.
No email communication is encouraged in this class. Instead, please use the Discussions board on Canvas to ask questions or discuss with your peers. You are encouraged to ask questions on public channels so that your classmates may benefit from the answers. Everyone is encouraged to answer public questions from their classmates. You will earn a 1% bonus towards your final grade with active participation on the Discussion board.
If you have a question that you want to ask the instructor or the TA/grader directly, please use Chat on Canvas.
Each assignment/submission has a deadline, which must be submitted on Canvas -> Assignments to be graded, i.e., submissions via email or other channels will NOT be graded. You need to submit your work before the deadlines so that you can gain the expected outcomes and feedback in a timely manner. To avoid last-minute issues, you need to start working on each submission when it is released, ideally during hands-on activities while watching lecture videos. By doing this, if you face any issues, you should be able to seek support from the instructor and the TA to complete your work on time. Waiting until a later time or close to the deadlines to start any assignment will prevent you from being successful in this class; therefore, you need to plan your time carefully. To encourage you to do and submit your work earlier, there will be 0.5% bonus every 6 hours before the original deadline (up to 3% maximum bonus for each submission).
If you missed an original deadline, although it is strongly NOT encouraged, you would be allowed to make late submissions until the end of the semester (Sunday, July 21, 2024, at 11:59 pm). Every 24 hours late will be deducted 1% of the grade of the submission. You will get at least 70% credit for late submissions. However, you are strongly recommended to AVOID these late submissions. They will not only give you a low grade in this course but also prevent you from learning the concepts introduced in that assignment and the next related topics/assignments. Always talk to the instructor if you fall behind in any work/concepts/lectures. Experience in the past shows that missing or late assignment submissions will result in a very low grade in this class.
You are encouraged to discuss with your classmates the readings and ideas brought up in class, especially using the Slack workspace. But in all assignments to be graded as individual work you are expected to do your own written work. In the case of teamwork, all members of a group will be held responsible for the content of work turned in to satisfy group assignments. The instructor will keep a healthy eye out for possible plagiarism when reading your work.
It is best to express the ideas you use in your own words. In the case of both individual and group work, words or ideas that come from someplace or someone else must be cited accordingly.
For specific university policies concerning academic honesty, see the University’s Academic Misconduct. Any behavior violating the Student Code of Conduct will not be tolerated and will be handled accordingly.
Your performance and course outcomes will be assessed via class/video participation, multiple-choice quizzes (weekly), hands-on lab exercises (4), hackathon exercises (4), individual projects (2), a team project, and a multiple-choice final exam.
Your final grade will depend (tentative)
Your final grade will be based on your total grade percentage and will be scaled to a corresponding letter grade following the University’s grade schema.