Course Overview
This course is designed to provide undergraduate students with a solid foundation in programming using Python. Students will learn fundamental programming concepts, problem-solving skills, and practical application of Python in various domains.
Course Objectives
- Understand core programming concepts and computational thinking
- Develop proficiency in Python programming language
- Learn to write efficient, readable, and well-structured code
- Apply programming skills to solve real-world problems
- Build a strong foundation for advanced programming and software development
Course Outline
Module 1: Programming Basics and Python Environment
- Course Introduction
- What is programming?
- Overview of Python
- Setting up Python development environment
- Basic Syntax and Data Types
- Python interpreter
- Variables and assignments
- Primitive data types (integers, floats, strings, booleans)
- Type conversion
- Basic input and output operations
- Operators and Expressions
- Arithmetic operators
- Comparison operators
- Logical operators
- Operator precedence
- Basic mathematical operations
Module 2: Control Flow
- Conditional Statements
- if, elif, else statements
- Nested conditionals
- Logical decision-making
- Truth tables and boolean logic
- Loops
- while loops
- for loops
- Loop control statements (break, continue, else)
- Nested loops
- Iterating through sequences
Problem Set: Due 1 week after 2nd lecture
Module 3: Data Structures
- Lists
- List creation and manipulation
- List comprehensions
- List methods
- Slicing and indexing
- Tuples and Sets
- Immutable vs. mutable data structures
- Tuple operations
- Set operations and methods
- Dictionaries
- Dictionary creation and manipulation
- Key-value pairs
- Dictionary methods
- Nested dictionaries
Problem Set: Due 1 week after 3rd lecture
Module 4: Functions
- Function Basics
- Defining and calling functions
- Function parameters and arguments
- Return statements
- Scope and namespaces
- Advanced Function Concepts
- Default arguments
- Keyword arguments
- Variable-length arguments
- Lambda functions
- Recursion
Problem Set: Due 1 week after 2nd lecture
Module 5: File Handling and Exceptions
- File Input/Output
- Reading from files
- Writing to files
- Working with different file formats
- Context managers
- Error Handling
- Try-except blocks
- Handling specific exceptions
- Raising exceptions
- Custom exception handling
Module 6: Object-Oriented Programming
- Introduction to OOP
- Classes and objects
- Constructors
- Instance and class methods
- Inheritance
- Polymorphism
- Advanced OOP Concepts
- Multiple inheritance
- Method overriding
- Abstract classes
- Encapsulation
Problem Set: Due 1 week after 2nd lecture
Module 7: Modules and Packages
- Python Standard Library
- Importing modules
- Popular built-in modules
- Creating custom modules
- Package Management
- Virtual environments
- Package management (pip, uv, etc.)
- Installing third-party packages
Module 8: Applications in Software Engineering
- REST APIs
- Fundamentals of REST APIs
- Basic example with Python and FastAPI
- Full-stack Python
- Web development with Reflex
Problem Set: Due 2 weeks after second lecture (Web Project)
Assessment and Grading
- Problem Sets: 50%
- Midterm: 25%
- Final Exam: 25%
Recommended Textbooks and Resources
- “Python Crash Course” by Eric Matthes
- “Automate the Boring Stuff with Python” by Al Sweigart
- Official Python Documentation
- Online platforms: Leetcode