Skip to content

Amey-Thakur/OPEN-SOURCE-TECH-LAB

Repository files navigation

University of Mumbai

Open Source Tech Lab

CSL405 · Semester IV · Computer Engineering

License: CC BY 4.0 University Institution Curated by

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


Overview

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.

Course Topics

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.

Repository Purpose

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.


Repository Contents

Reference Books

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

Personal Preparation

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

Assignments

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)


Open Source Tech Laboratory

The laboratory component focuses on the practical implementation of Python concepts, ranging from basic data structures to advanced GUI and Database systems.

Total Experiments Language Lab Manual

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.

Laboratory Experiments

# 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

Program Details

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

Laboratory Documentation

# Resource Description
1 Laboratory Journal Complete record of experiments with theory, code, and outputs
2 Lab README Detailed navigation guide with program descriptions

Open Source Tech Lab Mini-Project

A data-driven project for real-time scraping and visualization of pandemic statistics

Project Platform Platform Technology Technology Status

Important

🤝🏻 Special Acknowledgement

Special thanks to Hasan Rizvi for his meaningful contributions, guidance, and support that helped shape this work.

Project Overview

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.

Resources

# Resource Description
1 Project Repository Complete source code and documentation
2 Source Code Primary Python implementation
3 Kaggle Notebook Interactive visualization on Kaggle

Syllabus

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.


Usage Guidelines

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.


License

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.


About This Repository

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

Acknowledgments

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.



Computer Engineering (B.E.) - University of Mumbai

Semester-wise curriculum, laboratories, projects, and academic notes.