Course Outline COMP4711 Internet Software Development School of Computing and Academic Studies Program: Computer Systems Technology Option: N/A Start Date: September 2011 42 Hours/Week: 3 Total Hours: Total Weeks: Lecture: 14 1 Lab: 2 Prerequisites Course No. Course Name COMP2510/ COMP2525 End Date: December 2011 Term/Level: 4 Shop: Course Credits: 3 Seminar: Other: COMP4711 is a Prerequisite for: Course No. Course Name C Programming or Object Oriented Programming with Java Course Description (required) This course provides the students with an opportunity to develop a software application that works across the internet. An overview of various internet software development technologies is provided. Students will learn how to build a web application using a modern webapp MVC framework and Apache server technology; and how to use XML for data representation, structure and transport. Evaluation Assignments 30% Labs Final Examination 40% 30% TOTAL Comments: 100% Course Learning Outcomes/Competencies Upon successful completion, the student will be able to: • • • • • • • Construct an MVC web application using a suitable framework Construct a valid and well-formed XML document Constrain XML data through a DTD or schema Transform XML data using XSL Process XML data using both DOM and SAX models Transport XML data reliably using common messaging protocols Exchange data between dissimilar data sources, using XML COURSE OUTLINE.DOC 09/11 Format02 1 Course Outline (cont’d.) Verification I verify that the content of this course outline is current. Jim Parry Sept 2, 2011 Authoring Instructor Date I verify that this course outline has been reviewed. Program Head/Chief Instructor Date I verify that this course outline complies with BCIT policy. Dean/Associate Dean Date Note: Should changes be required to the content of this course outline, students will be given reasonable notice. Instructor(s) Jim Parry Office Location: SW2-124 Office Hrs.: T.B.A. Office Phone: 604-432-8464 E-mail Address: jim_parry@bcit.ca Learning Resources Required: • • • NetBeans 6.9 development environment; free download from www.netbeans.org XAMP (Apache + MySQL + PHP) server environment, suitable for the student's platform CodeIgniter 2.x webapp framework, from www.codeigniter.com Recommended: O'Reilly pocket guides for those technologies that you plan to use after the course would be very handy. Candidates include: • XML Pocket Reference (3rd edition, ISBN 0-596-10050-7) • XSLT 1.0 Pocket Reference (ISBN 0-596-10008-6) • HTML and XHTML Pocket Reference (4th edition, ISBN 978-0-596-80586-9) • JavaScript Pocket Reference (2nd edition, ISBN 0-596-00411-7) • CSS Pocket Reference (3rd edition, ISBN 0-596-51505-7) • Apache2 Pocket Reference (ISBN 978-0-596-51888-2) Supplementary: Presentations, labs and assignments are all posted on the shareout server, as well as an organizer with links to relevant readings or reference material. The organizer includes frequently asked questions about the current lab and assignment. COURSE OUTLINE.DOC 09/11 Format02 2 Course Outline (cont’d.) Information for Students (Information below can be adapted and supplemented as necessary.) The following statements are in accordance with the BCIT Policies 5101, 5102, 5103, and 5104, and their accompanying procedures. To review these policies and procedures, please refer to: www.bcit.ca/about/administration/policies.shtml Attendance/Illness: In case of illness or other unavoidable cause of absence, the student must communicate as soon as possible with his/her instructor or Program Head or Chief Instructor, indicating the reason for the absence. Prolonged illness of three or more consecutive days must have a BCIT medical certificate sent to the department. Excessive absence may result in failure or immediate withdrawal from the course or program. Please see Policy 5101 — Student Regulations, and accompanying procedures: http://www.bcit.ca/files/pdf/policies/5101.pdf Academic Misconduct: Violations of academic integrity, including dishonesty in assignments, examinations, or other academic performances are prohibited and will be handled in accordance with Policy 5104 — Academic Integrity and Appeals, and accompanying procedures: http://www.bcit.ca/files/pdf/policies/5104.pdf Attempts: Students must successfully complete a course within a maximum of three attempts at the course. Students with two attempts in a single course will be allowed to repeat the course only upon special written permission from the Associate Dean. Students who have not successfully completed a course within three attempts will not be eligible to graduate from their respective program. Accommodation: Any student who may require accommodation from BCIT because of a physical or mental disability should refer to BCIT’s Policy on Accommodation for Students with Disabilities (Policy #4501), and contact BCIT’s Disability Resource Centre (SW1-2300, 604-451-6963) at the earliest possible time. Requests for accommodation must be made to the Disability Resource Centre, and should not be made to a course instructor or Program area. Any student who needs special assistance in the event of a medical emergency or building evacuation (either because of a disability or for any other reason) should also promptly inform their course instructor(s) and the Disability Resource Centre of their personal circumstances. COURSE OUTLINE.DOC 09/11 Format02 3 Course Outline (cont’d.) Assignment Details Planned out of class work hours: roughly 1 hour for every timetabled hour. Reading and assignments are generally done outside of class, while labs are generally completed during scheduled lab time. Assignments: Four, every three-four weeks, due on Saturdays 11.59pm. The intent of the group of assignments is to guide the student through “proper” design and implementation of a complete small web application. All of the assignments will pertain to the same application, and the goal is to have a functional web application by the end of the course. Many design decisions will have already been made, and these will be explained in the assignment handouts. The student(s) will have to complete the design, making low-level choices, and then implement the resulting completed design. Lab exercises will provide workshops to lead the student through the techniques needed to implement each assignment. Our target webapp is a sports team fansite, with each student group tackling a different team. We are targeting the Canadian Intrauniversity Sports, football specifically. Part of your work will involve ecreating and populating appropriate XML documents with basic team information, updating the data from online sources, and then using XSL to transform the results for human consumption. Detailed specifications will be provided with each assignment writeup. The intended assignment set: 1. Basic webapp, with appropriate CodeIgniter structure; incorporating some team & roster data. 2. Webapp enhanced to create and validate team and roster data as XML documents 3. Webapp enhanced to process the XML documents internally, presenting the results as HTML tables. Webapp enhanced to produce purpose-specific reporting using XSL, and to provide for scraping online game results, updating your data and producing game outcome predictions. 4. Assignment solutions will be posted the day after their due date, for the students to learn from and even perhaps adopt for their next assignment. The assignments can be done individually or as a pair. COURSE OUTLINE.DOC 09/11 Format02 4 Course Outline (cont’d.) Lab Details Lab Exercises: Weekly, due 17:30 the day following your lab. Labs start on Sept 8th, after the first lecture. Labs will run thursday to tuesday until Remembrance day, at which point they will change to tuesday through thursday because of the missed lab. Lab exercises will provide workshops to lead the student through the techniques needed to implement each assignment. The intended lab set: 1. CodeIgniter familiarization 2. CodeIgniter webapp with custom MVC 3. XML document, constrained with DTD 4. XML document, constrained with schema 5. XML processed using DOM 6. XML processed using SAX 7. XML base model for CodeIgniter 8. Basic XSL stylesheet 9. Advanced XSL stylesheet, with Xpath 10. XML-RPC 11. AJAX Lab solutions will be posted the day after the latest set's due date, for the students to learn from. Labs are meant to be completed individually. COURSE OUTLINE.DOC 09/11 Format02 5 Course Outline (cont’d.) Schedule Week of/ Number Reference/ Reading Outcome/Material Covered 1 Course introduction & webapp architecture * 2 MVC framework (CodeIgniter) * 3 XML concepts & DTDs * 4 XML constraints using schemas * 5 XML processing & DOM * 6 XML processing with SAX * 7 XML and PHP/CodeIgniter * 8 Stylesheets – XSL * 9 Advanced stylesheets - XPath * 10 Client-server (XML-RPC) * 11 Client-side manipulation (AJAX) * 12 Advanced XML & web services * 13 Course review * 14 Final exam week Assignment Due Date #1 Oct 01 #2 Oct 22 #3 Nov 12 #4 Dec 02 Note: This schedule is a guideline only. * See links in the course organizer COURSE OUTLINE.DOC 09/11 Format02 6