York University

CSE 5910: Software Foundations

Fall 2014

Department of Electrical Engineering and Computer Science

Home

Weekly Calendar

Course Syllabus

Course Policies

Important Links



York University

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.