Course Outline School of Computing and Academic Studies Program: Computer Systems Technology Option: Technical Programming Start Date: September 6, 2011 Total Hours: Hours/Week: 70 Total Weeks: 5 Lecture: Comp 4952 Technical Programming 2 15 2 Lab: 3 Prerequisites Course No. Course Name Comp 3951 End Date: December 16, 2011 Term/Level: Shop: 4 Course Credits: Seminar: 5.5 Other: Comp 4952 is a Prerequisite for: Course No. Course Name Technical Programming 1 Course Description (required) This course is a continuation of Comp 3951 (Technical Programming 1) and covers advanced topics in programming and an introduction to high-performance application development and architectures. The course will use the .NET Framework and C# as vehicles for instruction. The students will learn about the advanced features of the development environment that enable the implementation of reliable, secure and more sophisticated applications. The course covers assemblies and AppDomains, Web applications and ASP.NET, applications that include web services, introduction to data access, SQL, and ADO.NET. The course will present issues of human-computer interaction, usability and aesthetics in design and will introduce the students to Windows Presentation Foundation, Silverlight and Expression Studio as modern tools for development of desktop and web applications. Detailed Course Description (optional) Lectures: The lectures will be interactive involving the student participation and practical exercises. Labs: During the lab time, the students will work through practical assignments and tutorials. After each student individually develops several assignments using the techniques presented in the course, the students will design and develop a larger project. In the second part of the course, the students will work mainly on their final project. Participation: Each student is invited attend at least two free technical conferences/presentations/seminaries relevant to the course material organized by BCIT, the Vancouver .Net Users Group, CIPS BCIT or Microsoft. Each student alone or in a group of two will present a summary of what he/she learned at the event(s) he/she attended. There will be student presentations scheduled during the lecture time. If a student cannot attend conferences, a research paper of 10 pages based on a relevant topic should be submitted prior to the student presentations and the presentation will be based on the research paper. The course instructor will approve the research topic. Evaluation Mid-term Examination Learning Objectives 1- 8 Programming Assignments Learning Objectives 1- 14 Term Project Learning Objectives 15 Participation Learning Objective 16 30 20 35 15 Comments: TOTAL D:\106761333.doc 03/16 100% Format02 1 Course Outline Comp 4952 Technical Programming 2 (cont’d.) Course Learning Outcomes/Competencies Upon successful completion, the student will be able to: 1. Identify the principles of Human-Computer interaction and apply them in design. 2. Identify the principles of usability and models of usability 3. Defining the user needs 4. Design using software architecture patterns: Model-View-Control (MVC), Model-View-ViewModel (MVVM) 5. Develop Web applications using the .NET Framework Class Library, ASP.NET and ADO.NET. 6. Develop and consume a Web Service. 7. Explain distributed systems and web services. 8. Compare Web Services with other technologies (distributed computing and portals). 9. Compare and evaluate different programming environments (C++, Java, and C#) and Web development tools (ASP.NET and JSP). 10. Explain data access and data providers (SQL and mySQL). 11. Explain the particularities of ADO.NET and create a custom ADO.NET data provider. 12. Identify the security issues related to web development. 13. Identify and apply the best practices in application development (coding with the garbage collector in mind, memory and class management in the Common Language Runtime, server-side development, etc.) 14. Use Silverlight for developing websites. 15. Use Expression Web and Blend to develop compelling, impactful and expressive designs for the desktop and the web. 16. Design and implement a larger application that reflects the above topics: high performance, expressive design, usability engineering, distributed computing (Web services) and data access. 17. Actively engage in group discussions regarding the newest .NET technologies. Verification I verify that the content of this course outline is current. Mirela Gutica September 6,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. D:\106761333.doc 03/16 Format02 2 Course Outline Comp 4952 Technical Programming 2 (cont’d.) Instructor(s) Mirela Gutica Office Location: SW2/127 Office Hrs.: TBA Office Phone: 604 432 8559 E-mail Address: mgutica@bcit.ca Learning Resources Required: Recommended: Detel & Deitel (2009) Visual C# 2010 How to Program, 4/e, by Detel & Deitel (ISBN: 0132151421) Information for Students (Information below can be adapted and supplemented as necessary.) The following statements are in accordance with the BCIT Student Regulations Policy 5002. To review the full policy, please refer to: http://www.bcit.ca/~presoff/5002.pdf. 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. Academic Misconduct: Violations of academic integrity, including dishonesty in assignments, examinations, or other academic performances are prohibited and will be handled in accordance with the ‘Violations of Standards of Conduct’ section of Policy 5002. 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. D:\106761333.doc 03/16 Format02 3 Course Outline Comp 4952 Technical Programming 2 (cont’d.) Assignment Details Assignment Details Assignments: There will be five or six short taken home assignments. Each assignment contains a practical component (involving the implementation of a Widows or Web application) and ten to twenty long answer questions. The last two assignments will be incorporated in the final project. In-class assignments: Because Technical Programming option is focus on programming, the students taking this option are supposed to learn and develop very good programming skills. The in-class assignments are programming tasks given to the students to be solved in a specific amount of time (two or three hours). The students are informed in advance regarding the type of the task that will be given. They can use the textbook and resources from Visual Studio.NET on-line help and Internet, but they cannot use the course notes and they cannot discuss with each other. The in-class assignments are designed to prepare the students for the real world where programming is done within strict time limits and to encourage the development of good study skills and the use of documentation. Project: Students will practice the concepts by designing and implementing a term project. The project gives the students the opportunity to implement the program/application of their choice and to research concepts and/or details of implementation that are not covered in lectures or labs. Exams: There is one midterm exam in this course. The midterm exam is scheduled in the 8th week. The exam is composed from two parts: a theoretical part and a practical part similar with an in-class assignment. The theoretical part contains short- and long-answer questions. D:\106761333.doc 03/16 Format02 4 Course Outline Comp 4952 Technical Programming 2 (cont’d.) Schedule Week of/ Number 1 2 3 4 5 Outcome/Material Covered Introduction to Human-Computer interaction and interface design Web Technologies –Server Side. Styling Web Forms (Master Pages, CSS, Themes and Skins) Usability and Models of Usability; Designing with Expression Studio ASP.NET architecture Defining the User Needs; Maintaining the state; State Variables User Controls ASP.NET Forms and Validation; Model-View-Control (MVC) 6, 7 8 9 Applications that consume web services Midterm AJAX and Silverlight (1); Model-ViewViewModel 10 Data Access using data providers (SQL Server, mySQL, ADO.NET) Security issues and secure applications Silverlight (2); Usability Assessment Web application frameworks: DotNetNuke and SharePoint 11 12, 13 14 15 D:\106761333.doc Project presentation Exam 03/16 Reference/ Reading Notes Assignment Due Date Interface Design Project Proposal Stage 1. Low-Fidelity Prototype; Web Design Data binding and server controls State variables Stage 2. MediumFidelity Horizontal/ Vertical Prototype; Web Services Stage 3. High-Fidelity Horizontal/Vertical Prototype Database access Project Project Project is due Presentations Project presentation Format02 5