Experiential Learning Workshop Series
The Jeffrey S. Boyce Engineering Innovation and Design Studio offers access to an archive of past workshop materials, free for students. These workshops aim to:
- Assist students to expand their knowledge and further develop their technical and professional skills using industry-standard tools.
- Enable students to reflect on their learning, master new concepts and skills,
- Encourage students to apply the concepts they learn to practical contexts,
- Help students build their portfolios with competencies that employers look for, using self-guided projects.
For announcements on new and upcoming workshops, keep an eye on our faculty socal media channels!
Software and App Development
-
React Web Application for Sleep Tracking
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
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.
-
Developing and Consuming APIs
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.
-
Developing a React Web App with Riot APi
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.
-
Developing and Publishing a Discord NodeJS Bot
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.
-
Creating a Browser-Based Multiplayer Game using Socket.io
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.
-
Getting Started with Cross-Platform Development using Flutter
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. 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
-
Developing SaaS applications - REST APIs and the API Marketplace
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).
AI Data and Analytics
-
Object Size Detection using OpenCV
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
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.
-
Using Riot API to Create an AI Model to Predict Game Results
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 will win a League of Legends game. Software needed: Python, Anaconda, Numpy, TensorFlow, Pandas.
-
Introduction to Artificial Intelligence and Machine Learning
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.
-
Jupyter Notebook and Data Visualization using Python
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.
3D Design and CAD
-
Preparing for the Certified SOLIDWORKS Associate Exam
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.
-
Introduction to Rapid Prototyping with 3D Printing
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 optimize 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.
Hardware and Electronics
-
Getting Started with Arduino
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 Electronics Prototyping
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.
Systems and Developer Tools
-
GIT and GitHub
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
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
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.