Concordia University

advertisement
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
Download