Although full LaTeX may be important when writing an involved scientific report, the compromise of Markdown with LaTeX equations will be sufficient for this class. Since JupyterLab can serve as a stepping stone for LaTeX, I think it is reasonable to learn JupyterLab first.

While it is possible to create a project report using LaTeX or even Microsoft Word, since you will be working in groups it is important everyone in the group agrees to this and is fully able to participate. For simplicity my recommendation is to use JupyterLab. I will be using it in class, able to answer questions and people will be familiar with it.

There is less of a problem using Microsoft Word, LaTeX or any other software on homework as long as the final result can be uploaded as a pdf file. However, for questions involving a pencil-and-paper calculation, I would prefer that people turn in pdf scans of their pencil-and-paper work, unless a special disability makes this difficult.

Julia was designed as a replacement for MATLAB. There is a symbolic toolbox add-on for MATLAB based off of the MuPAD computer algebra system designed at the University of Paderborn that includes many features of Maple; however, the most common use of MATLAB is for numeric computations.

Maple can be accessed on campus in the Math Center, in the ECC Lab and rented by students for a semester to use at home for about $25. Maple is not available through the UNR remote desktop. However, a different computer algebra system called Mathematica is available. When I need a CAS in this course I will use Mathematica.

Mathematica also comes free with a Raspberry Pi, which is a $35 computer designed to teach computer science throughout the primary and secondary schools in the UK. It is also useful for certain university courses. For example, you may already have a Raspberry Pi if you took or are taking CS219 Computer Architecture. While not suitable for Zoom-based distance learning, in addition to Mathematica the Raspberry Pi can also be used to run Julia, JupyterLab and do all the homework for this class.

- Julia is a domain specific language designed to replace MATLAB for
performing numeric computation with a convenient notation for dealing
with vectors. It features a just-in-time compiler that creates an
easy-to-use interactive environment while at the same time resulting
in much faster performance than MATLAB.
- Python is a general purpose language designed to replace BASIC for teaching computer programming that has become popular for many other things. It can be much slower than Julia being an interpreted language, but Python could work for the programming done in this course. My lectures will focus on Julia, but I am okay grading homework and programming projects that were done in Python.

At this point Julia is faster, easier to understand, feature complete and one of the three main software components behind JupyterLab. It is also free. In my opinion it is likely Julia will be increasingly used for engineering, science and mathematics in the future. Therefore, even if you already know MATLAB, I think it is worthwhile to learn Julia.

While it is possible to use MATLAB for this course, as with Python, it is
important when working in a group that everyone agrees. Since I will be
teaching the course using Julia and because anyone who already knows
MATLAB should find Julia easy to learn, my recommendation is to use Julia.

Last Updated: Fri Sep 4 13:25:54 PDT 2020