A comprehensive academic resource for Open Source Tech Lab (OSTL), focusing on Python programming, graphical user interfaces, database connectivity, and practical open-source methodologies.
Overview · Contents · Reference Books · Personal Preparation · Assignments · Laboratory · Mini-Project · Syllabus · Usage Guidelines · License · About · Acknowledgments
Open Source Tech Lab (CSL405) is a core laboratory subject in the Second Year (Semester IV) of the Computer Engineering curriculum at the University of Mumbai. This course introduces students to the philosophy of open-source software and provides hands-on experience with Python as a primary tool for developing robust, scalable, and efficient applications.
The curriculum encompasses several key domains in open-source development:
- Python Fundamentals: Datatypes, operators, control flow, and data structures (List, Tuple, Set, Dict).
- Functional Programming: Functions, lambda expressions, map, filter, and reduce operations.
- Object-Oriented Programming: Classes, objects, constructors, and inheritance patterns.
- File Handling: Reading, writing, and appending data with robust error management.
- GUI Development: Creating interactive desktop applications using Tkinter and ttk widgets.
- Database Connectivity: Integrating Python with MySQL for CRUD operations.
- Open Source Methodology: Understanding licensing, collaborative development, and version control.
This repository represents a curated collection of study materials, reference books, assignments, and practical implementations compiled during my academic journey. The primary motivation for creating and maintaining this archive is simple yet profound: to preserve knowledge for continuous learning and future reference.
As the industry shifts towards open-source ecosystems, mastering Python and its integration with databases and GUIs remains a critical skill set. This repository serves as my intellectual reference point: a resource I can return to for reviewing methodologies and strengthening my understanding of systems-level integration.
Why this repository exists:
- Knowledge Preservation: To maintain organized access to comprehensive practical work beyond the classroom.
- Continuous Learning: To support lifelong learning by enabling easy revisitation of Python and OSTL fundamentals.
- Academic Documentation: To authentically document my learning journey through Open Source Tech Lab.
- Community Contribution: To share these resources with students and learners who may benefit from them.
All materials in this repository were gathered, organized, and documented by me during my undergraduate studies (2018-2022) as part of my coursework and exam preparation.
Important
COVID-19 Impact: This coursework was completed during the COVID-19 pandemic in 2020. Due to the nationwide lockdown and the sudden transition to online learning, several planned laboratory sessions and collaborative note-taking activities could not be carried out as originally intended. Despite these challenges, efforts were made to adapt and preserve as much work as possible.
This collection includes comprehensive reference materials covering all major topics:
| # | Resource | Focus Area |
|---|---|---|
| 1 | OSTL VIVA | Oral examination preparation guide |
| 2 | Learning Schedule | Personal learning path and chronological study plan |
Study materials and planning resources for effective laboratory preparation:
| # | Resource | Description |
|---|---|---|
| 1 | Examination Blueprint | Course outcomes and marking scheme (Syllabus) |
| 2 | Course Certificate | Recognition of completion/achievement |
Academic assignments for comprehensive learning and practice:
| # | Assignment | Marks | Description |
|---|---|---|---|
| 1 | Assignment 1 | 54/60 | Python fundamentals and data structure theory |
| 2 | Assignment 2 | 60/60 | Advanced Python concepts, GUI, and DB theory |
Topics Covered: Language Comparison (Python vs C/C++) · Data Structures (mutable vs immutable) · GUI Frameworks (Tkinter, event-driven programming) · Database APIs (PEP 249, MySQL connectivity)
The laboratory component focuses on the practical implementation of Python concepts, ranging from basic data structures to advanced GUI and Database systems.
Tip
Pythonic Thinking: Always start by understanding the problem, then write clean, readable code with meaningful variable names. Use list comprehensions, generators, and built-in functions to write efficient Python. Practice the DRY (Don't Repeat Yourself) principle and leverage Python's extensive standard library for common tasks.
| # | Experiment | Source Code |
|---|---|---|
| 1 | Python Basics: Datatypes, String Ops, Advanced Data Structures | View |
| 2 | Control Flow: Logic, Loops, and Menu-Driven Functions | View |
| 3 | OOP Basics: Classes, Objects, and Constructors | View |
| 4 | Advanced OOP: Principles of Inheritance | View |
| 5 | Functional Python: File I/O, Lambda, Map, Filter, Reduce | View |
| 6 | GUI Programming: Tkinter Basic, Class-based, and CRUD UI | View |
| 7 | Database Systems: MySQL Connectivity and CRUD Logic | View |
Experiment 1: Python Fundamentals (3 Programs)
| Program | Description | Code |
|---|---|---|
Basic_Datatypes_And_IO.py |
Variables, Casting, and I/O functions | View |
Data_Structures_And_String_Ops.py |
ByteArrays, Sets, and String manipulation | View |
Advanced_Data_Structures.py |
Lists, Tuples, Dictionaries, and Arrays | View |
Experiment 2: Control Flow & Functions (3 Programs)
| Program | Description | Code |
|---|---|---|
If_Else_Logic.py |
Identity checks and conditional logic | View |
Loops_Factorial_Fibonacci.py |
For/While loop implementations | View |
Functions_Menu_Driven.py |
Modular menu-driven programming | View |
Experiment 3: Introduction to OOP (2 Programs)
| Program | Description | Code |
|---|---|---|
Classes_and_Objects.py |
Instance/Class methods and state management | View |
Constructors_Implementation.py |
Object initialization with __init__ |
View |
Experiment 4: Advanced OOP (1 Program)
| Program | Description | Code |
|---|---|---|
Inheritance_Implementation.py |
Single inheritance and method overriding | View |
Experiment 5: Functional Python (2 Programs)
| Program | Description | Code |
|---|---|---|
File_IO_Operations.py |
Read/Write/Append with error handling | View |
Lambda_Filter_Map_Reduce.py |
Functional higher-order operations | View |
Experiment 6: GUI Programming with Tkinter (3 Programs)
| Program | Description | Code |
|---|---|---|
GUI_Basic_Implementation.py |
Simple Grid layout with Labels and Entries | View |
GUI_Class_Implementation.py |
Clean Class-based GUI encapsulation | View |
GUI_CRUD_Implementation.py |
Advanced UI with Menus and ttk widgets | View |
Experiment 7: Database Connectivity (1 Program)
| Program | Description | Code |
|---|---|---|
Database_Connectivity.py |
MySQL Integration with full CRUD functionality | View |
| # | Resource | Description |
|---|---|---|
| 1 | Laboratory Journal | Complete record of experiments with theory, code, and outputs |
| 2 | Lab README | Detailed navigation guide with program descriptions |
A data-driven project for real-time scraping and visualization of pandemic statistics
Important
Special thanks to Hasan Rizvi for his meaningful contributions, guidance, and support that helped shape this work.
A robust web scraping and visualization tool developed in Python 3. This mini-project scrapes authentic data from the Ministry of Health and Family Welfare (MoHFW), India, using BeautifulSoup. It implements data organization using PrettyTable and visualizes the impact through dynamic Bar Plots and Donut Charts using Matplotlib. This mini-project showcases the power of open-source libraries in handling real-world data science challenges.
| # | Resource | Description |
|---|---|---|
| 1 | Project Repository | Complete source code and documentation |
| 2 | Source Code | Primary Python implementation |
| 3 | Kaggle Notebook | Interactive visualization on Kaggle |
Official CBCGS Syllabus
Complete Second Year Computer Engineering syllabus document from the University of Mumbai, including detailed course outcomes, assessment criteria, and module specifications for Open Source Tech Lab.
Important
Always verify the latest syllabus details with the official University of Mumbai website, as curriculum updates may occur after this repository's archival date.
This repository is openly shared to support learning and knowledge exchange across the academic community.
For Students
Use these resources as reference materials for mastering Python, understanding GUI layouts, and preparing for examinations. All content is organized for self-paced learning.
For Educators
These materials may serve as curriculum references, assignment examples, or supplementary teaching resources. Attribution is appreciated when utilizing content.
For Researchers
The documentation and organization may provide insights into academic resource curation and educational content structuring.
This repository and all academic content are made available under the Creative Commons Attribution 4.0 International License (CC BY 4.0). See the LICENSE file for complete terms.
Note
Summary: You are free to share and adapt this content for any purpose, even commercially, as long as you provide appropriate attribution to the original author.
Created & Maintained by: Amey Thakur
Academic Journey: Bachelor of Engineering in Computer Engineering (2018-2022)
Institution: Terna Engineering College, Navi Mumbai
University: University of Mumbai
This repository represents a comprehensive collection of study materials, reference books, assignments, and personal preparation notes curated during my academic journey. All content has been carefully organized and documented to serve as a valuable resource for students pursuing Open Source Tech Lab.
Connect: GitHub · LinkedIn · ORCID
Grateful acknowledgment to Hasan Rizvi for his exceptional contribution to this repository through the COVID19 Web Scraper project. Working alongside Hasan was a truly enriching experience - his technical expertise, creative problem-solving, and unwavering dedication made every challenge feel surmountable. Beyond his coding skills, it was his collaborative spirit and enthusiasm for innovation that transformed this project from an idea into a fully functional data visualization tool. His patience in debugging, willingness to explore new technologies, and commitment to delivering quality work inspired growth and learning throughout the development process. Thank you, Hasan, for being an outstanding project partner and for all the knowledge you shared along the way.
Grateful acknowledgment to the faculty members of the Department of Computer Engineering at Terna Engineering College for their guidance and instruction in Python and Open Source technologies. Their clear teaching and continued support helped develop a strong understanding of Python-based systems.
Special thanks to the mentors and peers whose encouragement, discussions, and support contributed meaningfully to this learning experience.
Overview · Contents · Reference Books · Personal Preparation · Assignments · Laboratory · Mini-Project · Syllabus · Usage Guidelines · License · About · Acknowledgments
🔬 Open Source Tech Laboratory · 🖥️ COVID19 Web Scraper Project
Computer Engineering (B.E.) - University of Mumbai
Semester-wise curriculum, laboratories, projects, and academic notes.

