These MOOCs (Massive Open Online Courses) are free, non-credit classes taught by Penn Engineering faculty members. Start dates are flexible – sign up today!
Introduction to Programming with Python and Java Specialization
INTRODUCTION TO PYTHON PROGRAMMING
This course provides an introduction to programming and the Python language. Students are introduced to core programming concepts like data structures, conditionals, loops, variables, and functions. This course includes an overview of the various tools available for writing and running Python, and gets students coding quickly. It also provides hands-on coding exercises using commonly used data structures, writing custom functions, and reading and writing to files. This course may be more robust than some other introductory python courses, as it delves deeper into certain essential programming topics.
DATA ANALYSIS USING PYTHON
This course provides an introduction to basic data science techniques using Python. Students are introduced to core concepts like Data Frames and joining data, and learn how to use data analysis libraries like pandas, numpy, and matplotlib. This course provides an overview of loading, inspecting, and querying real-world data, and how to answer basic questions about that data. Students will gain skills in data aggregation and summarization, as well as basic data visualization.
INTRODUCTION TO JAVA AND OBJECT-ORIENTED PROGRAMMING
This course provides an introduction to the Java language and object-oriented programming, including an overview of Java syntax and how it differs from a language like Python. Students will learn how to write custom Java classes and methods, and how to test their code using unit testing and test-driven development. Topics include basic data structures like Arrays and ArrayLists and overloading methods.
INHERITANCE AND DATA STRUCTURES IN JAVA
This course provides a comprehensive look at Java inheritance, including access modifiers and overriding methods. Students are introduced to abstract classes, and will learn how to read and write to files, use regular expressions for parsing text, and how to leverage complex data structures like collections and maps.
Additionally, this course offers strategies for catching errors and debugging code, including an overview of Eclipse’s debugging tool.
Computer Science Essentials for Software Development
Introduction to Robotics Specialization
ROBOTICS 2: COMPUTATIONAL MOTION PLANNING
Robotic systems include three components: a mechanism for exerting forces and torques on the environment, a perception system for sensing the world, and a decision and control system which modulates the robot’s behavior to achieve the desired ends. This course will explore the problem of how a robot decides what to do to achieve its goals.
ROBOTICS 4: PERCEPTION
How can robots perceive the world and their own movements so that they accomplish navigation and manipulation tasks? In this course, we will study how images and videos acquired by cameras mounted on robots are transformed into representations like features and optical flow.
ROBOTICS 5: ESTIMATION AND LEARNING
How can robots determine their state and properties of the surrounding environment from noisy sensor measurements in time? In this course you will learn how to get robots to incorporate uncertainty into estimating and learning from a dynamic and changing world.