User Tools

Site Tools


course_outline

Course Outline

The course outline and related course topics will be presented during the first class of the course. Our notes are taken from Dr. Ma and Dr. Castellucci classes.

May 10

May 12

Notes

Here is the example discussed during the class. You can use WinRar in Windows to decompress the example. Also you can simply import the project in Eclipse as an “existing project”. Here are the details.

Quiz0, is scheduled for next Thursday (May 19th) during lab hours (19:00-20:30). The quiz is very simple and aims to assure you have setup your Prism account and know your ways around Submit command line. Q0 will be 2% of your final mark.

You can also use Chapter 1, 2, 3 and 4 as your reference: Here is the link to the book

May 17

May 19

Notes

Here is the Animal generic example we discussed in the class (please look under Animals/src/main/java/Main.java). If you want to import the project in Eclispe, please first run the below command in the project root directory. Please refer to FAQ on how to setup Gradle.

“gradle clean2030 build javadoc eclipse test run jar”

May 24

Notes

We will cover Unix Shells in details under EECS2031, however here is a quick primer. and here is a more advanced version. We discuss the basic commands that you have to learn by now in the class in case you are behind.

Don't forget our Quiz1: May 31 19:00-20:30 (and June 02 for the other group).
Please make sure you study all lecture notes including May 24th for Quiz1. Please make sure you can implement BankAccount class from scratch. To Practice static methods, try to add a static method to the class that convert the balance from CAD to USD dollars. Q1 will have 6 multiple choice questions and 2 programing questions.


Marks for Quiz0 are posted. Here is a sample solution. You can find the Quiz0 questions Here. Please refer to FAQ on how to check your mark.

May 26

Here you can find all the examples we discussed in the class. Here is a screenshot of the file structure we have in the examples.

For Quiz1, please make sure you study all the notes and examples. You need to know how to:

  1. Create a class from scratch according to a given API (e.g. practice implementing the BankAccount.java from scratch using the given API for BankAccount in Quiz0).
  2. Create JavaDocs (e.g. how to document with annotations directly in your Java classes). Please look at BankAccount.java in Quiz0 to practice. Here are some details on JavaDoc Tags.
  3. Create a Singleton class (e.g. look at the Bicycle/src/main/java/BicycleFactory.java under Bicycle sample code).
  4. Create a JUnit test case using @Test annotation (e.g. look at Bicycle/src/test/java/MainTest.java under Bicycle sample code).
  5. Compile and run your codes (or know your ways around Eclipse if you are planning to use it)

Here is how you can decompress the samples in CSE:
wget http://www.eecs.yorku.ca/course_archive/2015-16/S/2030/000examples.tar.gz
gunzip 000examples.tar.gz
tar -xf 000examples.tar

May 31

Notes

I have had three instances from the beginning of the term that mails bounced back from MS Hotmail/Live mail service. These services are free public services and not fully reliable. Going forward I will only address the emails that are originating from YorkU or EECS mail servers.

