Need help with UdacityCPP?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

cyscgzx33
177 Stars 94 Forks 133 Commits 5 Opened issues

Description

Udacity C++ Nanodegree Program

Services available

!
?

Need anything else?

Contributors list

# 573,783
Shell
C++
1 commit

UdacityCPP

Course metrials of Udacity C++ Nanodegree Program: Knowledge and Projects.

A* Search Algorithm

  • 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 f
      value, which is a dynamic value relate to its current node during the search process, that equals to the sum of
      int h (Heuristic)
      and
      int g
      value, i.e.,
      f(n) = g(n) + h(n)
      .
    • A set of tests is provided by Udacity and have been passed using such implementation.

Path Planning Project

  • 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

Introduction to Object-Oriented-Pogramming (OOP)

  • 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.

System Monitor Project

  • 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

Introduction to Memory Management

  • 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.

Smart Pointer Project

  • 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
    ,
    PtrDetails
    and
    Iter
    :
    • Pointer
      is the core garbage collector class, which implements a garbage-collection pointer
    • PtrDetails
      maintains a list reference counts with allocated memory, and bonds a reference count to a piece of allocated memory
    • Iter
      is a template class similar in function to an
      STL
      iterator, and it defines all pointer operations, including pointer arithmetic, such as
      *
      ,
      ->
      ,
      begin()
      , and
      end()
      , which work much like their equivalents in the
      STL
      .

Capstone Project: Elevator System

  • 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
      ExternalRequest
      and
      InternalRequest
      , 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:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.