Skip to main content Skip to local navigation
Home » Category: 'programming'

programming

Spike Simulator for learning: C vs. Assembler

RISC-V processors, like ARM processors, are complex beasts, making them challenging to teach with. When teaching with them it's important to have appropriate development tools to reflect the immediate pedagogical goals but also to provide students with a pathway for further learning and application. When I teach courses on computer architecture, like EECS 2021 at […]

Trying out the M5Stack

My colleague, Eric Prandovszky, has been discussing the M5Stack system with me for a while and acquired a few modules to us to try out. Today I tried out the M5Stack Core 2 AWS module. My objective is to see if we can program it using the legacy Arduino 1.x IDE on macOS with Apple […]

VPL: A Java Unit Test Example

The following is an example of the files needed to create a working Virtual Programming Lab exercise for Java: vpl_run.sh vpl_evaluate.sh MainClass.java StudentSolution.java TeacherReferenceSolutions.java TheTestClass.java With this you can evaluate one student submission against a single reference solution. Two methods are run: one is the student's method and one is the teacher's method. The output […]

Automated Grading of Python in VPL using Unit Tests

A few of my colleagues here at YorkU have expressed an interest in using Python with Virtual Programming Lab on our Moodle-based eClass Learning Management System. I don't have a lot of Python experience, having only really used it for some data processing and toy embedded system demonstrations in the past. So I adapted the […]

Update to VPL for Java on EECS at YorkU

The VPL server in the YorkU EECS department was recently updated (2022/23). This had a small impact on existing VPL scripts. With Java, any script that uses JUnit needs to have its vpl_run.sh and vpl_evaluate.sh scripts updated. Here, I have the run script do the JUnit test directly. The evaluate script does JUnit through the […]

VPL & Java 17

In our first year programming class for engineering students, EECS 1021, we're using modern features like jShell and var. Unfortunately, the OS that our VPL instance sits on came with an older version of Java, so we've had to modify our scripts to point to the Java 17 JDK. If you get an error like […]

Firmata & Java

Firmata is a set of Arduino projects that are aimed at helping solve a particular class of problems with embedded devices: having a main computer send and receive data from an Arduino, typically in a simple control or data-logging application. This is similar to how people use the Arduino support for Matlab. In Java we […]

Lab Kit details for EECS 1011/1021

[Updated March 2024] EECS 1011 (and 1021) Lab Kit The EECS 1011 kit is available for purchase from the York University Bookstore. The link for all lab kits at the Bookstore is here. As soon as it is available your course instructor will let you know. While the official kit is designed to work for […]

VPL: Circuit Simulation Assignments with SPICE

Introduction In YorkU's EECS Department, we have access to NGSPICE on our department's Linux machines (via RemoteLab). NGSPICE is yet another variation on the venerable SPICE circuit simulator. Our the University's Moodle system, eClass, we have access to Virtual Programming Lab, a framework for making interactive exercises for students. It is typically used with programming […]

LPC802 & LPC804 Microcontroller lessons

These are copies of the lessons and labs that I developed for the LPC802 and LPC804 microcontrollers by NXP. These are the "student" versions and contain blanks in certain places on purpose. Course Outline (EECS 3215 Winter 2020) Introduction to the design of embedded systems using both hardware and software. Topics include microcontrollers; their architecture, […]