Welcome to the Higher Level Programming repository! This collection of projects is designed to improve my fluency in both Python and JavaScript by tackling various tasks that explore different concepts and programming techniques in these languages.
The repository is divided into several folders, each representing a different phase of learning and containing exercises, scripts, and programs. Below is an overview of the key directories and the types of tasks they contain:
This directory introduces basic Python syntax, including:
- Running Python scripts
- Printing numbers and strings
- Basic file manipulation
Focuses on control flow and basic algorithms:
- Loops (
for,while) and conditionals (if-else) - Simple algorithms such as finding the last digit and generating random numbers
Covers module importing and command-line argument handling:
- Importing functions from other scripts
- Working with arguments and modularizing code
Explores data structures in Python:
- Lists, tuples, and basic operations
- More complex tasks like palindrome checking
Extends data structures knowledge:
- Working with dictionaries, sets, and advanced list manipulations
- Implementing algorithms to process matrix operations
Covers exception handling:
- Safe printing and handling errors gracefully
- Raising custom exceptions
Introduces object-oriented programming:
- Creating and managing classes and objects
- Methods and attributes
Focuses on test-driven development (TDD):
- Writing tests for functions and classes
- Ensuring code reliability with test cases
Deep dive into object-oriented programming:
- Expanding class design concepts with more complex structures
Focuses on understanding Python’s object model:
- Manipulating objects and understanding references
Introduces inheritance:
- Designing class hierarchies
- Utilizing
super()and method overriding
Covers file input and output:
- Reading and writing JSON data
- Serializing and deserializing objects
A mini-project to consolidate OOP concepts:
- Building classes for geometric shapes (Base, Rectangle, Square)
- Emphasis on inheritance, serialization, and unit testing
Covers introductory SQL commands:
- Creating, selecting, and modifying databases and tables
- Querying data
More advanced SQL:
- User management, subqueries, and joining tables
- Working with real-world data scenarios
Introduces Python and SQL integration:
- Working with Object Relational Mappers (ORM)
- Writing Python scripts that interact with databases
Networking basics:
- Working with HTTP requests via shell scripts
- Automating requests and processing responses
Advanced networking in Python:
- Fetching data from APIs
- Handling errors in HTTP requests
Introduces basic JavaScript concepts:
- Variables, loops, and functions
- Command-line interaction using Node.js
Covers advanced JavaScript concepts:
- Object-oriented programming in JavaScript
- Closures and scope management
Introduces JavaScript for web development:
- Manipulating the DOM with jQuery
- Creating interactive web pages
This repository demonstrates my progression as a developer, particularly focusing on:
- Gaining proficiency in Python and JavaScript
- Applying concepts of data structures, algorithms, and object-oriented programming
- Learning modern software development practices, such as test-driven development (TDD), object-relational mapping (ORM), and web development techniques
Each folder contains individual project directories, which in turn include Python and JavaScript scripts, supporting files, and test cases. You can run the Python scripts by navigating to their respective directories and executing them, or running the JavaScript files using Node.js where appropriate.
- Python 3.x
- Node.js (for JavaScript files)
- Basic understanding of Python and JavaScript
- Database (for SQL-related tasks)
This repository is a work in progress as I continue to enhance my skills in both Python and JavaScript. Feel free to explore the code, raise issues, and suggest improvements.