C in a linux environment for mechanical engineers (algorithms).

A mechanical engineer, an electrical engineer and a computer scientist are in a car and the car won't start.
The mechanical engineer says, "Let's check the pistons and valves."
The electrical engineer says, "Let's check the alternator."
The computer scientist says, "Let's just get out and get back in.

This will be a class in C programming in a Linux environment. However, the class is designed for mechanical engineers. We will avoid complicated graphical interfaces and focus on the coding and compiling at the Linux command line level.

Before we discuss the content, let me first categorize, for I believe it is useful to see the various languages in context with each other. Warning: all cateogrizations ultimately fail. However, I have an OCD issue like this guy (Funes the Memorious) that compels me to do this anyway.

First Generation (1GL): Machine Language

Explanation:

Example:

10110000 01100001

Second Generation (2GL): Assembly Language

Explanation:

Example:

MOV AL, 61h

Third Generation (3GL): High-Level Language

Explanation:

Examples:

C: printf("Hello, World!");
Java: System.out.println("Hello, World!");
Python: print("Hello, World!");

Fourth Generation (4GL): Very High-Level Language

Explanation:

Examples:

SQL: SELECT * FROM users WHERE age > 30;
MATLAB: plot(x, y);
SAS: PROC MEANS DATA=dataset; VAR variable; RUN;

C is most useful for mechanical engineers since it is procedure oriented (algorithm oriented, e.g.: the finite element method).

C's original power was in communicating with the operating system. Thus, it has powerful text manipulation tools. Most books in C focus on that, first and this is difficult for mechanical engineers.

Thus, in this class, we focus on the numerical algorithm (focus on: Gauss reduction, Quadrature, Matrix inversion Newton-Raphson) over text manipulation.

At this time, I load the entire content of a class I last taught 12 years ago. Eventually, I will go back and clean this up and voice the PPT. For now, you can just download as the buttons turn green.

LET ME EMPHASIZE (AS YOU CAN SEE FROM THE CAPS) THAT I HAVE NOT LOOKED AT THESE MODULES IN 12 YEARS. I WILL REVIEW THEM IN 2025. SOME STUDENTS HAVE TOLD ME THEY RECENTLY TAUGHT THEMSELVES FROM THESE, SO I PUT THEM UP NOW.

Each button click will download a zip file that containts:


Finally, I am sorry to say that this content does not discuss structures, typedef, pointers to structures, double pointers, or pointers to structures that contain pointers and so on. For that, it is best to see the FE code.


Interpretation of the download buttons as content is loaded all summer (anticipated date: 2025)
Fully loaded
Partially loaded
Nothing loaded