Published: Dec. 10, 2023
At Oregon State University, all first years in the College of Engineering are required to go through the Engineering+ series, a set of 3 introductory engineering classes meant to be taken in Fall, Winter, and Spring term respectively.
The School of EECS (Electrical Engineering and Computer Science) is grouped under the College of Engineering, meaning that computer science majors are not exempt and must also take it. A majority of the ENGR+ classes do not have computer science topics, meaning that some computer science majors may not even touch programming until Spring term.
This guide will help you understand how to 1. Strategically set up your class load so that you can start taking Computer Science courses ASAP and 2. Take the more Computer Science focused ENGR+ courses.
The ENGR+ series consists of three classes:
ENGR 100 THE OREGON STATE ENGINEERING STUDENT (3 credits)
ENGR 102 DESIGN ENGINEERING AND PROBLEM SOLVING (3 credits)
ENGR 103 ENGINEERING COMPUTATION AND ALGORITHMIC THINKING (3 credits)
However, there are ways to quicken the workload.
Not many people know about this, but ENGR 100 is not a prerequisite to taking ENGR 102, meaning that you can take both of them together in the Fall Term. This allows you to take ENGR 103 a term earlier, moving up your courseload progression a term earlier too.
You can see how there's no prerequisite arrow for ENGR 102 in this degree progression sheet.
According to https://admissions.oregonstate.edu/credit-opportunities, AP Computer Science A Credit covers CS 160 and CS 161, not ENGR 103. However, if you ask your advisor they can help you exchange it for ENGR 103.
If you do have AP credit and are deciding whether to skip ENGR 103 or take it to review and see, I would highly recommend you do skip ENGR 103, as it assumes you have no prior programming knowledge. The next class (CS 162) starts off with conditional if statements and loops and gradually ramps up. If you feel like you can handle that and are willing to start learning the C++ programming language, skip ENGR 103.
ENGR+ courses are not all the same. They all cover various engineering topics. The professor that you choose determines the content of the course, so make sure to choose a professor whose course content that sounds interesting to you.
There are no ENGR 100 courses completely focused on programming.
ENGR 100: Automating the Future: Using Sensors for Control
Learn how to solve real-world problems by designing sensors that enable signal processing devices to
interact with the
world autonomously. As the creator of future innovations; you start early by exploring how to solve
real-world problems
by thinking critically, creatively, collaborating with others, and using methods from the field of
engineering.
Campus: Corvallis | Instructor: Jason Clark
Jason Clark's Automating the Future does very briefly touch upon MATLAB a little bit, but it mostly focuses on COMSOL, a physics simulation software. Other than that there's no programming in ENGR 100.
There are some ENGR 100 courses completely focused on programming.
ENGR 102: Solving Computational Sustainability Problems
Apply problem-solving strategies for developing algorithms to solve computational sustainability
problems
related to
climate, water, energy, agriculture, forestry, and social/human factors.
Campus: Corvallis Instructor: Jennifer Parham-Mocello
Although it is not mentioned, this course does use C++, which is good and I will expand on this reason in the next section. But be on the lookout, as this course may not be offered every term.
ENGR 102: Computational Foundations in Engineering
Explore foundational engineering concepts such as design principles, usability, problem solving,
computational
thinking, and logic. Gain knowledge of Boolean algebra, truth tables, circuit diagrams, and Python.
Start
building
skills to find a job, and boost teamwork, communication, and technical writing skills through group
projects
focusing on design and use of software in diverse ways.
Campus: Ecampus Instructor: Eric Vogel
Another option is ENGR 102 with Eric Vogel as this class covers Python programming and software development. As an ecampus course, this should be available every term. I took this class and recommend it.
ENGR 103 is meant to be an introductory programming course, being the first programming class that some students have ever taken. Different professors will teach differently. Different courses can cover different programming languages such as Python, C++, and I even saw one class that was taught in Java.
Ideally, you should aim to choose a course taught by 1. A Computer Science focused Professor. 2. With the C++ programming language.
If you don't choose wisely, you may not be fully prepared to handle CS 162 Introduction to Computer Science II, the first CS course you take after ENGR 103. It's taught in C++ and assumes you already have some programming knowledge as it starts off with conditional if statements and loops.
Here are some examples of ENGR 103 Courses that cover C++:
Computational Engineering for One Planet
Familiarize yourself with core programming concepts, such as variables, expressions, conditions, control
structures,
functions, and simple 1-d and 2-d structures. Then put your new knowledge to the test, solving
sustainability
problems using computation. Programming language: C++.
Campus: Corvallis Instructor: Jennifer Parham-Mocello
ENGR 103: Computational Thinking by Tinkering with Python and C++
Learn programming in Python by taking apart code examples to dissect, reverse engineer, modify, and
adapt
them.
Then, solidify your understanding of the patterns you've discovered by designing new programs from
scratch.
Programming language: Python, with a transition to C++
Campus: Corvallis Instructor: Tim Alcon
Smarter World: Internet of Things
Explore programming by seeing how the Internet of Things is built. IOT improves health, environmental
monitoring,
and safety. This course uses hands-on experiments using electronics and programming. Focus on creating,
not
just
learning.
Programming languages: C
Campus: Corvallis Instructor: Donald Heer
Interactive Physical Computing
Build interactive systems that can sense and respond to the world around you. You'll learn fundamental
programming
in the Arduino IDE to program CircuitPlayground boards to make light shows, songs, a smart plant, and
handheld video
game. Programming language: C/C++
Campus: Corvallis Instructor: Chet Udell
If you choose not to take an ENGR 103 class with C++, that's totally okay. Personally, one of my first programming languages I learned was Python. I think it's a great programming language if you've never programmed before. Python is also used for a lot of modern applications (Data Science, Machine Learning, Artificial Intelligence, Automation) and it's also one of the most popular programming languages for Leetcode, a platform used for coding question interview preparation. It's also not impossible to make the switch from Python to C++, but keep in mind you will have to eventually learn C++ for CS 162 and other classes.
Keep in mind that there's a lot of different content covered depending on the professor in ENGR+ and you should choose courses that sound interesting to you and courses that will prepare you for future programming classes.
As a computer science major, I hope this guide will help incoming computer science first-year students at OSU.