Prajol Shrestha

Blog and Portfolio page.

View on GitHub

My Programming journey

Matlab: Numerical computations and simulations.

Basics                                                  Intermediate          
1. Scalars, Vectors, Matrices & Tensors                 1. Matrix Analysis    
2. Translate Formula into code                          2.                    
3. Descriptive Statistics                                   
4. Import & Export Data                                      
5. 2D/3D Plotting                                          
6. Find, Min, Max                                           
7. Functions & Anonymous Functions
8. Calculus & Differential equations
Projects
1. Noise Cancellation
2. Detect Muscle Movement from ECG Signals
3. 

Research Projects (approx 6-months workload)  
1. HEVC
  - Efficient Video Codec from scratch using MATLAB
  - Added own extensions to get optimal PSNR and Bitrate
  - Subjective Video Test and Human Evaluation on Video Codec
  - Comparison with H.265 (FFmpeg)                   

Python: General-purpose programming language (Machine Learning) –> Everything is an object!

Basics (1 Month)            Intermediate (6 Months)               Advanced (Running)        
1. Data types               1. OOPs                               1. Decorators              
2. Variables                2. Operator overloading               2. Generators             
3. Conditions               3. Data structure                     3. Context Managers       
4. Chained Conditionals     4. Comprehensions                     4. Metaclasses
5. Operators                5. Lambda, Map, Filter, Reduce        5. Parallelism             
6. Control Flow             6. Collections                        6. Testing                
7. Loops & Iterables        7. *Args & **kwargs                   7. Packages
8. Functions                8. Inheritance                        8. Cython
9. Mutable vs Immutable     9. Dunder Methods                     10. Design patterns
10. Common Methods          10. PIP
11. File I/O                11. Environments
                            12. Modules
                            13. Asyncio
Projects
1. Deep Learning Projects
2. Computer Vision Projects
3. Audio Projects

Research Projects (approx. 6-months workload)
1. Object detection & recognition in maps (going on)
    [lET TRANSFORMER DECODE HISTORICAL MAPS]    
    - Setup Python & CUDA C++-based Multimodal Neural Network on High-performance Computing (HPC)
    - Inference & Evaluate on Weinmann dataset using the trained model weights
    - Process JSON data using Detectron2 to register in COCO format, where we compute the centre point of a complex polygon
        & used Bezier curve fitting techniques to compute control points of a complex curve
    - Pre-train the model using our custom dataset (TODO)
    - Evaluation (TODO)

C++ : Systems programming language

Basics                                 Intermediate                          Advanced (Running)         
1. Data types                          1. OOPs                               1. Parallel STL Algo                             
2. Variables                             - structs                           2. Threads
3. Conditionals                          - Classes                           3. std::atomic, std::mutex
4. Array & Vector                        - Constructors                      4. 
5. Functions, overloading, Template      - Destructors
6. Template Specialization               - copy constructors
7. Iterators                             - move constructors
8. References                            - push_back vs emplace_back
9. Pointers                             2. Inheritance
10. Dynamic Allocation                  3. Polymorphism (static)
                                          - Virtual Functions (dynamic)
                                        4. Abstract Classes (pure virtual function)
                                        5. Class Templates
                                        6. Default Comparision
                                        7. Virtual Inheritance
                                        8. Function objects
                                        9. Lambdas
                                        10. Namespaces
                                        11. Random numbers
                                        12. File I/O
                                        13. Constexpr
                                        14. Concepts


Projects:
1. Snake game using SFML library
2. 
                              
Software development:
1. Compiler Optimization levels
2. Compilation phases
3. Header Files & Guards
4. Inline variables
5. Clang-Format

6. Dynamic & Static linking
7. Static Libraries
8. Shared Libraries

9. Debugging with Valgrind/Address Sanitizer/ GDB/ RR

10. GNU make & makefiles
11. Recursive Make
12. Cmake
13. Recursive Cmake  

Parallel C++: Accelerated Computing

Basics:
1. Workload Distribution
2. Static/Dynamic Partitioning
3.

Rust: Memory safe + Performance!

Basics:
1. Cargo package manager
2. Variables
3. Functions
4. Control Flow
5.
6.

Assembly Language: x86 Machine code –> More control to Processor

1. Basic Instructions
2. Jump Instructions
3. Memory access & Stack Operations
4. Function Calls, Prologue & epilogue
5. Return values, args & calling C functions
6. Create a function in assembly that can be called from C program