Concordia University Comp 249 – Object-Oriented Programming II Course Outline - Winter 2013 Section SS PP U Instructor A. Hanna M. Mannan L. Kosseim E-mail contact@AimanHanna.com m.mannan@concordia.ca kosseim@cse.concordia.ca Office EV 3.257 EV 6.221 EV 3.117 Course Objective As a student, one rarely has the opportunity to write applications that exceed a few hundred lines of source code. In this context, it is entirely possible to produce acceptable software programs that require no more experience than that obtained in an introductory programming course. However, once you eventually move on to industrial/engineering programming environments, where code bases typically run into tens of thousands or even millions of lines, you will quickly see that “programming in the large” is an entirely different undertaking. Specifically, it is important, and required, that your code be more modular, more robust, and more flexible. It is significant that you are able to identify and analyze complex problems, and use appropriate skills, knowledge and tools to not only solve these problems, but to achieve the most substantiated conclusions. In this course, we will begin to examine these elements for the purpose of designing more sophisticated software applications. The course covers the higher-level subjects of object-oriented programming, including the design of classes, inheritance, composition, polymorphism, static and dynamic binding, abstract classes, exception handling, file I/O, recursion, interfaces, inner classes, graphical user interfaces, generics, collections and iterators. Various data structures will be introduced including Array Lists, Linked Lists, Hash Tables, Tress and Sets. Background Knowledge You should have some previous experience of programming in Java such as that provided in COMP 248 or a similar course. In particular, you should have a good understanding of expressions, statements, methods, parameters, and arrays. You should also know the basic concepts of objects, classes, and packages. Required Text Book Absolute Java by Walter Savitch, 5th Edition, Addison Wesley (The same book you used in COMP 248). Computing Facilities You will be using the same computing facilities and the same computer account you used in COMP 248. If you did not take COMP 248 or do not have a computer account, you can obtain it from the help desk at H– 960 or EV-007.182. This account will give you access to the laboratories. For more information on CSE Computer accounts please visit the website: http://www.encs.concordia.ca/helpdesk/access.html If you have a computer at home and prefer to use it, you may do so, but be aware that your programs must compile and run with Java 7. Tutorials The tutorials will reinforce the material seen during the lectures with examples/exercises and the assignments will be explained. The tutorials are also designed to help you acquire deeper knowledge and experience of problem analysis and problem solving. It is hence strongly recommended that you attend all the tutorials. Tutorials begin on the second week of classes. Programmer On Duty (POD) PODs will be available throughout the week in the Computer Lab to answer course related programming questions. The POD schedule will be announced on the course web page as soon as they are available. COMP 249/Winter 2013 Page 1 of 3 Web Pages Many resources for the course (slides, assignments, example programs, ...) will be available online. For sections PP (Dr. Kosseim) and U (Dr. Manan), please use the Moodle Web site available through the MyConcordia portal www.myconcordia.ca. For section SS (Dr. Hanna), the website is www.AimanHanna.com (follow Concordia link afterwards). Additionally, for section SS, a mailing list for the course will be also be available. You need to subscribe to this list ASAP since communications will be made through this list. Please consult the course website for more details. Assignments and Examinations a) Assignments There will be 4 assignments. The assignments will examine the programming materials and subjects covered in class and will allow you to develop a stronger foundation of problem analysis and solving. While all assignments have a programming component; some of them may have a theoretical component as well. You are allowed to work either individually or in a group of two, with another student from the same section. No additional marks are given for working individually. Assignments are to be submitted electronically only - no paper submission. Instructions on submitting assignments will be given in the first assignment. All assignment handouts will be available on the course web pages. For each assignment, a demo of about 10 minutes will be required. All members of the group must attend the demo and be able to explain their program to the marker. Different marks may be assigned to teammates based on this demo. The schedule of the demos will be determined and announced by the markers, and students must contact the marker to reserve their time slot. Demos are mandatory. Failure to do your demo will entail a mark for zero for that assignment. Submission format: All assignment-related submissions must be adequately archived in a ZIP file using your last name as file name. If you work in a group, both family names must be used separated by _and_ (i.e. Hoffman_and_Jackson). Only electronic submissions will be accepted. Students will have to submit their assignments (one copy per group) using the EAS system. b) Examinations There will be 2 midterm exams that will take place during regular lecture times. There will be no make-up for a missed exam. The final examination will be administered during the examination period at the end of the term. The final examination covers all material seen during the term, and will examine your developed skills of problem analysis, in addition to your programming knowledge of the subjects covered during the entire course. CEAB Attribute Assessment The Canadian Engineering Accreditation Board (CEAB) has put forward specific requirements for the accreditation of engineering programs in Canada. To satisfy these requirements, the ENCS faculty has started the process of evaluating its offered courses against specific attributes required for the accreditation. COMP 249 is among the very first courses chosen for accreditation assessment. The attribute evaluated in this course is Problem Analysis; the definition of this attribute is as follows: Problem analysis: An ability to use appropriate knowledge and skills to identify, formulate, analyze, and solve complex engineering problems in order to reach substantiated conclusions. The overall value of this attribute in relation to this course will be 5%. The evaluation will be based on specific components on the assignments and the exams. Consequently, in addition to your final grade in the course, you will be receiving a separate mark for this attribute. In general, these separate marks, which you will be receiving in this course and other courses, will be used to indicate your proficiency in all of the CEAB attributes as per accreditation requirements. COMP 249/Winter 2013 Page 2 of 3 Evaluation Scheme 4 Assignments 2 Midterm exams Final exam 1. 2. 3. 20% (4 × 5%) 30% (2 × 15%) 50% In order to pass the course, you must pass the exams (weighted average of the midterms and the final), regardless of your grade in the assignments. We will do our best to ensure that final grades correspond in a predictable way to marks; however, there is no standard relationship between percentages and letter grades assigned. While we encourage discussion amongst students, you should be aware of the University’s academic code of conduct as specified in section 17.10 of the 2012/2013 Undergraduate Calendar, especially the sections concerning cheating, plagiarism, and the possible consequences of violating this code. In cases where plagiarism is suspected, the case will be forwarded directly to the appropriate university office for consideration. Please refer to http://registrar.concordia.ca/calendar/pdf/sec16.pdf for more information on that important matter. Important Lecture Guidelines Laptops are STRICTLY PROHIBITED in classroom during the lectures. Other communications devices, such as cellular phones and text/video messaging devices are also STRICTLY PROHIBITED. The usage of any of these materials during the class will result in you being asked to immediately leave the class. Tentative Schedule The list below provides a summary of the material that will be covered during the course as well as a very tentative schedule. Please check the course webpage and follow actual class coverage for any changes. Week # Chapte rs Material Special Event 1: Jan. 7 – Jan. 11 2: Jan. 14 – Jan. 18 3: Jan. 21 – Jan. 25 4: Jan. 28 – Feb. 1 5: Feb. 4 – Feb. 8 6: Feb. 11 – Feb. 15 Feb. 18 – Feb. 22 7: Feb. 25 – Mar. 1 8: Mar. 4 – Mar. 8 9: Mar. 11 – Mar. 15 10: Mar. 18 – Mar. 22 11: Mar. 25 – Mar. 28 4, 5 & 6 7 8 9 Review of Classes, Objects & Arrays Inheritance Polymorphism and Abstract Classes Exception Handling Assig. 1 given 10 11 13 File I/0 & Serialization Midterm Break – No Class Recursion Interfaces & Inner Classes 14 15 & 16 Generics Linked Data Structures & Collections Assig. 1 due + Assig. 2 given Midterm 1 Assig. 2 due + Assig. 3 given Midterm 2 Assig. 3 due + Assig. 4 given Friday Mar. 29: No class for sections SS (Hanna) and U (Kosseim) 12: Apr. 1 – Apr. 5 13: Apr. 8 – Apr. 12 Monday Apr. 15 15 & 16 17 & 18 Linked Data Structures & Collections Graphical User Interfaces Assig. 4 due Sections SS (Hanna) & U (Kosseim): Make-Up Day for March 29 In the event of extraordinary circumstances beyond the University's control, the content and/or evaluation scheme in this course is subject to change. COMP 249/Winter 2013 Page 3 of 3