Curriculum
The art of Robotics is a combination of the arts of Software Engineering, Mechanical Engineering, and Electronic Engineering. As such, our curriculum is divided onto these three interdependent arts.
Software Engineering
Introduction to C Programming (CP 101)
C is the programming language on which all modern programming languages are based. It is also at the core of C++ and Objective-C. Modern C compilers produce executable machine code that is recognizable to experienced C programmers. Before there was “Object-Oriented Programming” (OOP), there was just “Functional Programming” in C.
Some modern programming languages based on C/C++:
- Java
- Python
- Go
- PHP
- Ruby
- Rust
- C#
- Visual BASIC (as it shares commonality with C#)
- JavaScript (and all JavaScript extensions/frameworks)
This class covers the C programming language at an introductory level, offering students the opportunity to determine interest in learning more.
Covered in this class:
- Write your first C program:
- Implement the main Function
- Write your first code
- Test your code
- Break your code
- Fix your code
- Modify your code
Prerequisites
- (none)
Beginning C Programming (CP 401)
This class focuses on ways to organize and process structured data (algorithms), as well as determining code complexity (Big O Complexity).
Covered in this class:
- Joy of Programming:
- Creating versus Using
- Designing versus Data Entry
- Interfaces versus Prompts
- Inventing versus Standards
- Exploration versus Indoctrination
- Basic Syntax:
- Header Files
- Constant Definitions
- Scopes
- Basic Data Structures:
- Structures (
struct) - Unions (
union)
- Structures (
- Functions:
- The main Function (entry point)
- Other Functions
- Prototyping versus Implementation
- Actual Code versus Boilerplate and Infrastructure
- Data Types:
- Integer (
int,char) - Floating Point (
float,double) - Array
- String (as array of
char) - Void (or “Unspecified”)
- Integer (
- Variables
- Constants
- Operators:
- Assignment
- Comparison
- Logical
- Conditions
- Loops
- Recycling:
- Repurpose Existing Code
- Static Libraries and API Development
- Cross-Team Support
- Support Mechanical Engineers and Electronic Engineers
Prerequisites
- CP 101 (or equivalent experience)
Intermediate C/C++ Programming (CPP 501)
This class focuses on ways to organize and process structured data (algorithms), as well as determining code complexity (Big O Complexity).
It is important to note that this class introduces the C++ language as an extension of the C programming language. This is done to add STL (Standard Template Library), which greatly simplifies working with data structures.
It is also important to note that this class does not cover OOP (Object-Oriented Programming) beyond the scope that is necessary to work with STL Templates. This will be covered in CPP 702.
Covered in this class:
- Memory and Object Management
- Instantiation/Allocation
- Instances
- Pointers
- References
- Cleanup/De-allocation
- Memory Management
- Scope Management
- Garbage Collection (manual versus automatic)
- Data Structures
- STL Templates
- String
- List (Single and Double)
- Tree
- Trie
- Hash Table
- Stack
- Queue
- etc.
- Algorithms:
- Sorting
- Traversal
- Pruning
- Permutation
- Substitution
- Parse
- Search
- Recursion (and Non-Functional Recursion)
- etc.
- Big O Code Complexity:
- Constant – O(1)
- Linear – O(n)
- Logarithmic – O(n log n)
- Quadratic – O(n^2)
- Exponential – O(2^n)
- Factorial – O(n!)
- Performance
- Execution Time
- Memory Usage
- Waste Heat Energy
- Instrumentation
Prerequisites
- CPP 401 (or equivalent experience)
Multithreaded C/C++ Programming (CPP 701)
Including the POSIX Threads Library (pthreads) adds the power of Multithreading to the C programming language.
Multithreading involves the creation, synchronization, and management of concurrent threads of execution.
Covered in this class:
- Thread Creation
- Thread Synchronization
- Thread Management
- Shared Resources
- Buffering
- Streaming
- Protocols
Prerequisites
- CPP 501 (or equivalent experience)
Advanced C/C++ Programming (CPP 702)
This class covers the discipline of Object-Oriented Programming (OOP) in C++.
Covered in this class:
- Defining Objects:
- Classes
- Template Classes
- Member Variables
- Member Functions
- Accessibility
- Inheritance
- Copy Constructors
- Operator Overloading
- Parameter Overloading
- Programming with Objects:
- Static Instantiation
- Dynamic Instantiation
- Iteration
- Traversal
- Memory Management (or “Garbage Collection”)
- Pass by Instance
- Pass by Pointer
- Pass by Reference
Prerequisites
- CPP 501 (or equivalent experience)
Mechanical Engineering
Introduction to Mechanical Engineering (ME 101)
Mechanical Engineering is the basis for all physical things that are built or manufactured, from nails to houses to robots.
This class covers Mechanical Engineering at an introductory level, offering students the opportunity to determine interest in learning more.
Covered in this class:
- Build your first device:
- Safety and Protective Equipment.
- Working with Lego or other kits.
- Working with what is available.
Prerequisites
- (none)
Beginning Mechanical Engineering (ME 401)
This class covers Mechanical Engineering at an beginner level, and covers the design, building, testing, and documentation of mechanical devices.
Covered in this class:
- Joy of Mechanics:
- Creating versus Using
- Inventing versus Standards
- Exploration versus Indoctrination
- Mechanical Drawing:
- Repeatable Instructions
- Prior Art and Existing Components
- Prototyping:
- Safety
- Building, Testing, and Documentation
- Working with Kits (such as Lego)
- Tools and Materials
- Recycling:
- Safety
- Repurpose Discarded Materials/Components
- Cross-Team Support:
- Support Software Engineers and Electronic Engineers
Prerequisites
- ME 101 (or equivalent experience)
Electrical Engineering
Introduction to Electrical Engineering (EE 101)
Electrical Engineering is the basis for all electrical devices that are built or manufactured, from amplifiers to computers to robots.
This class covers Electrical Engineering at an introductory level, offering students the opportunity to determine interest in learning more.
Covered in this class:
- Create your first circuit:
- Safety and Protective Equipment
- Low Voltages Only (Non-rechargeable Batteries Only)
- Override Switches Required (to control battery power)
- Hands-off Testing Rule
- Protective Eyewear Required
- Precautions:
- Prevention of Component Overload
- Override Switches
- Hands-off Testing
- Protective Eyewear
- Battery Power
- Breadboard Usage
- Jumper Wires
- Connectors
- Basic Components
- Testing
- Safety and Protective Equipment
Prerequisites
- Students must be advanced enough to wear protective equipment and work with electronic components that may overheat or burst if overloaded.
Beginning Electrical Engineering (EE 401)
This class covers Electrical Engineering at an beginning level, covering the science behind electronic engineering, as well as the introduction of rechargeable batteries and AC to DC power conversion.
Covered in this class:
- Joy of Electronics:
- Creating versus Using
- Inventing versus Standards
- Exploration versus Indoctrination
- Safety and Protective Equipment
- Protective Eyewear Required
- Override Switches Required
- Hands-off Testing Rule
- Circuit Test Containment Module
- Rechargeable Battery Thermal Runaway Disposal Unit
- GFCI Outlets
- Circuit Breakers
- Precautions:
- Prevention of Component Overload
- Override Switches
- Hands-off Testing
- Protective Eyewear
- Rechargeable Battery Thermal Runaway Prevention
- Insulated Gloves
- Schematic Drawing:
- Repeatable Instructions
- Prior Art and Existing Components
- Prototyping:
- Safety
- Building and Testing
- Working with Kits
- Tools and Components
- Working with Breadboards
- Insulation, Shielding, and Connectors
- Basic Components:
- Safety
- Resistors
- Capacitors
- Diodes (and LEDs)
- Transistors
- Switches
- Input/Output of Light, Sound, etc.
- Basic Concepts:
- Safety
- Voltage (Volts)
- Current (Amperes)
- Wattage (Watts)
- Resistance (Ohms)
- Electromagnetism
- Induction (Coils, Solenoids, Transformers, etc.)
- Oscillation and Rectification (AC and DC)
- Logical Circuitry:
- Safety
- Binary Sensors
- Logic Gates
- Integrated Circuits
- Recycling:
- Safety
- Repurpose Discarded Materials/Components
- Cross-Team Support:
- Support Mechanical Engineers and Software Engineers
Prerequisites
- EE 101 (or equivalent experience)