Skip to content

Introduction

Welcome to the lecture notes for ENGR 103: Engineering Computation and Algorithmic Thinking. This course is designed to introduce you to the fundamental concepts of programming and computational thinking using C++. Below is an overview of the topics we will cover throughout the course.

Programming has become an essential skill across all engineering disciplines:

  • Mechanical engineers use programming to simulate mechanical systems, analyze stress patterns in materials, and automate CAD processes that would be tedious to perform manually. When designing a new vehicle component, an engineer might write code to test how it responds to different forces before creating a physical prototype.
  • Environmental engineers apply programming to model ecosystem behaviors, analyze large climate datasets, and simulate pollution dispersion patterns. For example, code might be written to predict how contaminants move through groundwater based on soil properties and rainfall patterns.
  • Chemical engineers leverage programming to simulate reactions, optimize manufacturing processes, and analyze spectroscopic data. When designing a new pharmaceutical production line, programming helps engineers find the most efficient temperature and pressure conditions.
  • Electrical engineers use code to design circuits, process signals, and develop control systems. Programming microcontrollers enables engineers to create smart devices that respond to their environment in predetermined ways.
  • Nuclear engineers write programs to model radiation shielding, simulate reactor conditions, or analyze the decay patterns of radioactive materials. This allows testing of safety systems without exposure to actual radiation.
  • Architectural engineers apply programming to structural analysis, energy modeling, and parametric design. When designing a skyscraper, engineers might write code to calculate how wind forces affect the building at different heights.
  • Robotics engineers program movement paths, process sensor data, and create decision-making algorithms. Without programming, autonomous robots would simply be static mechanical parts.
  • Biomedical engineers use code to analyze medical imaging, model physiological systems, and process bioelectric signals from medical devices. A program might help identify patterns in brain activity data that correlate with specific neurological conditions.
  • And many others!

As you progress through this course, you’ll develop foundational programming skills that can be applied to these fields and many more. The ability to write code that solves engineering problems is increasingly valuable across all disciplines.

Lecture Topics

  • Development Environment: Learn how to set up and configure your development environment, including terminals and the ENGR servers.
  • Git: Understand the basics of version control using Git, including how to create and manage repositories.
  • C++ Basics: Get introduced to the basic syntax and structure of C++ programs.
  • Comments: Understand the importance of code documentation and how to write effective comments.
  • Expressions, Operators, and Variables: Explore how to write expressions, use operators, and declare variables in C++.
  • Constants: Learn about runtime and compile-time constants and their importance in programming.
  • Type Casting: Learn how to convert data from one type to another using type casting.
  • Shorthand Operators: Learn about shorthand operators and how they can simplify your code.
  • Functions: Learn how to define and use functions to organize and modularize your code.
  • Scope: Understand the concept of scope and how it affects variable accessibility and lifetime.
  • Booleans: Learn about boolean logic and how to use boolean values in your programs.
  • If Statements: Explore conditional logic and how to use if statements to control the flow of your program.
  • Loops: Understand repetition logic and how to use loops to perform repetitive tasks.
  • Characters: Understand the character data type and how to work with individual characters.
  • Strings: Explore the string data type and how to work with text in C++.
  • String Functions: Learn about various functions available for manipulating strings.
  • Arrays: Learn about arrays and how to use them to store and manipulate collections of data.
  • References: Understand the concept of references and how to use them in C++.

We hope you find these lecture notes helpful as you progress through the course. Happy coding!