Syllabus
Unit 1
Unit 1: Introduction & Object-Oriented Programming
Python syntax and semantics, data types, control flow, functions, modules, packages, recursion and lambda functions, file handling, exception handling, and debugging techniques. Classes and Objects, Constructors, inheritance, polymorphism, Magic methods ( init, str, len, etc.), Composition vs Inheritance, class and static methods.
Unit 2
Unit 2: Advanced Python Programming Concepts, Iterators and Generators, Decorators and closures, Context managers (with statement), Modules and packages (standard & custom), Dynamic typing and introspection.
Unit 3
Unit 3: File and Text Processing
Text, binary file handling, Directory handling using os, shutil, glob, working with JSON and CSV, Regular Expressions using the re module (search, match, replace, extract patterns), Use- case: Log file analyzer
Unit 4
Unit 4: Problem-Solving Patterns in Python
Sorting, searching, recursion, Hashing, frequency counters, sliding window, Backtracking problems, Basic graph and tree problems using dictionaries/lists, Competitive programming style challenges (Leetcode-style)
Unit 5
Unit 5: Testing and Best Practices
Writing testable code, Unit testing with unittest or pytest, Code documentation and style (PEP8), Error logging and debugging, Packaging Python applications. Git and GitHub basics, writing clean, maintainable code, and creating a portfolio of Python projects.
Text Books / References
- Python Programming: An Introduction to Computer Science by John Zelle
- Fluent Python by Luciano Ramalho
- Test-Driven Development with Python by Harry J.W. Percival
Objectives and Outcomes
Course Objective
To equip students with strong programming foundations using Python, focusing on core logic building, object-oriented programming, advanced features like decorators and generators, file handling, regular expressions, and problem-solving patterns using Python.
Course Outcomes
CO1: Apply core and object-oriented programming principles in Python.
CO2: Use advanced Python features such as iterators, generators, decorators, and context managers.
CO3: Develop robust Python applications using modules, error handling, and unit testing. CO4: Implement algorithmic problem-solving techniques using Python.
CO5: Handle text data using regular expressions and work with file systems efficiently
CO-PO Mapping
| PO/PSO |
PO1 |
PO2 |
PO3 |
PO4 |
PO5 |
PO6 |
PO7 |
PO8 |
PO9 |
PO10 |
PO11 |
PO12 |
| CO |
| CO1 |
3 |
2 |
3 |
– |
– |
– |
1 |
– |
– |
– |
– |
– |
| CO2 |
3 |
3 |
3 |
1 |
– |
– |
1 |
– |
– |
– |
– |
– |
| CO3 |
2 |
3 |
3 |
2 |
1 |
– |
2 |
– |
– |
– |
– |
– |
| CO4 |
3 |
3 |
3 |
2 |
1 |
– |
2 |
– |
– |
– |
– |
– |
| CO5 |
1 |
1 |
1 |
2 |
2 |
– |
1 |
– |
– |
– |
– |
– |