Course metrials of Udacity C++ Nanodegree Program: Knowledge and Projects.
- Contained in the folder
A_star - Implemented an A* grid-based search algorithm.
- The searching behavior a BFS like algorithm to visit priority of neighbor nodes w/ higher
int fvalue, which is a dynamic value relate to its current node during the search process, that equals to the sum ofint h (Heuristic)andint gvalue, i.e.,f(n) = g(n) + h(n). - A set of tests is provided by Udacity and have been passed using such implementation.
- The searching behavior a BFS like algorithm to visit priority of neighbor nodes w/ higher
- Contained in the folder
Path_Planning_OpenStreetMap - In this project, an A* algorithm is utilized to implement a path planning algorithm
- it is within the OpenStreetMap frame
- it searches a path from givin start and end position
- Contained in the folder
Intro_to_OOP - The materials/topics include a series of introduction, examples and exercise scripts about how C++ handles memory management, such as allocation and deleting without memory leak. Such topics include:
- Basic Data Type:
Stack,Heap,Pointer,Reference, etc. - Memory Process:
new,delete,malloc,memset, etc. - Smart Pointer:
unique_ptr,shared_ptr, etc. - others / etc.
- Basic Data Type:
- Contained in the folder
System_Monitor - In this project, a Linux System Monitor is built using C++ OOP topics, including abstraction, inheritance, polymorphism, and etc.
- it implements similar functionalities as
htop - the basic idea is to read and parse system file contents in
/proc - (TODO) refine the UI by utilizing Ncurses package
- it implements similar functionalities as
- Contained in the folder
Intro_to_Memory_Mgmt - Thie materials/topics include a series of introduction, examples and exercise scripts about OOP in C++:
- Abstraction: class declaration/definition, access modifiers.
- Inheritance: basics, multiple inheritance, multi-level inheritance, friend class.
- Polymorphism: overload operator/function, virtual functions.
- Generic Programming: class/function template, deduction and multiple generic types.
- others / etc.
- Contained in the folder
Smart_Pointer - In this project, a simple garbage collector pointer class has been implemented. The garbage collector basically uses three classes:
Pointer,PtrDetailsandIter:Pointeris the core garbage collector class, which implements a garbage-collection pointerPtrDetailsmaintains a list reference counts with allocated memory, and bonds a reference count to a piece of allocated memoryIteris a template class similar in function to anSTLiterator, and it defines all pointer operations, including pointer arithmetic, such as*,->,begin(), andend(), which work much like their equivalents in theSTL.
- Contained in the folder
Elevator_System - This is the Capstone/Final Project of this C++ Nanodegree program. It gives a chance to practice the knowledge of C++ programming language, by implementing the well-know Object-Oreiented Design (OOD) problem, Elevator System Design. Within this project:
- Implemented single elevator system, with functions to handle
ExternalRequestandInternalRequest, which are from specific floor the user wants to take the elevator, and the requests to spcific floor when the user is inside the elevator, respectively - According to the requirement of the course project, several important topics within this C++ nanodegree has been adopted:
- Loops, Functions, I/O
- Object Oriented Programming
- Memory Management
- Concurrency (right now, it hasn't been adopted yet)
- A very simple demonstrating picture for this project:
- Implemented single elevator system, with functions to handle