Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lect1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Course Title: Introduction to Programming in Engineering

Course Code: CPE201


November 8, 2022

1 Introduction
In this course, the engineering students are expected to know know what entails in
computer packages in engineering, they are expected to have understanding in:

(a) Discussion on Computer System

• Hardware Model (processor, buses, addresses)


• Software Development Ecosystem

(b) Brief discussion on:

• Language processors: Assembler, Interpreter, compiler


• Lower-Level language and High Level language
• Procedural programming, Declarative programming, Object-Oriented
programming and Functional programming
• Algorithms and Pseudocodes

(c) Engineering students are to write programming language in the latest C/C++ and
Rust:

• Introduction to C++ & Rust programming, Control statements, Functions


• Arrays, Pointers, Strings and Files
• Object-Oriented Programming in C++
• Memory Management in C++/Rust
• Applications of C++/Rust

2 What is System Level Programming


It is the process of developing a computer programs that enables the the hardware to
interface with other softwares and the users.

1
2.1 C++
C++ programming language was developed in 1980 by Bjarne Stroustrup at bell
laboratories of AT&T (American Telephone & Telegraph), located in U.S.A. It
improved the conception of the C language, becoming a so-called “C with Classes”,
which was a kind of revolutionary solution several decades ago. C++ was designed as a
really powerful system programming instrument: literally, the majority of the Microsoft
products were developed using different editions of Visual C++ (or simply C++),
including the “epic” software packages, such as Windows 95, 98, ME, 200 and XP.

There are many C++ compilers available which you can use to compile and run above
mentioned program:
Apple C++. Xcode, Bloodshed Dev-C++, Clang C++, Cygwin (GNU C++), Mentor
Graphics, MINGW - ”Minimalist GNU for Windows”, GNU CC source, IBM C++,
Intel C++, Microsoft Visual C++, Oracle C++ HP C++, Turbo C++

2.2 Rust
Rust is a system-level programming language, developed by Mozilla in 2010, which is
aimed at achieving higher performance and better safety levels in comparison to C++.
Specifically, it’s designed to cope with certain issues that C++ has been never good
with, such as memory-related inefficiencies and concurrent programming. In terms of
syntax, Rust is pretty close to C++, but it appeared to be more “loveable” (in fact, it
was named the “most loved language” for five years in a row) meaning it’s more
convenient and versatile than others, so a great number of developers has employed it
for their projects instead of C++.

2.3 Why C++ or Rust


C++ and Rust, both system-level programming languages that have achieved a much
higher demand in the market over time. C++ is an object-oriented programming
language whereas Rust is a versatile/general-purpose language offering memory safety.
Where C++ works, Rust should work.

2.4 What can you build with C++/Rust


Student learning C++ or Rust will have the following benefits in their future careers:

1. Command-Line Applications: you can build any CLI to connect to services,


perform heavy task on the command line.

2
2. Networking Application: you can have a well predictable performance with
these tools. Infact knowing either of this tools will help you how system
communication works.

3. Web-Assembly Application: you can use Rust to supercharge your JavaScript,


one module at a time. Publish to npm, bundle with webpack. You can also
achieve that with C++.

4. Embedded Applications: C, Rust & C++ enables you to target low devices.
You can control any hardware devices depending on how knowledgeable you are.

5. IoT Applications: Rust and C++ languages are very important in IoT
development, they are both used in the direct connection with hardware
configuration, speed of performance, and low-level access to memory and
controllers matter the most.

(i) Increase the chances of having high power jobs: an engineering students
who works towards an adequate C++ or Rust knowledge may will expose his/her
self to above-average job opportunities

(ii) Multiple career choices: students with C++/Rust experience have a much
higher chance of becoming an embedded software developer in plenty of industries,
including automotive, aerospace, IT, energy—and, of course, electronics.

(iii) It improves productivity: students with the knowledge of C++/Rust


programming language enables such an engineers to drastically achieve quick
solutions to tedious tasks

Recommended Textbooks

• C++20 for Programmers (P. Deitel, H. Deitel) (z-lib.org)

• Introduction to Programming with C++ for Engineers (Boguslaw Cyganek)


(z-lib.org)

Please Note: releasing this material out for you is not the main
important things for not coming to class. Is from the class we
discuss the main problems behind them, even with examples.

You might also like