  For several decades, the CPU has been the standard model to use in the
majority of computing. While the CPU does excel in some areas, heterogeneous
computing, such as reconfigurable hardware, is showing increasing potential in
areas like parallelization, performance, and power usage. This is especially
prominent in problems favoring deep pipelining or tight latency requirements.
However, due to the nature of these problems, they can be hard to program, at
least for software developers. Synchronous Message Exchange (SME) is a runtime
environment that allows development, testing and verification of hardware
designs for FPGA devices in C#, with access to modern debugging and code
features. The goal is to create a framework for software developers to easily
implement systems for FPGA devices without having to obtain heavy hardware
programming knowledge. This article presents a short introduction to the SME
model as well as new updates to SME. Lastly, a selection of student projects
and examples will be presented in order to show how it is possible to create
quite complex structures in SME, even by students with no hardware experience.
