Curtin University of Technology Faculty of Science and Engineering Department of Computing SYSTEMS PROGRAMMING AND DESIGN 361 Semester 2, 2010 Unit Outline Unit Index: 4547 / 302975 Credit Value: 25 credit points Core Unit: This is a significant unit for those undertaking BSc (Information Technology). Failure twice may lead to the termination from that course. Those undertaking other degrees or streams should contact their course controller as to significance of the unit. Prerequisites: Database Systems 252 Software Engineering 252 Availability Details: In 2010, this unit will be offered in Semester 2 through the Sri Lanka Institute of Information Technology. Online Teaching Unit Category: Supplemental. Unit Learning Outcomes (ULO): On successful completion of this unit students will be able to demonstrate the accomplishment of the following outcomes: • Be able to describe the attributes of components, the structure of a remote procedure call and the use of interfaces and compare and contrast the different component frameworks. This ULO is assessed in the assignment, mid-semester test and the final exam. • Be able to describe the use of asynchronous remote calls, explain their relationship with threads and assess the consequences for the application event thread. This ULO is assessed in the assignment, mid-semester test and the final exam. • Be able to design and construct a multi-tiered architecture based on applying knowledge of components and distributed computing, and extend this architecture to work with different client front-ends. This ULO is assessed in the assignment, mid-semester test and the final exam. • Be able to outline the issues and challenges with interoperability between different platforms and frameworks such as Java2 and .NET. This ULO is assessed in the final exam. • Be able to summarise the intent of service-oriented architectures (SOA), explain the importance of XML in SOA, compare and contrast Web services with Web server-side scripts and implement examples of each. This ULO is assessed in assignment and the final exam. • Be able to describe the use of Ajax in Internet applications and assess the strengths and weaknesses of the different Web programming technologies. 1/6 This ULO is assessed in the final exam. In addition students will develop the following generic attributes: • The ability to apply knowledge of basic science and engineering fundamentals This unit covers advanced concepts in distributed computing, requiring students to apply and extend their existing knowledge of software design and software programming to a distributed environment. Modern distributed computing frameworks are introduced, their underlying principles discussed and their relative strengths and weaknesses examined. • Ability to undertake problem identification, formulation and solution. The unit will examine the recent history and ongoing development of distributed computing, identifying the problems that were encountered (problem identification), the design of alternatives (formulation) and the reasons why certain solutions were ultimately settled upon (solution). Students will be required in the practicals to implement an application in a variety of different technologies, re-tracing and thus personally experiencing the recent evolutions of distributed computing. • Expectation of the need to undertake lifelong learning and the capacity to do so. Students are required to read the compulsory textbook for the unit. In addition, self-reading from other published materials is encouraged to help solve their exercises and assignment. Each worksheet exercise is aimed at understanding a specific set of concepts, some not covered in the lectures, and so will require access to external information sources. • In-depth technical knowledge in Computer Science. Component-based development mixed with distributed computing is quickly becoming the dominant paradigm in modern software engineering due to its flexibility and scalability. The unit covers all the core areas of the field, including practical sessions on how to work with both the latest frameworks and recently-superseded frameworks that will continue to be encountered in industry for at least a decade. • Awareness of the issues associated with changes in technology and the ability to adapt. Distributed computing and component technologies are fields that are experiencing rapid change due to the growing ubiquity of networks and the Internet. The outcomes related to theory are directed at providing students with an understanding of the development of the field and the reasons for this. Practical outcomes focus on working with current and new distributed computing technologies, providing students with hands-on experience in adapting to the field’s recent developments. 2/6 PROPOSED TIME TABLE Week 1 28-Jun 2 05-Jul 3 12-Jul 4 19-Jul 5 26-Jul 6 02-Aug Lecture Topic Practical Distributed Computing and Components: Introduction Definition, purpose, evolution and design of distributed computing and component frameworks; Distributed Computing and Components: Component Frameworks Component frameworks: DLLs, COM, CORBA, .NET, Java EE; usage and comparisons, C# overview DLL, COM: using in C and in .NET (C#) Distributed Computing and Components: Asynchronous Remote Calls Remoting, callbacks, thread pools, thread invocation, event thread Continue Prac2 Distributed Computing and Components: Multi-tiered Architectures Reasons for multi-tiered, layering, architectural designs, advantages/disadvantages of tier separation Distributed Computing and Components: XML Serialisation XML overview, formatting, object serialisation, XSL Asynchronous RPC Distributed Computing and Components: Review XML creation and parsing, serialising objects Singleton servers Unit Outline 7 09-Aug 8 16-Aug 9 23-Aug Remoting example, integration with DLL Continue Prac 3 MID-SEMESTER TEST Web Programming: Server-side Web Scripting HTML, ASP.NET, HTTP GET/POST, CGI, statefulness Complete pracs 1-5 Web Programming: Server-side Web Scripting (cont.) HTML, ASP.NET Web Programming: Service-Oriented Architectures Problems of monolithic architectures, services and components, interoperability, SOAP, BPEL ASP.NET tier integration Web Programming: Web Services Definition, .NET integration, reflection, n-tier architecture HTTP GET/POST, SOAP, Web services business tier Continue prac 7 10 30-Aug 11 06-Sep 12 13-Sep 13 20-Sep 14 27-Sep 15 04-Oct Web Programming: Web Services (cont.) Definition, .NET integration, reflection, n-tier architecture ASSIGNMENT DUE (Tuesday, 21-Sep-2010) Web Programming: Ajax (cont.) HTML, Javascript, asynchronous calls, browser compatibility, security Ajax as the presentation tier Web Programming: Ajax / Internet Applications Web scripting versus Web service integration, XSS, Ajax libraries Ajax adaptation to Web service-based business logic tier Complete all pracs Unit Review: 16 11-Oct Tuition Pattern: Lectures Tutorial 2 hours per week. 2 hours per week. 3/6 Lecture attendance is not compulsory, except for the mid-semester test date. Tutorial attendance in not compulsory but THEY ARE IMPORTANT! The mid-semester test and the final exam will be based on the work covered in lectures, and both the tutorials and assignment. Tutorials will commence in week two. Recommended Texts and Principal References: Required Text: None, although the Recommended Text covers a significant portion of the unit. Recommended Text: J. Löwy, .NET Components, 2nd Edition, O’Reilly, 2005. ISBN 0-596-10207-0. Additional Texts: A. Troelsen, Pro C# 2008 and the .NET 3.5 Platform, 4th Edition, APress, 2007, 1370pp. ISBN 1-59059-884-9. C. Nagel, Professional C# 2008, Wrox, 2008, 1848pp. ISBN 0-47019-137-6. D. Flanagan, JavaScript: The Definitive Guide, 5th Edition, O’Reilly, 2006, 1032pp. ISBN 0-596-10199-6. N. Zakas, J. McPeak, J.Fawcett, Professional Ajax, 2nd Edition, John Wiley & Sons, 2006. ISBN 0-471-77778-1 (also available as an eBook). J. Löwy, Programming WCF Services, 2nd Edition, O’Reilly, 2008, 784pp. ISBN 0-596-52130-8. Unit Web Area The unit materials are available via Blackboad (http://lms.curtin.edu.au), as well as the Computing Web site unit URL http://www.cs.curtin.edu.au/units/spd361 in case Blackboard is down. These areas contain critical information, messages and announcements for the unit and students should be accessing it on regular basis. No allowance will be made to compensate for the result of a student being unaware of the information in this Web area. Assessment Details: Mid-semester Test The mid-semester test will be held during lecture of Week 8 (week beginning 16-Aug-2010). NO MAKEUP (LATE / MISSED) MIDTEST WILL BE GIVEN. To pass the mid-semester test, you need to read the lecture notes AND the practical sessions. You need to spend approximately 5 hours reading around the subject covered in each lecture. In addition, you also include some extra hours to spend for revising for the test. Test will be handed back within three weeks. Assignment Students are required to submit their solution to the assignment by 5pm Tuesday of Week 12. NO LATE SUBMISSIONS WILL BE ACCEPTED. Marked assignments will be handed back within three weeks. Awarding of grades: Assessment will consist of: Mid-semester Test Assignment Final Examination Week starting 16-Aug-2010 Week starting 18-Oct-2010 Passing Criteria 4/6 Worth 25% Worth 15% Worth 60% In order to pass the unit a student: • must have attempted the mid-semester test, and • must have attempted the assignment, and • must achieve at least 45% in the exam, and • must have an overall unit assessment of at least 50%. Assessment Notes • • • • This unit requires between 8 and 10 hours of study per week. Please ensure that you keep up with the tutorial exercises and that you do not fall behind on the required readings. The date of the mid-semester test will not be changed. The assignment will be submitted in two parts: 1. The assignment program and source code will be submitted electronically by placing it in your home area in a directory (directory name TBA closer to the assignment due date). The source code will then be automatically taken up at the due date deadline and a notification of success or failure will be emailed to you. 2. An assignment cover sheet and written documentation as per the assignment’s requirements specification must be physically submitted to the lecturer or unit pigeon hole in the Department of Computing foyer by the due date (a cover sheet will be provided). You must submit a reasonable assignment attempt. A title page is not enough. GENERIC INFORMATION Enrolment and HECS: it is your responsibility to ensure that your enrolment is correct - you can check your enrolment through the eStudent option on OASIS, www.oasis.curtin.edu.au, and you can also print off an Enrolment Advice. Semester 1: you can make requests to have corrections made to your enrolment up to 31 March. The University will not change records after 31 March. HECS liabilities (where they apply) and your results depend on your 31 March enrolment. Withdrawals made after that date will not reduce your HECS liability. Semester 2: you can make requests to have corrections made to your enrolment up to 31 August. The University will not change records after 31 August. HECS liabilities (where they apply) and your results depend on your 31 August enrolment. Withdrawals made after that date will not reduce your HECS liability. Plagiarism: academic honesty is crucial to a student's credibility and self-esteem, and ultimately reflects the values and morals of the University as a whole. A student may work together with one or a group of students discussing assignment content, identifying relevant references, and debating issues relevant to the subject. Plagiarism occurs when the work of another person, or persons, is used and presented as one's own, unless the source of each quotation or the piece of borrowed material is acknowledged with an appropriate citation. The University regards very seriously any acts of cheating, or dishonesty by way of plagiarism. Penalties for such incidences have been defined within the University's Acts and Statutes [Curtin University of Technology Act, 1966 Statute 10, Student Disciplinary Statute, Sections 2 and 4]. For more information on the Curtin University Statement on Plagiarism and the nature and unacceptability of academic dishonesty including cheating, plagiarism and the fabrication or falsification of data, visit http://www.policies.curtin.edu.au/documents/plagiarism.doc The University statements on individual rights and responsibilities regarding the proper use of copyright material, the student charter and grievance procedures can be found at http://students.curtin.edu.au/administration/responsibilities.cfm 5/6 SCHOOL/UNIT-SPECIFIC INFORMATION Missed Tests: Students are referred to the Dept of Computing web site for information regarding the standard policy for missed tests: URL:http://www.computing.edu.au/documents/latesubmissionpolicy.pdf Supplementary Exams: You should be aware of the University policy on grading of results including Supplementary and Deferred Assessment. In particular, being awarded a Supplementary Examinations is a privilege, not a right. They are awarded for educationally sound reasons by the Board of Examiners in accordance with the University's governance policy. See governance.curtin.edu.au for details. Students who have been awarded a Supplemental Examination by the Board of Examiners will be notified by letter prior to the examination. Students can phone 9266 7298 to find out if they have been awarded a Supplemental Examination. You may not phone this number to apply for a Supplementary Examination or Assessment if you were not awarded one by the Board of Examiners. The correct process for this is through the Appeals procedure. Supplemental and deferred examinations will be held in the last week of the inter-semester break. Change of Address: Make sure that the University is aware of any changes in your address - this is your responsibility. Contact Details Anuradha Karunasena, Email: anuradha.k@sliit.lk Consultation Times: To be announced, or by appointment (email) Miscellaneous: There are no ancillary charge(s) required to be paid by the student to undertake the unit (as published annually in the Curtin Courses Handbook). CRICOS Provider Code 00301J END OF UNIT OUTLINE 6/6