Educational Resources

Projects

I’ve employed several real-world examples into my projects to build connections for the students and power their curiosity and motivation. Below are projects from various courses. I strongly encourage you to use them or modify them for your own classes!

Numerical Methods

Coding

The two most common coding languages you will see as an engineer are Python and MATLAB, unless you are a computer engineering in which case you’ll see mostly C++ and Java. During your education, you may only be exposed to one language, but that does not restrict you from learning other languages. In your coding classes, you are not just learning the syntax but coding practices and algorithms that are translatable to other languages. An if statement in MATLAB will perform the exact same function as an if statement in Python, you just need to Google the syntax. As an engineer, don’t restrict yourself to a single language. You can probably perform every task you want in a single language, but is it the easiest or best way? For instance, if you wish to perform a statistical analysis on your data, it can be done in Python or MATLAB, but R has been designed specifically for statistical computing and has features that will make your statistical analysis easier. If you want to program on a web page, look into JavaScript!

Never stop learning.

Never stop evolving.

Learn a new language, a new syntax, and add that programming language to your repertoire (and your resume). Search Google when you get stuck, go to W3 Schools for tutorials and syntax examples, check out Stack Overflow for questions and answers to your coding problems! (No, really, check out Stack Overflow. I have about 5 tabs open to that site at any given time, all redirected from my Google search.)

But a question many might have is, “How do I motivate myself to learn a new language?” The easiest way is to pick a project that interests you, and just try it! Curious about how to parse csv files? Try it! Want to see if you can program an interactive quadratic formula? Try it! Don’t be afraid to try new things. There are also tons of coding problems people list online for coders to try their hands at to gain proficiency.

Python

Python is a high-level programming language, sometimes called a scripting language, which focuses on readability. Some of the challenges for new Python programmers is its use of tabs instead of {} to signify if or for sections and it’s use of and versus &. Python is also very versitile with it’s wide range of packages! These new packages can be installed easily using pip. One of the hangups new Python programs have when coming from MATLAB is to use arrays in Python, you need to use a package such as NumPy.

Download Python here! You can also setup an IDE specifically for Python such as PyCharm, or just call Python through the terminal!

Tutorial Resources: Reddit has a great list of resources. My favorite tutorial is Automate the Boring Stuff with Python where the author also has a course on Udemy that he will post free codes occasionally on Reddit. W3 Schools also has a solid self-guided tutorial.

MATrix LABoratory (MATLAB)

MATLAB is a high-level programming language, sometimes called a scripting language, which focuses on matrices. This is not to be confused with Simulink, which is usually integrated into MATLAB. Some of the challenges new MATLAB programmers will encounter is the cost of MATLAB post graduation. Octave is similar and free, but lacks the features of MATLAB. MATLAB’s functionality can also be expanded upon using add-on toolboxes.

MATLAB usually needs to be downloaded from your school or company such that the license information is integrated easily. MATLAB is both the coding language and IDE, though, you can use things such as Visual Studio Code to run MATLAB code. Though, you still must have a valid MATLAB license to run your .m files.

Tutorial Resources: MathWorks has a wide range of tutorials for users. You can always practice MATLAB through the MATLAB Cody challenges. There are also some good resources on the MATLAB Reddit sidebar.

Interactive Development Environments (IDE) versus Text Editors

An IDE is a development environment which combines developer tools into a single software application. They generally contain a project explorer and code editors at a bare minimum. If you want as many features as possible, the best IDE (generally) for you to use is an IDE for your specific programming language. They usually include functionality (such as debugging and package management) specifically for that programming language. However, if you code in multiple languages, you generally don’t want to keep bouncing around from IDE to IDE. Instead, you want a text editor that can function as an IDE.

Notepad++ is just a text editor, but it’s light-weight (opens quickly) and is an easy way to throw open a code file and perform some quick edits.

Sublime and Atom are both more advanced text editors with Sublime being more light-weight than Atom whereas Atom is more feature-rich. These are solid text-editors that can be turned into an IDE with the correct add-ons.

Visual Studio Code is a text editor that is the most feature rich and also, as of early 2021, holds the most market share, and it does so for a reason. It has plenty of extensions to turn it into an IDE for any language, and worst case senario you just execute your code using the integrated terminal.

I’ve used all of the above text-editors in my own work, and my recommendations is to have Notepad++ installed for quick file editing and Visual Studio Code as your primary text editor / IDE.