DEPARTMENT OF INFORMATION SCIENCE INFO221 Application Software Development COURSE OUTLINE Semester Two, 2014
Paper Description and Aims This course involves a study of the principles and practise of Application Software Development. It will enable students to understand how object- oriented programming techniques can be used to produce powerful and effective information systems. The students will develop a 3- tier business application. Learning Outcomes Students will gain proficiency in the object- oriented programming language Java, including Java's World Wide Web technologies in the context of developing a 3- tier business system (a shopping system). At the end of the course an INFO221 student is expected to achieve the following goals in the context of building the shopping application: To understand a number of life cycle models of application software development. To become conversant with software engineering concepts such as software testing and error handling. To understand the important object oriented principles (encapsulation, association, inheritance and polymorphism). To design and develop a good user interface, both desktop and Web user interfaces. To become familiar with different data structures that can be used to hold data (e.g. collection classes) and be able to choose appropriate data structures for the problem at hand. To become proficient in the storage, retrieval and manipulation of data using JDBC (Java's database API). To understand the motivation behind building three- tier systems and also understand the role of each tier and the relationships between the tiers. Page 1
Teaching Staff Paper Coordinator Name: Dr. Tobias Langlotz Office: CO 9.13 Email: tobias.langlotz@otago.ac.nz Lecturer Name: Office: Email: Lecturer Name: Office: Email: Tutor Name: Office: Email: Mark George CO 10.5 mgeorge@infoscience.otago.ac.nz James Irwin CO 9.14 jirwin@infoscience.otago.ac.nz Christopher Frantz CO 9.08 cfrantz@infoscience.otago.ac.nz You should contact the (Dr. Tobias Langlotz) with any administrative enquiries about the paper, e.g. tutorial changes, or requests for late submission of assignments. Course Notices and Materials Course information and notices can be accessed via Blackboard. To access Blackboard go to: http://blackboard.otago.ac.nz Login using your university student ID and password that you use to access your university email account and the student computing system. For problems relating to Blackboard access please contact the ITS helpdesk: helpdesk@.otago.ac.nz or telephone: (03) 479 8888, or 0800 479 8888 Students may access university email via the Web page: http://studentmail.otago.ac.nz Note: Email generated by Blackboard, and by departments is sent to your university student account so please check your email regularly. Email forwarding from your university account to other addresses may be arranged by emailing the ITS help desk. Bookmark these sites and check them regularly. We regularly post announcements on Blackboard and may occasionally send emails to your student account. Page 2
Lectures and Tutorials We strongly recommend that all students should plan to attend all of the lectures and labs and be prepared for the lecture sessions by reading the assigned material for that session. There are two lectures each week: Day Time Venue Tuesday 10:00-10:50 am CO 2.25 Wednesday 10:00-10:50 am CO 2.22 There will be 4 tutorials starting in the second week of the course: Day Time Venue Thursday 17 th of July 2:00-2:50 pm Castle B Thursday 24 th of July 2:00-2:50 pm Castle B Thursday 31 th of July 2:00-2:50 pm Castle B Thursday 7 th of August 2:00-2:50 pm Castle B Laboratories Streaming information will also be available from Blackboard. All labs will be held in the Commerce PC laboratories 3.03 or 3.16. Each lab consists of a set of recommended programming exercises. Students should complete each lab exercise individually with the help of the tutors. Note: Labs start on time and usually start with a discussion of topics relevant to the lab exercise. It is therefore strongly recommended that students are not late. Material covered in labs may go beyond that covered in lectures and is examinable. Outside the scheduled lab times, machines in other open laboratories on the 3 rd floor may be used provided that they are not being used for classes. Note that in periods of peak demand the use of machines for e- mail and Internet access may be restricted. Each student will be streamed for a single two- hour laboratory session to be held each week. The lab timetable is given below. Day Time Venue Monday 10:00-11:50 am CO 3.03 Monday 2:00-3:50 pm CO 3.03 Tuesday 2:00-3:50 pm CO 3.16 Tuesday 4:00-5:50 pm CO 3.03 Assessed Labs Eleven out of the thirteen labs are assessed. Refer to course schedule on Blackboard to check which labs are assessed. The practical work that you carry out during the assessed lab will be evaluated for Page 3
1 mark. This is to ensure that you have learnt the basic practical skills to design and develop the class project. Best 10 out of the 11 will be considered towards 10% of your final marks. Practical Tests There will be two practical tests during the semester. Test Date Time Venue Practical test 1 13 th August 2013 5-7pm or 7-9pm COGO4/GO5 Practical test 2 1 st October 2013 5-7pm or 7-9pm COGO4/GO5 Tests will be held in COG04 and COG05 on Friday evenings (see schedule). The assessment for each of these practical tests will represent 15% of your final mark (i.e. each will have a maximum value of 15 marks). The two practical tests will represent 30% of the total marks for the course. Note that the tests are performed outside of your regular scheduled lab times. Check your streamed test time and location, and record this in your diary for the two test weeks now to prevent scheduling anything else during those times. The programming exercises selected for the practical tests could be based on the topics covered in labs, the project, and lecture material. Semester Project There will be a single semester- long project, which involves implementing an object- oriented information system using the Java programming language. The first part of the project includes the domain objects, appropriate GUI using the Java Swing framework, and persistent data storage using Java DataBase Connectivity (JDBC). The second part of the project will contain the web- based user interface and appropriate domain objects. Refer to the project description document available on Blackboard. The following are the due dates for the first and second phases of the class project Project phases Date Time Phase 1 22 nd August 2013 5 pm Phase 2 26 th September 2013 5 pm We realise that the marks associated with the project are small in relation to the amount of work required to complete the project. You should understand that this project is an important part of this course, since it is the mechanism that allows you to put into practise the concepts taught in this course. The practical tests will be loosely based around the concepts covered by the project, so working on the project will be the best practise for the practical tests. There will also be some questions in the final exam that relate to concepts covered in the project. We have a minimum expectation for the quality of submitted assignments. Projects that don't compile will not be marked. We will require a minimum amount of functionality for submitted projects - projects that don't have the minimum functionality will not be marked. The minimum functionality requirements will be specified on the project handouts. Page 4
When submitting their labs, tests and projects, students are expected to meet software engineering industry professionalism standards, such as code formatting and style, naming conventions, indentations and programming practices. For details refer to Java coding conventions: http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc- 136057.html Submission of class project We will inform you of how to submit your practical assignment work closer to the due date. Individual Assesement Students must complete the practical tests, labs, and project work individually. It is encouraged for students to discuss labs and project work together with each other, or even conduct pair programming during the lab sessions. Note however, that each student is responsible for understanding the whole lab or project and be able to perform on the individual practical tests and answer the project related questions on the final exam. Plagiarism Students should make sure that all submitted work is their own. Plagiarism is a form of dishonest practice. Plagiarism is defined as copying or paraphrasing another's work, whether intentionally or otherwise, and presenting it as one's own (definition approved by University Council, December 2004). In practice this means plagiarism includes any attempt in any piece of submitted work (e.g. an assignment or test) to present as one's own work the work of another (whether of another student or a published authority). Any student found responsible for plagiarism in any piece of work submitted for assessment shall be subject to the University's dishonest practice regulations which may result in various penalties, including forfeiture of marks for the piece of work submitted, a zero grade for the paper, or in extreme cases exclusion from the University. While we will enforce the plagiarism regulations of the University we don't want to discourage you from discussing your work with your class mates or referring to other resources (such as the Internet, or textbooks) when you have problems. If you use code in your practical work that is not written directly by you or your programming partner then you should add a comment stating who wrote it (in the case where another student or tutor helped you), or the source of the code (in the case where you found the code in a book, on the Internet or some other resource). Final Examination The final examination will cover material from the entire semester including material covered in lectures, labs, readings and discussion boards. The exam will be three hours long and will be conducted by the Registry during the final examination period. The date, time, and location of this examination will be announced during the semester. Page 5
The Hurdle In order to pass this paper, in addition to obtaining a minimum grade of 50 out of 100, the sum of the marks for the final exam (45 marks) and the practical tests (30 marks) must be greater than 40% of the total of 75 marks, in other words 30 marks out of 75. Final Marks The final mark for each student will be determined as follows (refer also to the hurdle section): Project Two practical tests Assessed Labs Final examination 15% 30% (15% each) 10% 45% Requests for Extensions and Special Consideration In cases of sickness or other special circumstances, we may offer individual students extensions to assignment deadlines or alternative forms of assessment to replace tests that have been missed. To be eligible for this, an affected student should inform Tobias Langlotz as soon as possible and before the deadline has passed. We require a doctor's note to confirm a medical problem. Extensions to assignments will be given at a penalty of 1.5 marks per day, unless there are exceptional circumstances. Note: Asking for an extension for the course project because you were sick for the last few days before the deadline is not considered to be an exceptional circumstance. You will have several weeks to work each assignment deliverable, so plan ahead, and don't leave it until it is too late. If there is any way in which we can help students with disabilities please let us know. We are happy to offer whatever assistance we can, but need to know in advance of any potential difficulties that might arise. Blackboard Discussion There will be various discussion threads on Blackboard. We encourage students to take part in these discussions by posting questions that they might have with regard to topics covered in the lectures, labs or the project. The posted questions may be answered by other students or staff. Staff will be monitoring the discussions. We encourage you to post answers to the questions posted on Blackboard. Page 6
Where To Go To Get Help If you have questions relating to the course material then you should feel free to ask them during lectures, and labs. You should also feel free to post questions on the relevant discussion board on Blackboard. You can also talk to any of the staff members any time that we are available. Send an email to make an appointment with the staff member that you wish to talk to. Reference books Note that there is no prescribed text book for this course. We expect you to come prepared for each lecture by reading the appropriate reading assignments listed in the reading assignment document (posted on Blackboard). We will pose questions during the lecture based on the reading. We will also make some questions available on the discussion board for more information). For starting and improving your Java programming skills we recommend the following books: The Complete Reference - Java 2 fifth edition, Herbert Schildt, McGraw- Hill/Osborne (2002). Simply Java programming - An Application- Driven Tutorial Approach, Deitel, Deitel, Listfield, Yaeger and Zhang, Pearson Education (2004). Disclaimer While every effort is made to ensure that the information contained in this document is accurate, it is subject to change. Changes will be notified in class and via Blackboard. Students are encouraged to check Blackboard regularly. It is the student s responsibility to be informed. Page 7