EECS 1021 3.0
Object Oriented Programming from Sensors to Actuators
Summer 2021

Department of Electrical Engineering & Computer Science,
York University

The course materials for EECS 1021 will be posted on the York eClass website

Course Description

This course "introduces student to computational thinking - a process-based approach to problem solving. It uses a problem-based pedagogy to expose the underlying concepts and an experiential laboratory to implement them. The programming language is chosen so that it is widely used in a variety of applications, is object-oriented, and is of industrial strength (Java is an example of such a language). The problems are chosen in order to expose abstract programming concepts by immersing them in relevant and engaging applications. The experiential laboratory is based on sensors and actuators that connect to a computer. The problems are chosen with consultation with the various engineering disciplines in the Faculty with a view of exposing how computing is used in these disciplines. The course format is two lecture hours per week and three lab hours per week.

Prerequisites: LE/EECS1011 3.00.
Course credit exclusions: LE/EECS 1022 3.00. Previously offered as: LE/EECS1020 3.00, LE/CSE 1020 3.00.


Dr. Mufleh Al-Shatnawi
Email: mufleh "at"

Learning Outcomes

By the end of the course, the students will be able to:

  1. Demonstrate the ability to test and debug a given program and reason about its correctness.
  2. Given a problem specification and a suitable API, build an application that meets the given requirement.
  3. Use ready-made collections to solve problems involving aggregations of typed data.
  4. Build an event-driven application that controls sensors and actuators in order to connect events to physical actions.
  5. Program common applications from a variety of engineering disciplines using an object oriented language and solve them on the computer.

Online Lectures

Every Tuesday and Thursday from 13:30 to 14:30. Visit York eClass website

The first lecture will be onTuesday, May 11, 2021. All course lectures will be online see the course page on eClass for the Zoom meeting ID information.



EECS Remote Lab

The EECS Remote Lab service allows you to connect to EECS lab workstations from within your web browser. The workstation's desktop is displayed within the browser window and you can run any software available on the workstation as if you were there.

If you don't already have one, you will need to generate an EECS account before using remotelab by visiting: It takes about 40 minutes for the EECS account to get created, and then you can login to remotelab. You must be enrolled in EECS 1021 for this to work (if you just enrolled in the course, it will take one day for the enrollment data to be uploaded to EECS systems).

Once you have an EECS account, you can use the remotelab service. Go to, login, and select Linux Remote Desktop (EDU), and then any of the WSC workstations listed. You will be logged in as "user" and can work as if in the lab.

This uses Apache Guacamole; see this link for documentation. To cut-and-paste between your desktop and the remote desktop, open the Guacamole menu by pressing Ctrl+Alt+Shift and paste into the clipboard there.

Notice on the Platforms Used

Several platforms will be used in this course (e.g., eClass, Zoom, Echo360, etc.) through which students will interact with the course materials, the course director / TA, as well as with one another.

Students shall note the following:

Technology requirements and FAQs for eClass can be found here .