###### Thanks to: **João Chrisóstomo** and **Yazeed Alrubyli**

Artoriuz,
yazeedalrubyli
# Open-Source Electrical Engineering Curriculum

This repository consists of a series of online courses and textbook recommendations that together cover most of the basic Electrical Engineering knowledge, similarly to a bachelor’s degree.

While I strongly recommend going to an actual university, nowadays we have a wide array of extremely high quality online education resources. Deciding what to study on your own might be difficult when the catalogues are long, and I hope I can at least guide you if you have no idea where to start.

For those of you in the path of obtaining an actual BSEE degree, this might still be useful since it can complement your education.

The curriculum is based on my personal experience completing a BSEE at the Federal University of Rio Grande do Norte, which was a 5 years long programme, but revised to fit into 3 years due to the strong inspiration I got from ETH Zürich’s and MIT’s curriculums.

Naturally, the actual time you invest highly depends on how many hours a day you put on the online courses and how many of them you want to go through. The textbooks themselves are all good on their own, and valuable resources by themselves if you’re good at self-learning.

## Structure

The curriculum is split into 2 parts, a mandatory core and several electives. The core aims to cover the basic knowledge every electrical engineer should know (even if you’re not a specialist), opening the doors to the more specific knowledge. Some universities allow you to choose a specialisation, focusing on a single part of EE, which is exactly how the 5th and 6th semesters are designed here.

## Core

The core is divided into 4 knowledge areas: -
**Mathematics**: Calculus, Linear Algebra, Statistics, etc.
- **Electricity**: Electromagnetic Theory, Electric
Circuits, Electronics, etc. - **Computing**: Boolean
Algebra, Logic Circuits, Programming, etc. - **Signals**:
Signals and Systems, Control, Communications, etc.

The “Mathematics” subjects are the very first pillars engineers needs to build in order to sustain the rest of our knowledge, you’ll need calculus to understand electricity, linear algebra to understand robotics, statistics to understand communications, etc.

The “Electricity” subjects are related to the physical aspects of electromagnetic waves and electronics, which are used in clever ways to build everything else in EE.

The “Computing” subjects cover the logical parts of digital electronics, an area of knowledge that ended up giving birth to IT, CS, CE, etc.

Finally, the “Signals” subjects cover what might be the most unique knowledge in EE, being able to understand what the frequency domain is and how we can design things outside the time-domain. Signals and Systems will lead the way to all knowledge related to control systems, communications systems, computer vision, etc.

## 1st Semester

**Introduction to Electrical Engineering**

I strongly recommend checking YouTube videos about electronics, hardware, software, etc. See if they interest you. Recommending a textbook is extremely difficult since what you want is an overview of what EE is all about, but that doesn’t mean cool casual books don’t exist. Brian Kernighan, the author of the quintessential C language book, wrote something very interesting aimed at people who don’t work in the technology field but who’d still want to understand the basics of computing and the digital world. It was never meant to be read by engineering students, but it can be a good introduction since it gives you a showcase of many concepts without delving too deep into technical details.

Recommended book:

Understanding
the Digital World - Brian Kernighan

Trustworthy resources:

AnandTech

EEVblog

ElectroBOOM

Computerphile

**Calculus**

Recommended textbooks:

Calculus
- Gilbert Strang

Trustworthy resources:

Calculus
1A - Differentiation

Calculus
1B - Integration

Calculus
1C - Coordinate Systems and Infinite Series

**Linear Algebra**

Recommended textbook:

Linear Algebra -
Gilbert Strang

Linear
Algebra Applications - Steve Leon

Trustworthy resources:

Introduction
to Linear Models and Matrix Algebra

Linear
Algebra: Foundations to Frontiers

Differential
Equations: Linear Algebra and NxN Systems of Differential
Equations

**Boolean Algebra and Logic Circuits**

Recommended textbooks:

Digital
Design - Frank Vahid

Digital
Design RTL VHDL Verilog - Frank Vahid

Trustworthy resources:

Computation
Structures Part 1: Digital Circuits

## 2nd Semester

**Probability Theory and Statistics**

Recommended textbooks:

All
of Statistics: A Concise Course in Statistical Inference - Larry
Wasserman

Grinstead and
Snell’s Introduction to Probability

Trustworthy resources:

Fundamentals
of Statistics

Statistics

Probability

Statistics and
R

**Electricity and Magnetism**

Recommended textbooks:

Electromagnetic
Field Theory - Markus Zahn

Trustworthy resources:

Electricity
and Magnetism Part 1

Electricity
and Magnetism Part 2

