Experiential Learning Workshop Series
The Jeffrey S. Boyce Engineering Innovation and Design Studio is offering a series of workshops as extra-curricular activities to provide students with the opportunity to participate in experiential learning - learning by doing.
The goals are:
- to assist them in expanding their knowledge and further developing their technical and professional skills using industry-standard tools,
- to enable students to reflect on their learning, master new concepts and skills,
- to encourage students to apply the concepts they learn to practical contexts,
- to help students build their portfolios with competencies that employers look for, using self-guided projects.
The current workshop series may run as virtual or in-person content delivery. While the workshops are designed to be self-contained, it is assumed that students have some programming knowledge equivalent to ENGR1200 - Introduction to Programming for Engineers.
Depending on the topic, some workshops will run four to five 2-hour sessions (Monday to Friday, 2 hours per day), and others will be run for one 2-hour session or two 2-hour sessions. All workshops will be delivered by people with significant experience in the topic.
We ask that you please attend all of the sessions that you register for, as registration is limited.
PREVIOUS WORKSHOPS
Winter 2023 Workshops
-
Developing HTTP-based APIs
Feb 15 | 5 - 7 pm
Facilitators: Michael Lescisin and Thayan Sivathevan
This tutorial explores creating HTTP-based Application Programmer Interfaces (APIs) to make computational services available on a network. Students will learn about software-as-a-service (SaaS) using the API exchange as a gateway, how to develop applications using cloud-based APIs, and how to develop new APIs to be used by others.
Register for the workshop: https://forms.gle/VNeKWWcBrxeWt97c8
Spring/ Summer 2022 Workshops
-
React Web Application for Sleep Tracking
React Web Application for Sleep Tracking
June 23 | 2 - 4 p.m.
Facilitator: Soham Bhavsar
In this workshop, students will learn how to develop a web application using react to allow users to track their sleep per day and create a report of their weekly sleep cycles. The application will feature a login/signup for users to track their data.
-
JavaScript Word Guessing Game
JavaScript Word Guessing Game
July 5 | 2 - 5 p.m.
Facilitator: Soham Bhavsar
In this workshop, students will learn how to design and develop a web browser-based game with basic HTML, CSS, JavaScript and NPM that allows users to guess the randomly generated word from a JSON list.
-
Object Size Detection using OpenCV
Object Size Detection using OpenCV
July 14 | 2 - 4 p.m.
Facilitator: Soham Bhavsar
In this workshop, students will learn how to develop an application using Python, OpenCV and ArUco to detect dimensions of objects in real time.
-
Self-Driving Car Simulator using JavaScript
Self-Driving Car Simulator using JavaScript
July 28 | 2 - 5 p.m.
Facilitator: Soham Bhavsar
In this workshop, students will learn about building a simulation application using JavaScript and neural networks to showcase a moving car in a simulated environment to avoid collisions with other vehicles.
-
Developing and Consuming APIs
Developing and Consuming APIs
August 4 | 5 - 8 p.m.
Facilitators: Thayan Sivathevan and Soham Bhavsar
In this workshop, students will learn about software-as-a-service (SaaS) using the API exchange as a gateway. Students will learn how to develop applications using cloud-based APIs, and how to develop new APIs to be used by others.
Winter 2022 Workshops
-
Developing a React Web App with RIOT API
Developing a React Web App with RIOT API
March 24 | 11:30 am - 1 pm and March 25 | 4 pm - 5:30pm
Facilitator: Thayan Sivathevan and Soham Bhavsar
In this workshop, we will show how to develop a full-stack web application on the React platform with an Express.js backend, incorporate the Riot Games public API to allow users to fetch stats of players, and deploy the app on Heroku.
-
Beginners Workshop for Arduino: Day 1
Beginners Workshop for Arduino: Day 1
March 23 | 2 pm - 4 pm
Facilitator: Nan-Rong Hui
This workshop will cover the basics of the Arduino and how to use it efficiently. Basic components, circuit theory and design and how to use it parallel to the arduino will be covered. It is a general introduction and will also help form the foundation of arduino circuit design.
-
Getting Started with Raspberry Pi
Getting Started with Raspberry Pi
March 22 | 11 am - 2 pm
Facilitator: Abhay Kaushik
This workshop is an introduction to the Raspberry Pi and its IOT capabilities. The workshop introduces attendants to the hardware and software used by the Raspberry Pi and teaches attendants how the Raspberry Pi can be used with various physical sensors. The workshop will also cover basics of coding Raspberry Pis to achieve the user's desired functionality.
-
Using Riot Api to create an AI model to predict the results of a LOL game
Using Riot Api to create an AI model to predict the results of a LOL game
February 17 | 5:00pm - 8:00pm
Facilitator: Thayan Sivathevan
In this workshop, we will use the riot api to gather data and use it to train a simple neural network model to predict who win a league of legends game. Software seeded: Python, Anaconda, Numpy, TensorFlow, Pandas.
-
Developing and Publishing a Discord NodeJS Bot
Developing and Publishing a Discord NodeJS Bot
February 18 | 11:30am - 2:00pm
Facilitator: Soham Bhavsar
With Discord becoming more popular amongst students, groups, and courses, we are going to be creating and deploying a Discord bot using Node.Js. This workshop will cover project setup, how to initiate the bot into a discord server, basic and more in-depth functionality, and how to deploy the bot to a platform such as Heroku.
Fall 2021 Workshops
-
Preparing for the Certified SOLIDWORKS Associate Exam
Preparing for the Certified SOLIDWORKS Associate Exam
October 18 - 22 | 12:00pm - 2:00pm
Facilitator: Mihir Mistry
SOLIDWORKS is a universally recognized CAD software used by many professionals in a variety of engineering fields. The software allows you to create complex models in 3D space and perform various analyses. This workshop series is intended to prepare students to complete the CSWA exam. This certification will be very beneficial for students looking for jobs or co-op opportunities.
The workshops will go through all the steps required to successfully complete the exam. This means understanding how to make well defined sketches and relations, using global variables and creating assemblies with standard mates.
Day 1: Basic Part Modelling and Fully Defined Sketches
This workshop will begin by discussing the CSWA exam and what you should be expecting in attempting the exam. The primary focus will be on creating fully defined sketches, maximizing the extrude feature, global variables, setting units and precision as well as material selection.
Day 2: Intermediate Part Modelling
The next section of the exam typically covers an intermediate part creation section that requires making use of a revolve feature. We will focus on understanding this feature as well as completing some sample part files.
Day 3: Advanced Part Modelling
The final modelling section of the exam will include a complex geometry to create. This will focus on combining everything covered so far. We will run through sample parts to gain familiarity and develop a good pace to complete the content in time.
Day 4: Assemblies using Standard Mates
This workshop will focus on understanding how to use standard mates as well as the importance of using a given origin point in an assembly. This will be supplemented by completing an assembly using these mates and performing a moment of inertia / centre of mass calculations.
Day 5: Sample CSWA Exam
The final workshop session will be a run through of a sample CSWA exam. This will be a comprehensive review of the content and give you an idea of what to expect when attempting the exam.
-
Getting Started with Arduino
Getting Started with Arduino
October 25 - 29 | 12:00pm - 2:00pm
Facilitator: Mihir Mistry
Arduino is a cost effective open source microcontroller platform designed to be easy to use for new electronics users. There are nearly unlimited options for inputs and outputs which include: sensors, indicators, displays, motors and many more. The Arduino platform provides a simple to use IDE to easily program these applications. This is an ideal tool for those looking to get into electronics.
This workshop series aims to understand how the electronic components work and how to integrate them into your projects. The series starts off with an overview of the Arduino system and the programming environment (Arduino IDE). Then quickly transitions into covering the various electronic components and concepts. Throughout the series, small hands-on projects and programming sessions will provide you with a fundamental understanding in order to create your own electronics projects. This workshop requires students to have their own Arduino kit.
Day 1: Introduction to Arduino
The first workshop will introduce you to the Arduino and Arduino IDE. This will include initial setup, programming the Arduino microcontroller, as well as some basic circuit theory. This workshop is intended for those with no previous experience and will be starting from basics.
Day 2: Controlling Digital I/O with Arduino
Digital I/O devices are the most common electronics components used with Arduino. This workshop will cover how digital components work, as well as how to interface and program the variety of digital I/O. This includes interfacing with LEDs, push buttons and an active buzzer.
Day 3: Controlling Analog I/O with Arduino
Analog I/O devices are also used with Arduino but benefit from using different electronic signals. This workshop will cover how analog components work, as well as how to interface and program the variety of analog I/O. This includes interfacing and calibrating potentiometers and joysticks.
Day 4: Advanced I/O with Arduino
There are a variety of additional electronic components that allow for real world applications and interaction. This workshop will focus on how to control these systems which include servo motors, stepper motors and LCDs. Concluding by creating an Arduino circuit that will use Analog and Digital I/O together.
Day 5: Utilizing I/O Data with Arduino
To complete the Arduino workshop series, we will focus on sensors. Sensors are used in a variety of applications and require understanding the fundamentals. This workshop will cover Digital sensors, Analog sensors, and using the Serial Monitor. As well as how to utilize sensor data for logging or to perform an action with other components.
-
Introduction to Rapid Prototyping with 3D Printing
Introduction to Rapid Prototyping with 3D Printing
November 1 - 3 | 12:00pm - 2:00pm
Facilitator: Mihir Mistry
Day 1:Introduction to 3D Prototyping (Limitations and Ideation Process)
This workshop series will start off with discussing what 3D Printers are and how we can use them in rapid prototyping development. We will focus on the limitations of the technology and where we can use it to bring our ideas to life. This will culminate in introducing tips to use when prototyping allowing you to develop a cohesive prototype plan.
Day 2: CAD Modelling for Additive Manufacturing
This next workshop session will focus on taking the prototyping idea into the 3D workspace. We will work together to create a CAD model that will interface with real world equipment. Giving you a fundamental understanding of tolerances and design for additive manufacturing (DFAM).
Day 3: Controlling Analog I/O with Arduino
To complete the session we will walk through how to prepare your file for 3D printing as well as optimise your printing time and quality based on the desired application. We will discuss post-processing techniques and other methods that can be used to enhance your prototypes. Once this workshop is completed you can schedule a time to print your prototype using one of the many 3D printers available to students.
-
Introduction to Artificial Intelligence & Machine Learning
Introduction to Artificial Intelligence & Machine Learninginting
November 3 - 4 | 6:00pm - 8:00pm
Facilitator: Nicholas Varas
These workshops are designed to give students insights into the world of Artificial Intelligence and Machine Learning. No prior knowledge or understanding is needed. Topics covered include: What is A.I? History of AI, Machine Learning vs. Deep Learning vs AI, How does AI learn, Ethics of AI, How Industry uses AI, and the Future of AI.
-
Introduction to Electronics Prototyping
Introduction to Electronics Prototyping
November 4 - 5 | 12:00pm - 2:00pm
Facilitator: Mihir Mistry
Day 1: Basic Circuit Theory and Breadboard Prototyping
The focus of this first workshop is going to be reviewing some basic circuit theory that will allow us to prototype a working circuit. This circuit will be a simple alternating LED circuit that does not require a microcontroller. Once the circuit is sketched and understood we will create a breadboard version of the circuit. We will end the session by making use of the electronics workbench to test and troubleshoot any issues with the prototyped circuit.
Day 2: Soldering and Creating a Perfboard/PCB Prototype
Using the tested circuit we will now look into what it takes to create a perfboard circuit. This will require going over the fundamentals of THT (Through Hole) Soldering. We will then solder the components together in order to then have a usable circuit. We will end the session once again by making use of the electronics workbench to test and troubleshoot any issues with the prototyped circuit.
-
Getting Started with Raspberry Pi and IOT
Getting Started with Raspberry Pi and IOT
November 8 - 12 | 12:00pm - 2:00pm
Facilitator: Mihir Mistry
The Raspberry Pi is a small, low-energy and powerful computing device that can be used in a variety of applications. Some use it for entertainment, home automation or a variety of other IOT based projects. The strong processing power allows for an operating system (OS) to run cleanly on the system, the GPIO pins allow for interaction with a variety of electronic components and the Wi-Fi capabilities allow for IOT projects to easily come to life.
This workshop series will focus on covering the fundamentals of using the Raspberry Pi which includes understanding what the Raspberry Pi is and how it can be used, programming in order to control GPIO, scripting in order to control the OS, creating a GUI application and finally utilizing all these skills to create an IOT device. This workshop requires students to have their own Raspberry Pi kit.
Watch session recording.Day 1: Introduction to Raspberry Pi
This introductory workshop will focus on understanding how the Raspberry Pi works. Loading the Raspbian operating system and getting the Pi setup for use with and without a monitor. This workshop is intended for those with no prior experience.
Day 2: Controlling Real World Hardware (GPIO) with Raspberry Pi
Using the fundamental understanding of operating the Raspberry Pi, this workshop will focus on how to control real world electronics by interacting with the GPIO (General Purpose Input/Output) Pins. Programming and troubleshooting circuits with a Raspberry Pi will allow you to expand the use of this device beyond a simple computer.
Day 3: Shell Scripting to Automate the Raspberry Pi
This workshop will focus on expanding the use of the Raspberry Pi as a powerful microcontroller, by integrating the use of a GUI in order to control electronics through the GPIO pins. GUI (Graphical User Interface) adds another level of complexity to your personal projects while also adding increased convenience in its operation.
Day 4: Creating your own GUI for Raspberry Pi
This workshop for Raspberry Pi will focus on IOT (Internet of Things) integration using NodeRED. This microcontroller is Wi-Fi capable, meaning we can integrate the use of IFTTT (If This Then That) services and NodeRED which allow apps and even voice commands to trigger events. The end goal of this workshop will be to create a simple IOT circuit that will allow us to control GPIO pins over WiFi.
Day 5: Using APIs with the Raspberry Pi
The final workshop session will introduce students to making use of APIs and using this information/data to control a circuit. This eliminates the need for physical sensors. We will discuss and walkthrough projects that can use this technology including: Home Automation, Weather Stations, etc.
-
Developing and Managing Cloud Service APIs
Developing and Managing Cloud Service APIs
Thursday, November 11 | 5:30pm – 7:30pm
Facilitator: Michael Lescisin
The Cloud Computing paradigm refers to moving any computational services that are traditionally provided at the local level to further-away parts of the network. These services may be developed and hosted on-premises by a single organization, or they may be developed, hosted, and made available by a third-party. In this tutorial, we explore creating HTTP based Application Programmer Interfaces (APIs) to make computational services available on a network, and highlight the security issues that need to be addressed when doing so. Finally, as is required in the case where Cloud services are provided by a third-party, we explore using our own API management software to provide the necessary accounting for the third-party services used by a client.
-
Creating a Brower-based Multiplayer Game using Socket.io
Creating a Brower-based Multiplayer Game using Socket.io
Tuesday, November 16 | 5:00pm – 8:00pm
Facilitator: Thayan Sivathevan
Using Nodejs, we will be creating an online web browser multiplayer connect 4 game. This game will combine using HTML, CSS, images and Nodejs web server.
Spring/Summer 2021Â
Week-Long Workshops
-
Getting Started with Cross-Platform Development using Flutter
Getting Started with Cross-Platform Development using Flutter
May 31 - June 4 | 3:00pm - 5:00pm
Facilitator: Mohamed Ibrahim
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase (https://flutter.dev/). In this workshop, we will dive into Flutter development by building applications from scratch. We will cover building great user interfaces, app navigation, persistent storage, network requests (API calls), managing state, integration with Firebase, and all the concepts you need to start bringing your ideas to life. We will focus on mobile development but everything we learn will be transferable to other platforms as well. Not sure what to expect? Check this Keynote to learn more about Flutter: https://www.youtube.com/watch?v=zSbsIiluixw
Day 1: Introduction to Flutter
- Creating a new project
- Running your app
- Hot Reload and Hot Restart
- Widgets
- Stateful vs. Stateless Widgets
- MaterialApp, Scaffold, Container, Button, ListView, etc
- User interactions with Buttons, GestureDetector, and InkWell
- Adding app icon and splash screen
- Adding assets and third party dependencies
Day 2: Building Stateful Apps and Making API Calls
- Navigation
- Managing State
- Network requests (API calls)
- Parsing JSON data
- Handling user input
Day 3: Storing Data Locally
- Data persistence using SQLite database
Day 4: Firebase Integration
- Authentication with Firebase
- Working with firestore database
Day 5: Putting It All Together
- App build
-
Getting Started with Web Development using the MERN Stack
Getting Started with Web Development using the MERN Stack
June 7 - June 11 | 1:00pm - 3:00pm
Facilitator: Thayan Sivathevan
This workshop will show students new to web development or MERN (MongoDB, Express, React, and Node.js) how to develop a small full-stack web application. The students will learn how to use express to create routes and middleware to manage data. How to communicate with and create models for MongoDB and mongoose. How to work with React to create dynamic sites using CSS, components, routing, requests, and a few libraries. Most importantly, they will learn how to put it all together to create a full-stack site.
Day 1: What is MERN?
- Why is it different and more useful than basic HTML/CSS/javascript?
- Discuss the popularity, uses, and modularity of a React frontend.
- How to install MERN.
- Set up a NodeJS environment.
- Start working with MongoDB Atlas.
Day 2: Start Working with creating a backend
- How to use NodeJS and Express for creating a backend
- Creating routes and connecting to MongoDB
- Using postman to test the routes
- Discuss how to use middleware and why we need it.
Day3: Using React
- Start by creating a basic static website with React
- Discuss how React uses JSX to be more efficient
- Using React libraries and css to create a better site.
- Discuss how to react states and rendering work.
- How to route pages use React routing.
Day 4: More React
- How to send requests using React.
- Create a more dynamic site with React.
- Understand how to use and understand JSON.
- Debug errors and problems with console.log().
Day 5: Putting It All Together
- Combining everything to create a full-stack site.
- Ideas for projects
Click here to see workshop recording.
Two-Day Workshops
-
Jupyter Notebook and Data Visualization using Python
Jupyter Notebook and Data Visualization using Python
June 10 - June 11. | 5:30pm - 7:30pm
Facilitator: Michael Lescisin
In this workshop students would gain familiarity with the popular data science Python packages that are: Numpy, Scipy, Matplotlib, scikit-learn, and pandas by using them interactively in a Jupyter notebook. Using these tools, students will work through the processes of data gathering, data analysis, and data visualization. Specifically, students will gather data from publicly available data sources, analyze the data using supervised classification, unsupervised clustering, and mathematical regression. The data and its analysis will be visualized through Matplotlib by rendering visualizations such as scatter plots, time series graphs, and tree diagrams. The workshop will also discuss the idea of distance metrics and demonstrate Levenshtein distance as a means of measuring the similarity between strings of symbols. The workshop will conclude with a practical example of detecting various events from a set of raw data.
Click here to see workshop recording.
Single Day Workshops
-
GIT and GitHub
GIT and GitHub
June 4. | 3:30pm - 5:30pm
Facilitator: Michael Lescisin
In this workshop students will gain familiarity with the popular source code management tool, git. Students would start with a basic example of keeping track of changes to a living document locally with git and reverting changes using the reset and revert git commands. They would then proceed onto using branches locally where they would be able to switch between new features being developed. The students would then proceed onto using git in a group context where each developer can work on their own feature / task branch and then use code review tools such as GitHub Pull Requests for reviewing the code before it is integrated into the mainline branch. If time permits, the rebase and cherry-pick git commands would also be covered as they are often used when using git in a group project context.
-
Linux Internals
Linux Internals
June 3 | 5:30pm - 7:30pm
Facilitator: Michael Lescisin
In this workshop, students will gain familiarity with developing applications that integrate with modern Linux desktop, server, and embedded environments. The workshop would introduce the various UNIX Inter-process Communication (IPC), and process-to-kernel communication interfaces such as device files, named / anonymous pipes, and IP / UNIX Domain sockets. Socat will be used for debugging and exploring these interfaces as well as for demonstrating how to enable remote access to these services. The workshop will then proceed onto explaining how these interfaces are used practically in modern Linux desktops (DBus, PulseAudio, XServer). The workshop will conclude with the construction of a basic debugger/analyzer utility for a process as it communications with the rest of a Linux desktop.
-
Getting Started with Docker
Getting Started with Docker
June 17 | 5:30pm - 7:30pm
Facilitator: Michael Lescisin
In this workshop, students will gain familiarity with containers and then learn how to use and build docker containers including writing docker files. Students will build an application using the microservices architecture implemented using docker containers. As time permits, advanced topics related to scalability and security will be covered.
Click here to see workshop recording.
-
Developing SaaS applications - REST APIs and the API Marketplace
Developing SaaS applications - REST APIs and the API Marketplace
June 18| 5:30pm - 7:30pm
Facilitator: Michael Lescisin
In this workshop, students will gain familiarity with the idea of software-as-a-service (SaaS) and microservice architectures using API-Marketplace as a gateway. The workshop will demonstrate the creation of a REST API-based microservice and a web application that makes use of this microservice. The examples would likely use Node.js and Express.js for the creation of the REST API and the web service that uses the REST API. An example of a setup involving a microservice and a web application would be a microservice that provides a recommender service (for example, recommending a vacation destination based on a list of personal interests) and a web application that makes this recommendation data available (for example, a "Recommended For You" website sidebar).