CIS 2308 Web Application Programming – Syllabus Instructor: Phone: E-mail: Web site: Sally Kyvernitis (pronounced Key-ver-NEE-tees) 215-204-2030 (office), critical calls 610-564-6563 (cell) sallyk@.temple.edu, or (if temple mail is down) sally_kyvernitis@yahoo.com www.astro.temple.edu/~sallyk (to find grades click on teaching) Course Description This course introduces the techniques used in the design and implementation of web applications. Using development tools such as Dreamweaver, Eclipse, Netbeans, MSAccess and/or MySQL, students write code for the browser (HTML, Cascading Style Sheets, javascript, ajax), web application server software (JSP or .NET, supported by java or C# classes), and database server (SQL). Students learn about internet protocols and how to work with web application objects (e.g., request, response, session). Students learn how design patterns such as MVC (Model-ViewController) are applied to the multi-tiered, distributed software that make up today’s web applications. XML (a format commonly used to transfer data over the internet) and web services (a method call to a remote computer over the internet) are discussed and demonstrated. Each student will program their own web application, expanding on its functionality each week in the lab. Learning Objectives By the end of this course you will be able to: Create a web application using the following languages: HTML, CSS, javascript, JSP, java, and SQL. Design a normalized data model (given business rules or screen shots of a proposed application). Describe the benefits of new technologies such as jquery (commonly used javascript function library that provides client-side/browser animations), java beans (java objects that persist between pages), ajax (partial page refresh), web services (class methods that can be called over the internet), and Groovy/Grails (web application development framework based on Ruby/Rails and MVC design pattern). Syllabus for CIS 2308 Web Application Programming Prerequisites Grade of C or better in CIS 2107 Computer Systems and Low-Level Programming Grade of C or better in CIS 2168 Data Structures The only assumption is that all students have knowledge of the topics covered in the pre-requisite courses listed above. All other topics will be introduced as new material, even though some topics will be review for some students. Students with more experience can add extra functionality to their weekly lab assignments (if they wish), as long as they meet all course requirements and submit on time. Textbooks and Resources Web references and other materials will be posted in blackboard blackboard.temple.edu Project and Labs Each student will select a web application to implement. The topic of the web application could be almost anything (subject to certain data model restrictions). Most of the weekly lab assignments will enhance the student’s web application. By the end of the semester, each student’s web application will allow users to log in and access (read, modify) data from a small database of about 3 or 4 tables. Although each student’s web application will have some images and a consistent look/style, the focus of this course is not web site design, but rather how to design and implement a reliable, secure, extensible, and manageable web application. At the end of the semester, the whole project (that’s been growing through the weekly lab assignments) will be re-graded, so that students have an opportunity to repair work that may not have been done just right at the time the original homework was due. Students should be careful not to “over plan” and “under deliver” as this will result in late penalties and poor grades. “Lab Challenges” So that all students may keep up with the pace of the class, the amount of work required for each lab should not be overwhelming. To augment the modest labs, students are select two “Lab Challenges”, depending on their interest, ability, and/or time constraints. Try to select at least one of your lab challenges earlier in the semester (so that you don’t run out of time at the end of the semester). Students also have the option to create their own lab challenge (must be approved). 2 Syllabus for CIS 2308 Web Application Programming Tentative Lab Content – check blackboard for latest info and dates. HTML (content), CSS (fonts, layout, colors, images) Javascript, the DOM, HTML forms, email Jquery (library of javascript functions that provide client-side/browser animations) Data modeling, SQL JSP (dynamic HTML): validating user input. Interfacing JSP code to java classes. Java beans. MySQL Database management system. Database access from java/JSP Web data formats: XML, JSON Ajax (javascript “Partial page refresh” technique for more responsive web pages) Web services Web application development Frameworks Course Policies and Procedures Labs are typically introduced during the lecture prior to the lab. Although there may be some additional instruction at the beginning of lab, the labs are mainly self-directed with help available. The lab handout will be posted in Blackboard. DO NOT WORK AHEAD since labs may be changed right up to the lecture where they are introduced. The details of each lab assignment can be found in blackboard. At the end of each lab, there are instructions for submission which usually includes that you attach a zip file of all your source code right into the blackboard assignment (where the instructions were) AND publish to your website. Grading typically consists of testing your work from your website and reviewing the code as submitted into blackboard. Lab homework is due by noon the day before the next lab (unless otherwise specified). Late penalties are based on time of submission into blackboard. Lab homework submitted after the deadline (up to 1 week late) gets a 20% late penalty. Lab homework is not accepted after that. If you start working on your homework the day before it is due, you will probably miss the deadlines. IT IS IMPERATIVE that you ask for help if you find that you are not working effectively on your lab homework. At the beginning of lab each week there will be a QUIZ. o The quiz will cover the previous week’s lab. Prepare for this by studying the previous lab handout and reviewing the assignment you just submitted (from last lab). o The quiz may also cover any material presented in lecture. Prepare for this by attending lecture, taking notes, and reviewing materials posted in blackboard. o Quizzes cannot be made up and if you arrive late, you will not be awarded extra time. However, since every student will have the occasional issue, the lowest 2 quiz grades will be dropped. If you attend each lab and study for each quiz, you can use your 2 drops to cancel out your poorest grades (instead of cancelling out 0s for when you missed lab). o Quizzes are weighed heavily. It is a quick feedback mechanism (for me and for you) – to ensure that you are keeping up and learning the necessary material. In lab, after you finish taking the quiz, start right away working on the lab. Don’t expect to complete your lab homework during lab, but try to finish your lab homework as soon as possible afterwards (you might need to ask for help). Please NOTE the instructions on how to move your web application from one computer to another (for example, from your home computer to a lab computer). It’s not a word document that can be easily moved around and edited. It is a web application that needs to be “deployed” 3 Syllabus for CIS 2308 Web Application Programming onto the destination computer. Students who don’t follow these instructions have many problems trying to work in the labs (and deploying to their web site). The computer labs in Wachman Hall are NOT open 24 hours 7 days a week. Learn the lab hours and adjust your schedule accordingly. If you prefer to work from home, it is your responsibility to set up your own development environment there, but I will help you as much as I can. Most students who do not promptly set up a web development environment at home do not do well in the course. Attendance: If you must miss lecture or lab, check Blackboard to see what material was presented and ask your classmates about anything else that may have been discussed. Communication: Please contact me as soon as possible if you think you are running into difficulties. Ask me, or your lab instructor, or another student for help AS SOON AS POSSIBLE. Disability Disclosure: Any student who has a need for accommodation based on the impact of a disability should contact me privately to discuss the specific situation as soon as possible. Student must provide me with a note from the office of Disability Resources and Services (100 Ritter Annex, 215-204-1280). Academic Honesty and Ethics: Temple University and I expect you to observe the highest ethical standards. When working in the lab or on your project, you may consult others, but the work you submit must be your own. Never share your answers with others. Never accept answers from others. Unless otherwise directed, all quizzes are closed book, closed computer. All violations of academic honesty will be handled according to university policy. Tentative Grade Weights Lab Homework Lab Challenges Final Web Project Weekly Quizzes (lowest 2 dropped) Final Exam 19% 6% 25% 30% 20% 100% Grade Scale 95-100 90- 94 87- 89 83- 86 A AB+ B 80-82 77-79 73-76 70-72 BC+ C C- 4 67-69 63-66 60-62 0-60 D+ D DF