Programming
My Programming journey
- You can’t build a great building on a weak foundation. You must have a solid foundation if you’re going to have a strong superstructure. –> Gordon B. Hinckley
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
- Welcome to the world of objects.
- Objects are essentially reusable software components that model items in the real world.
- C++(object oriented) focus on objects(nouns) where as C(action oriented)(procedural) focus on actions(verbs).
- In c++, unit of programming is class. Where as, In c, unit of programming is function.
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
Enjoy Reading This Article?
Here are some more articles you might like to read next: