Course Syllabus
This course introduces object-oriented programming and the basic
principles of software development to non-computer science graduate
students already familiar with programming. Web technologies for
the collection and dissemination of knowledge will be introduced
and studied.
Prerequisite: a course in programming.
Note: this course cannot be used to satisfy the course requirements
of York's graduate program in computer science.
Course instructor
Franck van Breugel
Lassonde Building, office 3046
franck@cse.yorku.ca
Office hours: Mondays and Wednesdays, 16:00-17:00 or by appointment
Time and location
Time: |
Mondays and Wednesdays, 17:30-19:00 |
Location: |
Accolade East Building, room 010 |
Expanded Course Description
This course introduces object-oriented programming and the basic
principles of software development. Since most students who take
this course are part of the financial engineering program, this
course is tailored towards them. However, the course is open and
useful to other non-computer science graduate students as well.
Since other courses in the financial engineering program use
Matlab, we use in this course an object oriented programming
language which complements yet is closely tied to Matlab, namely
Java. As we will see in this course, one can easily invoke Matlab
code within a Java program. Furthermore, since the Matlab
interpreter is written in Java, one can directly invoke Java code
in Matlab.
A lot of software developed these days consists of several
components, also known as classes, glued together. In this
course, we focus on how to use classes. How to write your
own classes is not covered in this course.
Learning Outcomes
- Create, compile, and run Java programs
- Interpret and correct compile-time errors
- Interpret and correct run-time errors
- Test a Java program using JUnit and interpret and correct logical errors
- Describe data types and give example values
- Declare variables and assign values to them
- Identify when conversion between types is required
- Locate specific classes in the Java API
- Read a given API and extract information about the class, attributes,
constructors and methods (including return types, parameters,
preconditions, and postconditions)
- Discriminate between client responsibilities and implementer responsibilities
- Describe how an object is created in memory
- Identify how an object's state can be accessed or modified
- Demonstrate how objects can be tested for equality
- Control a program's flow of execution using if-statements or switch statements
- Use a loop structure to repeatedly execute a block of code
- Create, transform, and compare String objects
- Iterate over the characters in a String
- Locate a character or substring within a String
- Define and use a mutable representation of characters
- Use regular expressions for pattern matching
- Understand the difference between aggregation and composition
- Identify the difference between an alias, a shallow copy, and a deep copy
- Describe the relationship between and superclass and subclass
- Understand the substitutability principle
- Use polymorphism to simplify coding
- Differentiate between a class, an abstract class, and an interface
- Describe how the list, set, and map collections differ in data organization
- Use generics to perform compile-time type checking
- Demonstrate how to add elements to a collection, remove elements from a collection, and iterate over all eleme
nts in a collection
- Understand the Throwable hierarchy
- Use a try-catch block to handle thrown exceptions
- Create exceptions
Textbook
Hamzeh Roumani.
Java By Abstraction: A Client-View Approach.
Third edition, 2010. Pearson Learning Solutions.
Students may use the third or fourth edition.
The second edition can also be used provided that
students consult a copy of the third edition in the
Steacie Science and Engineering Library for Chapter 1 and 2.
Errata for the third, second and first edition can be found
here,
here and
here, respectively.
Evaluation
The final grade of the course will be based on the following
items weighted as indicated:
10 programming exercises: |
5% each (3% for correctness, 2% for style) |
2 programming tests: |
10% each |
project report and code: |
30% |
Grading: For each test, students receive a score in the
range 0-15. For the final exam, students receive a score
in the range 0-25. The final grade for the course is
obtained by adding the scores of the five tests and the
final exam and converting this total to a letter grade
according to the following table.
F |
C |
B |
B+ |
A- |
A |
A+ |
<60 |
>60 |
>70 |
>75 |
>80 |
>85 |
>90 |
Students may view their grades using the ePost
system. All grades distributed via ePost are unofficial and are subject to
review by the Department of Electrical Engineering and Computer Science.
Missed tests: Students with a documented reason for missing
a test, such as illness, compasionate grounds, etc., which is
confirmed by supporting documentation (e.g, doctor's letter),
will have the weight of the missed test distributed over the
other tests.
Click here
for further details on the grading schemes.
Project
The aim of the project is to write a non-trivial application related to
financial engineering. Besides the documented Java code, you are also
expected to hand in a report.
Projects can either be done alone or in a group of two (groups larger
than two are not allowed). Research has shown that groups of two are often
ideal for programming projects like this one.
By November 1, each group is expected to email the instructor
- a list with the names of the members of the group,
- a description of the project (you are suggested to provide a number
of milestones ranging from objectives that are easily accomplishable to
more challenging objectives), and
- a list of Java packages to be used in the project, including the URL
where the package can be found.
Some packages can be found here.
The project is due on December 15. Email the instructor
- your report,
- your application, and
- the Java code you used to test your application.
Here
and here
you can find a sample of a project proposal and
here
and here
you can find a sample of a project report. These are samples. They are not perfect, but are
of very good quality.
Additional Information
Academic Honesty and Integrity: York students are required to maintain
the highest standards of academic honesty and they are subject to the
Senate Policy on Academic Honesty.
The Policy affirms the responsibility of faculty members to foster
acceptable standards of academic conduct and of the student to abide
by such standards.
There is also an academic integrity website with comprehensive information
about academic honesty and how to find resources at York to help improve
students' research and writing skills, and cope with University life.
Students are expected to review the materials on the
Academic Integrity
website.
Access/Disability: York University is committed to principles of respect,
inclusion and equality of all persons with disabilities across campus.
The University provides services for students with disabilities (including
physical, medical, learning and psychiatric disabilities) needing
accommodation related to teaching and evaluation methods/materials. These
services are made available to students in all Faculties and programs at
York University.
Students in need of these services are asked to register with disability
services as early as possible to ensure that appropriate academic
accommodation can be provided with advance notice. You are encouraged to
schedule a time early in the term to meet with each professor to discuss
your accommodation needs. Please note that registering with disabilities
services and discussing your needs with your professors is necessary to
avoid any impediment to receiving the necessary academic accommodations
to meet your needs.
Additional information is available at the following websites:
Ethics Review Process: York students are subject to the York University
Policy for the Ethics Review Process for Research Involving Human Participants.
In particular, students proposing to undertake research involving human
participants (e.g., interviewing the director of a company or government
agency, having students complete a questionnaire, etc.) are required to
submit an Application for Ethical Approval of Research Involving Human
Participants at least one month before you plan to begin the research.
If you are in doubt as to whether this requirement applies to you,
contact your Course Director immediately.
Religious Observance Accommodation: York University is committed to
respecting the religious beliefs and practices of all members of the
community, and making accommodations for observances of special
significance to adherents. Should any of the dates specified in this
syllabus for an in-class test or examination pose such a conflict for
you, contact the course director within the first three weeks of class.
Similarly, should an assignment to be completed in a lab, practicum
placement, workshop, etc., scheduled later in the term pose such a
conflict, contact the course director immediately. Please note that
to arrange an alternative date or time for an examination scheduled in
the formal examination periods (December and April/May), students must
complete an Examination Accommodation Form, which can be obtained from
Student Client Services, Student Services Centre or online
here.
Student Conduct in Academic Situations: Students and instructors are
expected to maintain a professional relationship characterized by courtesy
and mutual respect. Moreover, it is the responsibility of the instructor
to maintain an appropriate academic atmosphere in the classroom and other
academic settings, and the responsibility of the student to cooperate in
that endeavour. Further, the instructor is the best person to decide, in
the first instance, whether such an atmosphere is present in the class.
The policy and procedures governing disruptive and/or harassing behaviour
by students in academic situations is available
here.
|