Course Outline COMP4711 Internet Software Development School of Computing and Academic Studies Program: Computer Systems Technology Option: N/A Start Date: January 2011 Total Hours: 45 Hours/Week: 3 Total Weeks: Lecture: 15 1 Lab: 2 Prerequisites Course No. Course Name COMP2510/ COMP2525 End Date: April 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 Labs Midterm test Final Examination TOTAL 30% 30% Comments: 10% 30% 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 03/16 Format02 1 Course Outline (cont’d.) Verification I verify that the content of this course outline is current. Jim Parry 12/13/10 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.0 webapp framework; see links in course organizer 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 03/16 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 03/16 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 Sundays 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 lowlevel 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. Each term, we target a different applicaton to develop in parts. Previous subjects have included professional sports team fansites (CFL, NHL, NBA, soccer, BCIT timetabling). Some of the work from these will be shared as examples. The subject for this term's assignments will be announced during the first week of class. Detailed specifications will be provided with each assignment writeup. The intended assignment set, broadly speaking: 1. Basic webapp, with appropriate CodeIgniter structure; reporting RDBMS data. 2. Webapp enhanced to generate appropriate XML documents from relevant database tables, presenting the results as HTML tables. 3. Webapp enhanced to produce purpose-specific reporting, using XSL stylesheets. 4. Webapp enhanced to provide for user interactivity, using AJAX to interact with the webapp. 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 03/16 Format02 4 Course Outline (cont’d.) Lab Details Lab Exercises: Weekly, due 17:30 the day following your lab. Labs start the first week of class, but after the lecture. Labs will run thursday to tuesday, i.e. Between lectures. Lab exercises will provide workshops to lead the student through the techniques needed to implement each assignment. The intended lab set: 1. CodeIgniter & Apache 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 12. Advanced CodeIgniter webapp (Server side tricks) 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 03/16 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 Stylesheets – XSL * 8 Advanced stylesheets & XPath * 9 CodeIgniter Cookbook * 10 CodeIgniter recipes * 11 Client-server (XML-RPC) * 12 Client-side manipulation (AJAX) * 13 Advanced XML & web services * 14 Course review & crystal ball * 15 Final exam week Assignment Due Date #1 Jan 23 #2 Feb 13 #3 Mar 13 #4 Apr 10 Note: This schedule is a guideline only. * See links in the course organizer COURSE OUTLINE.DOC 03/16 Format02 6