This repository contains projects and assignments completed as part of an advanced C and C++ programming course. The course covered a wide range of topics, from basic data structures to complex algorithms and system design.
The course focused on developing strong programming skills in both C and C++, emphasizing practical application through a series of challenging projects. Key areas of study included:
- Data structures (linked lists, matrices)
- Object-oriented programming in C++
- Algorithm design and implementation
- Memory management and optimization
- File I/O and data processing
- Probabilistic models and text generation
A sophisticated system that provides movie recommendations based on user preferences and viewing history. Key features include:
- User management
- Movie database
- Content-based and collaborative filtering recommendations
- Prediction of movie scores
Technologies used: STL containers, smart pointers, operator overloading
An implementation of a Multi-Layer Perceptron (MLP) neural network for recognizing handwritten digits. The project includes:
- Custom matrix class for efficient operations
- Implementation of activation functions (ReLU, Softmax)
- A multi-layer neural network architecture
Technologies used: Object-oriented design, file I/O, command-line argument parsing
A text-based implementation of the classic Snakes and Ladders board game. This project demonstrates:
- Game logic implementation
- Command-line interface design
- Basic file handling
A text generation system that creates random tweets based on input data. This project showcases:
- Markov chain implementation
- Linked list data structure
- Text processing and generation
A program that sorts bus lines based on distance or duration. This project emphasizes:
- Sorting algorithms
- Struct usage in C
- Basic testing implementation
Throughout these projects, the following skills were honed:
- Efficient memory management
- Algorithm design and optimization
- Object-oriented programming principles
- Data structure implementation and usage
- File handling and data processing
- Command-line application development
- Probabilistic modeling and text generation
- Code organization and project structuring
This course provided a comprehensive exploration of C and C++ programming, covering both fundamental concepts and advanced topics. The diverse range of projects offered practical experience in applying these concepts to real-world problems, from game development to recommendation systems and text generation.