GithubHelp home page GithubHelp logo

udacitycpp's Introduction

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:

udacitycpp's People

Contributors

cyscgzx33 avatar arpancodes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.