The latest addition to Udacity's range of Nanodegrees, its hands-on, career-oriented, credentials, is a 5-month program that teaches the foundations of C++.
Although C++ is among the top five programming languages, you won't find many highly recommended opportunities to learn it online. It is seen as a difficult language, a reputation which it probably deserves, but as the promotional video for the Nanodegree outlines, it is at the heart of many complex, high performance, systems:
In the video Bjarne Stroustrup, the creator of the language explains that C++ is used for the "foundational parts" of just about anything we do, saying:
"It sticks in between the higher-level software and the hardware and that's a much bigger part of the world that most people think. It's basically everywhere."
As David Silver, head of Udacity's School of Autonomous Systems, puts it C++ is the common thread between self-driving cars, drones and robotics and Udacity co-founder. If you are still not convinced of its worth, self-driving car pioneer, Sebastian Thrun adds:
“Self-driving cars would not be possible without C++. “I programmed the self-driving car that won the DARPA Grand Challenge using C++. The Google Self-Driving Car Project, now called Waymo, was launched with C++.”
The prerequisites for the program are intermediate knowledge of object-oriented programming in any language. The program comprises four courses and a Capstone Project:
Course 1: C++ Foundations
Course 2: Object-Oriented Programming
Course 3: Memory Management
Course 4: Concurrency
Capstone Project: Build Your Own C++ App
Each of the four courses culminate in a C++ project as outlined by David Silver in his announcement of the program on the Udacity Blog:
Build an OpenStreetMap Route Planner The first course covers basic C++ syntax, functions, containers, and how to compile and link with multiple files. Then, using OpenStreetMap and the 2D visualization library, IO2D, students will build a route planner that displays a path between two points on a map. By the end of this project, you’ll be able to select starting and ending areas on a city map and find a path along the city streets to connect the start and end.
Build a System Monitor Using Object-Oriented Programming The second course covers the essentials of OOP, like abstraction and inheritance, as well as advanced topics, like polymorphism and templates. You’ll synthesize your skills to build a Linux system monitor application to demonstrate OOP in action! Not only will you gain more familiarity with the Linux operating system, but you’ll also gain insights into how a collection of objects can function together in C++ to form a complete application.
Build Smart Pointers The third course covers the complexity of memory management by diving into stack vs. heap, pointers, references, new, delete, and more. For this project, you’ll synthesize all the memory management concepts you’ve worked with to build a smart pointer and compare it to the native implementation.
Build a Chatbot Concurrency is an advanced programming technique that, when properly implemented, can dramatically accelerate your programs. Having learned about it students will build a multithreaded chatbot that can carry hundreds of conversations simultaneously!
Enrol before April 23 to be part of the inaugural class. The cost is $999.
WebThings just graduated from being in an experimental phase to something more serious, but this sort of home IoT is a tough nut to crack. Can we trust Mozilla to be there after we invest time and eff [ ... ]
A course on the functional programming language Haskell from the University of Glasgow recently started on the FutureLearn Platform. There's still time to join in this presentation which provides a ha [ ... ]