If your lab is on Thursdays, you can show up either Tuesday or Thursday for the quiz (as Thursdays are crowded, I want to reduce the numbers on Thursday as much as possible.)
If your session is on Tuesday, you can only write the quiz on Tuesday (sorry we don't have room left on Thursdays).

Some folks are asking about JUnit setup. Here you can find the details.

June 02

June 07

Quiz1 marks are posted. Solution will be discussed in details in the class (please attend the class to ask any quiz related questions). If you have any concerns about Quiz, it can be remarked (please book an appointment). Quiz marks are out 10 and it consist 10% of your final mark. Please use EECS-ePost to find your marks.

June 09

Quiz2 will cover material discussed up to and including June 9th. Please make sure to read the lecture notes.

  1. You need to know the defensive copying and issues around privacy leaks we discussed for aggregation and composition.
  2. You need to know the difference between DeepCopy and ShallowCopy.
  3. Make sure you know Singleton pattern.
  4. Make sure you know UML and can draw a simple UML diagram.
  5. Make sure you know how to create an Abstract class and partial implementation in abstract classes.
  6. Make sure you know how to create child classes and use keywords like Super and This.
  7. Make sure you know how Exception works and can create/extend your own Exception classes while considering the strength of pre/post conditions.
  8. Make sure you know how to use JUnit and Java Docs.
  9. Make sure you know how to override hashcode, equals and toString methods.
  10. Make sure you know late binding and dynamic dispatch concept in Java.
  11. Make sure you know about hiding attributes and the related pitfalls of naive definitions for static attributes.
  12. Make sure you know how to create an interface and implement its features.
  13. Study the Animal example here.



You can also use Chapter 1, 2, 3, 4, 5 and 6 as your reference: here is the link to the book.



Answers for Quiz1 along with UUIDFactory discussed in the class are posted here. Please note package 000examples is updated.

June 14

Notes and corresponding Java codes. Here is the UML diagram for Calculator example discussed in the class

For UML diagram from existing Java code refer to here and to auto generate Java code from a UML diagram refer to here

On a separate note, you can login to RED and issue “feedback 2030 Q1” to get your copy of the code submitted for Quiz1.

June 16

Notes and corresponding Java codes

Interactive examples from Tower of Hanoi discussed in the class: youtube video demonstration and here is an interactive demo.

June 21

Notes.

Quiz2 marks are posted. Solution will be discussed in details in the class (please attend the class to ask any quiz related questions). If you have any concerns about Quiz, it can be remarked (please book an appointment). Quiz marks are out 10 and it consists 10% of your final mark. Please use EECS-ePost to find your marks.

June 23

Please study for midterm (which include everything discussed up to and including June23rd lecture).

Feedback command should now work for quiz2. To get a copy of the code you submitted for Quiz2, run: feedback 2030 Q2.

Solution for Quiz2 is posted here.
Also LinkedList example from OpenJDK is posted here.

June 28

Midterm Part A will be held in the class during the class hours.

Midterm will cover material discussed up to and including June 23rd. Please make sure to read the lecture notes.

  1. You need to know the defensive copying and issues around privacy leaks we discussed for aggregation and composition.
  2. You need to know the difference between DeepCopy and ShallowCopy.
  3. Make sure you know Singleton pattern.
  4. Make sure you know UML and can draw a simple UML diagram.
  5. Make sure you know how to create an Abstract class and partial implementation in abstract classes.
  6. Make sure you know how to create child classes and use keywords like Super and This.
  7. Make sure you know how Exception works and can create/extend your own Exception classes while considering the strength of pre/post conditions.
  8. Make sure you know how to use JUnit and Java Docs.
  9. Make sure you know how to override hashcode, equals and toString methods.
  10. Make sure you know late binding and dynamic dispatch concept in Java.
  11. Make sure you know about hiding attributes and the related pitfalls of naive definitions for static attributes.
  12. Make sure you know how to create an interface and implement its features.
  13. Make sure you know MVC design pattern and why it is used.
  14. Make sure you know recursion and Tower of Hanoi.
  15. Make sure you know how LinkedList and its nodes are implemented (both in a recursive fashion and ordinary loop style).
  16. Make sure you know how LinkedList and its methods (e.g. get, set, add, remove, toString, contains and indexOf)
  17. Make sure you know how LinkedListIterator works and can easily implement hasNext, next and remove methods.

June 30

Midterm Part B will be held in the PRISM Lab during the class hours (mainly programming questions).

Many students asked about possible practice programing question. Please practice the below scenario:

  • A BankingClient can be a BusinessBankingClient or PersonalBankingClient.
  • A client can have multiple accounts (either checking, saving or super saver high interest rate).
  • Interest rates are derived from Bank of Canada's Prime rate.
  • Saving account has an interest rate of Prime - 2% and super saver high interest rate has Prime - 1%.
  • Negative interest rates are possible (e.g. you may lose money if you keep your money in the bank).
  • Business Clients can do as many deposit or withdraw as they want.
  • Personal Banking Clients have only 20 free transactions and will be charged an additional $4 for any extra transaction if their monthly balance is below $5,000 at any given time.
  • All transactions should be archived.
  • Please implement this banking system and make sure to use LinkedList (your own implementation) to track and iterate through the translations.

July 05

Notes.

Midterm marks are posted (July 4th 11:30 AM). Solution will be discussed in details in the class (please attend the class to ask any questions). If you have any concerns about the Midterm, it can be remarked (please book an appointment in person). Midterm marks are out 13+12 (PartA and PartB) and it consists (13+12)% of your final mark. Please use EECS-ePost to find your marks.

July 07

Notes.

Midterm solution is posted here. Also “feedback 2030 Midterm” is enabled.

July 12

Notes.

Here is a simple sample code for a binary search tree discussed in the class (listed under BSTAndMergeSort folder).

In case you want to know more about basics of Graphs, read the first few slides of Jeff and Andy's notes here

Here is an interactive demo for binary search tree add/remove operation as discussed in the class.

Here is an interactive demo for various tree traversal discussed in the class. To run the applet, you need to use internet explorer and add the site to the internet explorer's trusted sites.

July 14

Please note registrar office released a tentative schedule for the final exam: Monday August 15th 19:00-22:00

July 19

Notes.

Here is a simple sample code for different sorting approaches discussed in the class.

Here is an interactive demo for various sorting approaches discussed in the class.

Quiz3 marks are posted. Solution will be discussed in details in the class (please attend the class to ask any quiz related questions). If you have any concerns about the Quiz, it can be remarked (please book an appointment). Quiz marks are out 10 and it consists 10% of your final mark. Please use EECS-ePost to find your marks.

Quiz3 solution is posted here. Also “feedback 2030 Q3” is enabled.

July 21

Here are some more videos from Sesh (the author of “Data Structures Outside-In with Java”) on BST.

July 26

Please note this is a review session and not mandatory to attend. Folks how had assignment 3, please attend that we can cover A3 as well. We will go over the material in the course and discuss the final exam.

Quiz 4, will be held in the PRISM lab during the class hours on July 28th (this is for both sections).

July 28

Quiz 4, will be held in the PRISM lab during the class hours on July 28th (this is for both sections).

Here is the updated examples including BSTAndMergeSort.






** Notes are taken from Dr. Ma and Dr. Castellucci classes.

course_outline.txt · Last modified: 2016/08/03 04:07 by navid