EECS1720: Building Interactive Systems
EECS1720: Building Interactive Systems
W2021 – Section M
Contents
Course Description
A second course teaching more advanced programming concepts within the context of image, sound and interaction using an object-oriented language. Introduction to interactive systems, user interfaces, event-driven programming, object design and inheritance. Implementation using debuggers, integrated development environments, user interface builders. One term. Three credits.
Pre-requisites: LE/EECS 1710 3.00.
Course credit exclusions: LE/EECS 1020 3.00, LE/EECS 1022 3.00, AP/ITEC 1620 3.00. PRIOR TO FALL 2014: course credit exclusions: LE/CSE 1020 3.00. PRIOR TO SUMMER 2013: course credit exclusions: SC/CSE 1020 3.00.
Learning Outcomes
By the end of the course you will be able to
• Understand class components, access/encapsulation and basic UML representations
• Understand and use classes that involve complex aggregations/inheritance relationships
• Use and create 2D Graphics
• Understand Exception and Error mechanisms in Java
• Design applications that incorporate Exception Handling
• Understand and leverage class associations, inheritance & interfaces
• Understand and leverage polymorphism
• Understand and leverage simple containers/collections
• Understand and design basic GUI applications
• Understand and design applications that use events and event handlers
• Understand and design applications that use simple threads
Means of Communication
Lecture Hours:
Tuesday & Thursdays 2:30pm-4:00pm
Meeting ID: 991 1897 2396 Passcode: 716269
Zoom: https://yorku.zoom.us/j/99118972396?pwd=Q21FUGovbmRRbjZZRkY1S29DMk5uQT09
Private Office Hours:
Private office hours will be conducted as one-to-one Zoom meetings during the following time slots (according to your section). This will require you to be in a queue upon joining the session (i.e. in a waiting room), until it’s your turn to be individually let into the meeting.
Please email your instructor directly for what cannot be said during office hours. If you need more explanation about a topic, please meet your instructor at their assigned office hours as email is not a good medium for explaining a topic.
Wednesdays 1:00pm-3:00pm (with Dr. M. Kyan)
Meeting ID: 939 5752 5634 Passcode: 995724
Zoom: https://yorku.zoom.us/j/93957525634?pwd=NHpYNTZoVEFvYTdDNENGOE1DS0ttUT09
Email: [email protected]
TA’s Office hours: TBD …
Piazza discussion forum:
This is a good place where you share your technical problems and issues. This method is encouraged as not only the instructors and TAs are there to help you but also your peers, who had the same issue and were able to resolve it can share their experiences. If you haven’t received an invitation for Piazza, at the beginning of the term, please contact your instructor to register you. Please note that this is a professional discussion forum and the members of this forum are your colleagues. This requires you to be professional in your communication.
The link for Piazza will be available through eClass
Please note that you can send an anonymous message if you do not feel comfortable asking a question by your name. However, please be aware that you are only anonymous to your peers not to the instructors and TA’s.
Laboratory sessions:
Please join the following zoom link for lab sessions (labs 1-6):
Zoom link: https://yorku.zoom.us/j/95873420639?pwd=OUNxQTRHZ1JJVVVoTUdITEVBRUNIdz09
Meeting ID: 958 7342 0639
Passcode: 496665
Textbooks
If you attend all the lectures (i.e. watch all the videos), take a note, grasp all the materials that are taught and complete all the assignments successfully, you probably do not need any book. However, there are some useful book that I can recommend you to read.
1. Head First Java: A Brain-Friendly Guide, Kathy Sierra, Bert bates. ISBN-13: 978-0596009205 This book is different from any other books that is used for academic purpose. It does not have a formal structure that you normally see in other books, which makes it less boring to continue reading the book. I’m sure you do not fall sleep, reading this book. Please beware that not all the concepts that is taught, can be found in this book.
2. Introduction to Programming in Java: Robert Sedgewick and Kevin Wayne. Second Edition. ISBN-13: 978-0672337840. This is an excellent book, with lots of good examples. Chapter 2.3 onwards is what we are interested in, for this course.
3. Introduction to Computing & Programming with JAVA – A Multimedia Approach. M. Guzdial and B. Eriscon,, ISBN 0-13-149698-0. This is an excellent book that focuses on digital media concepts with Java
4. Absolute Java: Walter Savitch. Sixth Edition. ISBN-13: 978-0134041674. This is an almost comprehensive book for this course however chapter 7 onward is what is useful for this course.
5. Computer Science: An Interdisciplinary Approach: Robert Sedgewick and Kevin Wayne. ISBN-13: 978-0134076423. This book does is mostly about the science of computing. If you are perfectly comfortable with the materials taught in this course and you want to know more, this book is a good reference for you.
Assessments
Assessment Type
|
Weight
|
Comment
|
Labs
|
15%
|
7 labs, labs 0 (0%), labs 1-3 worth 2%, lab 4-6 worth 3%
|
Programming Tests
|
20%
|
Two specific programming tasks that carry the same weight
|
Assignments
|
20%
|
Two mini programming projects that carry the same weight.
|
Midterm Test1
|
20%
|
Written exam (online).
|
Final exam1
|
25%
|
Written exam (online).
|
1 : To pass the course, you must earn at least 50% of the total of midterm tests and final.
Letter Grade Breakdown
Grade
|
Grade Point
|
Per Cent Range
|
Description
|
A+
|
9
|
90-100
|
Exceptional
|
A
|
8
|
80-89.99
|
Excellent
|
B+
|
7
|
75-79.99
|
Very Good
|
B
|
6
|
70-74.99
|
Good
|
C+
|
5
|
65-69.99
|
Competent
|
C
|
4
|
60-64.99
|
Fairly Competent
|
D+
|
3
|
55-59.99
|
Passing
|
D
|
2
|
50-54.99
|
Marginally Passing
|
E
|
1
|
47-49.99
|
Marginally Failing
|
F
|
0
|
<45
|
Failing
|
Exam Dates
Tests
|
Date
|
Material Covered
|
Type
|
Prog Test 1
|
24 Feb (2hrs)
|
Materials up to and including Week 5
|
On line
|
Prog Test 2
|
31 Mar (2hrs)
|
Materials up to and including Week 9
|
On line
|
Midterm
|
11 Feb (2 hrs)
|
Materials up to and including Week 4
|
On line exam
|
Final
|
TBD
|
It is a comprehensive exam covering all the material taught in this course
|
On line exam
|
Other Important Dates
Assignment Type
|
When
|
Due date
|
Lab 0
|
13-Jan
|
-
|
Lab 1
|
20-Jan
|
31-Jan
|
Lab 2
|
27-Jan
|
7-Feb
|
Lab 3
|
3-Feb
|
14-Feb
|
Lab 4
|
10-Feb
|
21-Feb
|
Lab 5
|
3-Mar
|
14-Mar
|
Lab 6
|
17-Mar
|
28-Mar
|
Programming Test 1
|
24-Feb
|
24-Feb
|
Programming Test 2
|
31-Mar
|
31-Mar
|
Assignment 1
|
4-Mar
|
21-Mar
|
Assignment 2
|
25-Mar
|
11-April
|
Tentative schedule of course topics:
Week
|
Topic
|
|
#
|
Date
|
|
1 |
Jan 12,14
|
Course Introduction
Classes/Objects/Methods Review
|
|
Jan 13
|
Lab 0 (video series)
|
2 |
Jan 19,21
|
Class Basics
Introduction to RasterImage & Graphics2D
|
|
Jan 20
|
Lab 1
|
3 |
Jan 26,28
|
Exceptions & Exception Handling
|
|
Jan 27
|
Lab 2
|
4 |
Feb 2,4
|
Object Hierarchies
Inheritance & Polymorphism
|
|
Feb 3
|
Lab 3
|
5 |
Feb 9,11
|
Object Containers/Collections
|
|
Feb 10
Feb 11
|
Lab 4
MIDTERM
|
|
Feb 15-19
|
READING WEEK
|
6 |
Feb 23,25
|
User Interfaces
|
|
Feb 24
|
Programming Test 1
|
7 |
Mar 2,4
|
User Interfaces
|
|
Mar 3
Mar 4
|
Lab 5
Assignment 1 (posted)
|
8 |
Mar 9,11
|
Event Driven Programming
|
|
Mar 10
|
Lab 5
|
9 |
Mar 16,18
|
Event Driven Programming
|
|
Mar 17
|
Lab 6
|
10 |
Mar 23,25
|
Threads and Animation
|
|
Mar 24
Mar 25
|
Lab 6
Assignment 2 (posted)
|
11 |
Mar 30, Apr 1
|
Threads and Animation
|
|
Mar 31
|
Programming Test 2
|
12 |
Apr 6, 8
|
Course Review
|
|
Apr 14-28
|
FINAL EXAM (TBD)
|
Course Policies
Collaboration:
You may work with any number of peers on your lab exercises (labs) because they are designed to help you learn the material. Since the collaboration with peers will boost your learning, it is allowed that you discuss your solution with others however you are required to submit your work individually. Copying and submitting your friends’ solution is not accepted.
The two assignments, which are a more open ended version programming project, will be done in small groups (of 2-3 students). Please be aware that we use a plagiarism detection tool on your submissions to make sure academic integrity is preserved.
Late Submission:
Every one of you have 2 tokens of grace with me that you can spend it for the late submission of labs or assignments. In case you cannot submit on time, perhaps due to illness or family emergency, you need to email me prior to the deadline. In this case, I will let you submit 24 hours after the deadline for the price of one token of grace. No late submission is accepted after you spent all tokens of grace. The extension is 24 hrs only, no longer.
Please note that the tokens of the grace do not work for other assessments (programming tests/midterm or final exam)
In rare situation, I may accept a late submission for the assignments (e.g. an illness that can be confirmed by the department by filling out the related forms) up to 48 hours. In this case, you should contact me prior to the deadline so we can discuss a new deadline. My suggestion is to start the assignments as soon as they are uploaded, so you don’t need to go the hassle of paper works to get an extension.
Submission:
You will be informed how to submit your wok in the description of the labs, assignments & tests.
Missed Midterm:
If you miss the midterm test due to any reason such as medical or family emergency, I will replace it with your final mark.
Lecture Materials
Lecture Materials including videos, weekly assignments and two major assignments will be available via eClass.
Accessibility
Students with diverse learning styles and needs are welcome in this course. In particular, if you have a disability/health consideration that may require accommodations, please feel free to approach me by email or disability service at https://accessibilityhub.info.yorku.ca/ or https://accessibility.students.yorku.ca/ as soon as possible.
Academic Integrity
At York university, we care about academic integrity. Any kinds of cheating, plagiarism and so on will not be tolerated. Please read the Lassonde School of Engineering’s description of academic honesty and integrity and policies in https://lassonde.yorku.ca/academic-integrity.
Student Conduct and Responsibilities
Please read http://calendars.registrar.yorku.ca/2012-2013/policies/student_conduct/index.htm for your academic and non-academic responsibilities and conduct.
Intellectual property notice
“These course materials are designed for use as part of the EECS2030 course at York University and are the intellectual property of the instructor unless otherwise stated. Third party copyrighted materials (such as book chapters, journal articles, music, videos, etc.) have either been licensed for use in this course or fall under an exception or limitation in Canadian Copyright law.
Copying this material for distribution (e.g. uploading material to a commercial third-party website) may lead to a charge of misconduct under York’s Code of Student Rights and Responsibilities and the Senate Policy on Academic Honesty and/or legal consequences for violation of copyright law if copyright law has been violated.”
Religious Observance
Please see https://edu.yorku.ca/ed-faq/what-provisions-are-in-place-for-academic-or-religious-observance-accommodations/ for religious observance accommodation.
2021-01-19
Introduction to interactive systems, user interfaces, event-driven programming, object design and inheritance.