Electricity
and Magnetism: Electrostatics

Electricity
and Magnetism: Fields and Forces

Electricity
and Magnetism: Maxwell Equations

**Programming Logic and Algorithms**

Recommended textbooks:

C
Programming Language - Brian W. Kernighan, Dennis M. Ritchie

C
Programming A Modern Approach - K. N. King

Trustworthy resources:

Introduction to Computer
Science

Introduction
to Computer Science and Programming

Basics
of Computing and Programming

**Linear Systems and Signals**

Recommended textbooks:

Linear
Systems and Signals - Lathi

Signals
and Systems - Alan V. Oppenheim, Alan S. Willsky, with S.
Hamid

Discrete-Time
Signal Processing - Alan V. Oppenheim, Ronald W. Schafer

Trustworthy resources:

Signals
and Systems Part 1

Signals
and Systems Part 2

Differential
Equations: Fourier Series and Partial Differential Equations

Discrete
Time Signals and Systems Part 1: Time Domain

Discrete
Time Signals and Systems Part 2: Frequency Domain

Discrete
Time Signal Processing

## 3rd Semester

**Discrete Mathematics**

Trustworthy resources:

Mathematical
Modelling Basics

Computational
Thinking for Modelling and Simulation

Introduction to
Programming with MATLAB

**Electric Circuits**

Recommended textbooks:

Fundamentals
of Electric Circuits - Matthew Sadiku

Trustworthy resources:

Circuits
and Electronics 1: Basic Circuit Analysis

**Digital Systems and Computer Architecture**

Recommended textbooks:

Computer
Architecture A Quantitative Approach - David A Patterson and John L.
Hennessy

Computer
Organization and Design RISC-V Edition: The Hardware Software Interface
- David A Patterson and John L. Hennessy

Digital
Design and Computer Architecture - Harris and Harris

Digital
Systems, Global Edition - Tocci

Digital
Design RTL VHDL Verilog - Frank Vahid

Logic
& Computer Design Fundamentals - M. Morris R. Mano, Charles R. Kime,
Tom Martin

Trustworthy resources:

Nand2Tetris
Part 1

Nand2Tetris Part
2

Computation
Structures 2: Computer Architecture

Computation
Structures 3: Computer Organization

**Control Systems**

Recommended textbooks:

Control
Systems Engineering - Norman Nise

Modern
Control Systems - Richard C. Dorf

Trustworthy resources:

Introduction
to Control System Design - A First Look

Dynamics and
Control

Introduction
to State Space Control

## 4th Semester

**Power Systems Analysis**

Recommended textbooks:

Power
System Analysis - Hadi Sadaat

**Electric Machines**

Recommended textbooks:

Fitzgerald
& Kingsley’s Electric Machinery

**Electronics**

Recommended textbooks:

Microelectronic
Circuits - Sedra

Microelectronics
- Razavi

Electronic
Principles - Malvino

Trustworthy resources:

Circuits
and Electronics 2: Amplification, Speed, and Delay

Circuits
and Electronics 3: Applications

Principle
of Semiconductor Devices Part I: Semiconductors, PN Junctions and
Bipolar Junction Transistors

Principle
of Semiconductor Devices Part II: Field Effect Transistors and
MOSFETs

**Communication Systems**

Recommended textbooks:

Modern
Digital and Analog Communication - Lathi

Trustworthy resources:

A
System View of Communications: From Signals to Packets (Part
1)

A
System View of Communications: From Signals to Packets (Part
2)

A
System View of Communications: From Signals to Packets (Part
3)

IoT
Networks and Protocols

## 5th and 6th Semesters

This is where the core principles of Electrical Engineering are completely covered. The student should freely choose the remaining subjects based on personal interests and the preferred knowledge area. I won’t bother specifying specific courses since by now you’re probably used to edx and coursera.

**Power Systems Subjects**

Power Systems II

Power Substations

Power Protection

**Electronics Subjects**

Power Electronics

Nanoelectronics

RF Electronics

Electromagnetic Compatibility

Semiconductor Physics

Optoelectronics

**Digital Electronics Subjects**

VLSI Design

Functional Verification

Design For Testing

Embedded Systems

**Computing Subjects**

Operating Systems

Machine Learning

Computer Vision

Computer Networks

**Control Subjects**

Adaptive Control

Non-Linear Systems

**Communications Subjects**

Digital Signal Processing

Advanced Compression and Coding

Antennas

Optical Communications

Wireless Communications

## Prerequisites

The following image illustrates the “flow” in which subjects should be studied in order to facilitate them.