Course Syllabus
Computer Programming I (Python)
Course Information
Course Title: Computer Programming I (Python)
Target Audience: Math Students
Level: Introductory
Prerequisites: None
Course Description
This course provides a comprehensive introduction to programming using Python. Students will learn fundamental programming concepts and develop practical coding skills through hands-on exercises and projects. The course emphasizes problem-solving approaches that are particularly relevant to mathematical applications.
Learning Objectives
By the end of this course, students will be able to:
- Write, execute, and debug Python programs
- Use variables, data types, and operators effectively
- Work with Python’s built-in data structures (lists, tuples, dictionaries, sets)
- Implement control flow using conditional statements and loops
- Create and use functions to write modular, reusable code
- Handle files and perform basic I/O operations
- Implement error handling in Python programs
- Use external libraries and modules
- Apply programming concepts to solve mathematical problems
Course Structure
The course is organized into four comprehensive modules:
Module 1: Python Fundamentals (6 lessons)
Core concepts of Python programming:
- Variables & Data Types
- Control Flow (if/elif/else)
- Loops (for/while)
- Functions
- Recursion
- Scope
Practice: Review session consolidating fundamental concepts
Module 2: Data Structures (5 lessons + 4 assignments)
Python’s built-in data structures:
- Lists & Tuples
- Sets
- Dictionaries
- Iterables & Iteration
- Mutability
Assignments: Recommendation System, Traveling Salesman, Parrondo’s Paradox, Sudoku Solver
Practice: Review sessions and additional exercises
Module 3: NumPy (8 lessons + 3 applications)
Numerical computing with NumPy:
- Introduction to NumPy Arrays
- Array Arithmetics
- Loading & Saving Data
- Array Manipulation
- Masking & Boolean Indexing
- Random Numbers & Fancy Indexing
- Statistics
- Linear Algebra
- Vectorization
Applications: Linear Algebra Problems, MNIST Digit Recognition, Snell’s Law Simulation
Practice: Quizzes and review sessions
Module 4: IDEs & Tools (2 sessions + 1 application)
Professional development environment:
- General Review
- IDEs (Jupyter, VS Code)
- Debugging Techniques
- Best Practices
Application: RSA Encryption
Practice: General review and integration project
Assessment Methods
- Exercises and Practice Problems: 40%
- Module Projects: 30%
- Final Project: 20%
- Participation and Engagement: 10%
Required Materials
Software
- Python 3.8 or higher (latest version recommended)
- Code Editor: VS Code, PyCharm, Jupyter Notebook, or any text editor
- Internet access for downloading packages and accessing course materials
Recommended Resources
- Python Official Documentation: docs.python.org
- Real Python: realpython.com
- Python for Data Analysis (for math students)
Course Policies
Attendance and Participation
Regular engagement with course materials is essential for success. Students are expected to: - Complete lessons in order - Attempt exercises before reviewing solutions - Participate in discussions and ask questions
Academic Integrity
All work submitted must be your own. You may: - Discuss concepts with other students - Use online resources for learning - Reference documentation and tutorials
You may not: - Copy code directly from other students - Submit work that is not your own - Use AI tools to complete assignments without understanding the solution
Late Work
It’s recommended to follow the course schedule, but you may work at your own pace if needed.
Support and Resources
Getting Help
- Review lesson materials and examples
- Check documentation and official Python resources
- Use the course repository’s issue tracker
- Reach out to instructors during office hours
Technical Support
For technical issues with the course website or materials: - Check the GitHub repository - Submit an issue on GitHub - Contact the course administrator
Schedule
This is a self-paced course. The suggested timeline is: - Weeks 1-2: Module 1 - Weeks 3-4: Module 2 - Weeks 5-6: Module 3 - Weeks 7-8: Module 4
Adjust the pace based on your learning needs and schedule.
Contact Information
For questions about course content, assignments, or policies, please: - Submit an issue on the GitHub repository - Contact your instructor via the designated communication channels
Last updated: 2024