Meeting Times
Lecture
Wednesday and Friday from 9:05am - 9:55am in Whitten LC 160
Note: Lecture attendance is strongly recommended. Lab attendance is required. Students are responsible for all material covered in class and lab.
Lab
| Section | Day | Start Time | End Time | Room |
|---|---|---|---|---|
| 5N | Thursday | 8:50am | 10:45am | Ungar 305 |
| 7CD | Friday | 10:10am | 12:05pm | Ungar 305 |
| 7EF | Friday | 12:20pm | 2:15pm | Ungar 305 |
Instructor
Ryan Kuhl, M.S
- Email: rkuhl@miami.edu
- Office Location: Ungar Building 310E
- Office Hours: Tuesday & Thursday 9:30am - 10:30am
Teaching-assistant names and contact details are omitted from this public copy.
Course Description
This course provides a comprehensive introduction to Python programming for students with no prior programming experience. Through a combination of interactive lectures and hands-on lab exercises, students will learn fundamental programming concepts and develop practical skills in data analysis, visualization, and software development. The course is structured in two phases: foundational concepts (Weeks 1-8) and applied projects (Weeks 9-16), culminating in a discipline-specific capstone project.
Course Objectives
Upon completion of this course, students will be able to:
- Write, debug, and execute Python programs using Jupyter Notebooks
- Understand and apply fundamental programming concepts including variables, data types, control structures, functions, and classes
- Perform data analysis using Python’s core libraries (NumPy, Pandas, Matplotlib)
- Implement file I/O operations and exception handling for robust programs
- Design and develop complete software applications using object-oriented programming principles
- Create interactive visualizations and dashboards to communicate data insights
- Apply learned concepts to solve real-world problems in their field of study
Required Materials
Textbook
“Starting Out With Python - 6th Edition” by Tony Gaddis (Pearson)
- ISBN-10: 0137619138
- ISBN-13: 978-0137619139
Canes Course Pack
The Canes Course Pack provides students with access to their required course materials at the start of each semester. The Canes Course Pack allows the University to reduce student course material costs compared to traditional print text and ensures every student can access their course materials on or before the first day of class.
Undergraduate students are automatically enrolled in the Canes Course Pack when they register for their courses. This enrollment will provide students with all required materials for class for one low, flat fee. Course materials will be provided to the student in a digital format, or a physical format when digital is not available. Print materials do not need to be returned at the end of the semester.
For this CSC115 course, we will be using courseware through Follett-Willo accessible via Canvas. You will have direct codeless access to your courseware material through your course shelf. An email will be sent to your school email address prior to classes starting to provide step-by-step instructions.
Revel online platform is required for the course and will have homework exercises assigned via the platform. Revel is accessed through Canvas, which will link to your Pearson Revel account automatically.
Important: If a student opts-out of the Canes Course Pack, they will no longer have access to their digital materials and will need to purchase the digital version of the textbook and Revel separately from the bookstore for a monthly fee. Physical (print) materials that have already been picked up from the campus store must be returned before opting out.
Students are able to opt-out by visiting miami.edu/canescoursepack no later than January 21, 2026.
Computer Requirements
Minimum Specifications:
- 4GB RAM (8GB recommended)
- 10GB free disk space
- Reliable internet connection
- Webcam and microphone (for office hours and help sessions)
Required Software:
- Operating System: Modern Windows or macOS
- Python Version: 3.12.10 (strictly required)
- Jupyter Notebook/Lab
All software is free and open-source. Installation instructions and technical support will be provided in Week 1. Students must have Jupyter running locally on their computer.
Schedule
| Week | Dates | Lecture Topics | Lab Topics |
|---|---|---|---|
| 1 | 01/14 - 01/17 | Python Setup and Introduction to Programming | Setup Day + First Programs |
| 2 | 01/21 - 01/24 | Variables and Data Types | Personal Profile Builder |
| 3 | 01/28 - 01/31 | Calculations and String Operations | Unit Converter and Calculator |
| 4 | 02/04 - 02/07 | Decision Structures and Boolean Logic | Grade Calculator and Validator |
| 5 | 02/11 - 02/14 | While Loops and Iteration | Number Guessing Game |
| 6 | 02/18 - 02/21 | For Loops and Nested Loops | Pattern Generator and Data Processor |
| 7 | 02/25 - 02/28 | Functions | Dice Game Simulator |
| 8 | 03/04 - 03/07 | Midterm Exam + File I/O and Exception Handling | Grade Book Manager |
| 9 | 03/11 - 03/14 | SPRING BREAK | NO CLASSES |
| 10 | 03/18 - 03/21 | Lists Introduction | Project 1: Budget Analyzer (Part 1) |
| 11 | 03/25 - 03/28 | List Methods and Processing | Project 1: Budget Analyzer (Part 2) |
| 12 | 04/01 - 04/04 | Data Visualization with Matplotlib | Project 1: Budget Analyzer (Final) |
| 13 | 04/08 - 04/11 | Dictionaries and Sets | Capstone Project (Part 1) |
| 14 | 04/15 - 04/18 | Classes and Object-Oriented Programming | Capstone Project (Part 2) |
| 15 | 04/22 - 04/25 | Advanced Data Processing | Capstone Project (Part 3) |
| 16 | 04/29 - 05/02 | Data Visualization & Presentations | Capstone Project (Final Presentations) |
| Finals | 05/04 | Final Exam 8:00am - 10:30am | N/A |
Remote Class Policy
If the instructor cannot attend a scheduled time-slot, students will receive 24 hours’ notice via Canvas.
- Format: These sessions will be asynchronous (typically Loom videos), allowing you to complete lab work on your own schedule for that day.
Grading Distribution
| Component | Percentage |
|---|---|
| Lecture Exercises | 10% |
| Lab Exercises (Weeks 1-8) | 30% |
| Project 1: Budget Analyzer | 5% |
| Project 2: Capstone Project | 25% |
| Midterm Exam | 10% |
| Final Exam | 20% |
| Total | 100% |
Grading Scale
| Grade | Percentage |
|---|---|
| A+ | 97-100% |
| A | 93-96% |
| A- | 90-92% |
| B+ | 87-89% |
| B | 83-86% |
| B- | 80-82% |
| C+ | 77-79% |
| C | 73-76% |
| C- | 70-72% |
| D+ | 67-69% |
| D | 63-66% |
| D- | 60-62% |
| F | Below 60% |
Course Components
Lecture Exercises (10%)
Interactive follow-along exercises completed during 50-minute lecture sessions. These are designed to reinforce concepts as they are taught and provide immediate feedback on understanding. Lecture exercises are lower-stakes and focus on completion and participation.
- Delivered via Jupyter notebooks
- Typically 10-20 points per assignment
- Submitted through Gradescope
- Graded primarily on completion and basic correctness
Lab Exercises (30%)
Comprehensive hands-on programming assignments completed during 120-minute lab sessions. Labs build on lecture concepts with more complex implementations and progressive difficulty.
- Each lab is worth approximately 100 points
- Include visible and hidden test cases
- Focus on implementation quality, edge case handling, and concept integration
- Students are encouraged to exceed requirements for additional learning
- Lab attendance is required
Lab Makeup Policy:
If you are absent from a lab session, you are allowed to have a maximum of 2 makeup labs only for the entire term. The makeup lab must be scheduled within one week following your absent lab during the faculty or TA’s office hours to complete the makeup lab.
Projects (30% total)
Project 1: Personal Budget Analyzer (5%) Weeks 10-11
A multi-week project where students build a complete budget analysis application using lists, file I/O, and data visualization. The project includes:
- Data loading and validation
- Transaction categorization and analysis
- Statistical calculations
- Interactive visualizations with Matplotlib
Project 2: Capstone Project (25%) Weeks 12-15
Students design and implement a discipline-specific application that demonstrates mastery of all course concepts. The capstone includes:
- Project proposal and planning (Week 12)
- Core functionality development (Weeks 12-13)
- Advanced features and polish (Week 14)
- Final presentation and code submission (Week 15)
Projects must incorporate:
- Object-oriented programming
- File I/O with multiple formats (CSV, JSON)
- Data processing and analysis
- Visualization and/or interactive dashboards
- Comprehensive error handling
Midterm Exam (10%)
- Date: 03/06/2026 9:05am - 9:55am
- Format: In-class written exam, closed book, closed notes
- Coverage: Weeks 1-7 material (variables, control structures, loops, functions)
The midterm tests understanding of fundamental programming concepts, code reading comprehension, problem-solving ability, and basic algorithm design.
Final Exam (20%)
- Date: Monday 05/04/2026 8:00am - 10:30am
- Format: Comprehensive written exam, closed book, closed notes
- Coverage: All course material with emphasis on Weeks 8-16
The final exam includes:
- Code reading and analysis
- Problem-solving and algorithm design
- Object-oriented programming concepts
- Data structures (lists, dictionaries, sets)
- Integration of multiple concepts
Late Arrival Policy
Students who arrive more than 30 minutes after the scheduled exam start time will be considered absent from the final exam.
Course Policies
Late Submission Policy
All assignments (lecture exercises, labs, and projects) will adhere to the following late policy:
- Up to 24 hours late: 25% reduction from earned score
- 24-48 hours late: 50% reduction from earned score
- After 48 hours: Assignment receives 0 points
No extensions will be granted except for documented emergencies or university-excused absences. Please reach out to the instructor for lecture materials and submission extensions if you have an excused absence with proper documentation. Plan ahead and submit early to avoid technical issues.
Academic Integrity Policy
Use of AI Tools and Large Language Models (LLMs)
The use of ChatGPT, GitHub Copilot, Claude, or any other AI-powered coding assistants is strictly prohibited in this course for all graded work. This includes:
- Generating code solutions for assignments, labs, or projects
- Debugging or explaining your code
- Answering exam questions
- Writing documentation or comments
Rationale
This is a foundational programming course. Using AI tools prevents you from developing the problem-solving skills and programming intuition necessary for success in computer science. You must learn to write, debug, and understand code independently.
Permitted Resources
- Official Python documentation (python.org)
- Course materials and textbook
- Instructor and TA assistance during office hours
- Collaboration with classmates on concepts (not code)
- Stack Overflow and programming forums (for understanding concepts, not copying solutions)
Collaboration Policy
- Discussion of concepts and approaches with classmates is encouraged
- Sharing or copying code is prohibited
- All submitted work must be your own
- You must be able to explain any code you submit
Consequences: Violations of academic integrity will result in
- First offense: Zero on the assignment and meeting with instructor
- Second offense: Failing grade in the course and report to the Honor Council
Attendance Policy
Lecture attendance is strongly recommended but not required. Lab attendance is required.
- You are responsible for all material covered in lectures and labs
- Lecture exercises can only be completed during class time
- Lab exercises require hands-on work during lab sessions
- Missing class will make it difficult to succeed in the course
If you must miss class:
- Review the course materials posted on Canvas
- Attend office hours for clarification
- Work through lecture notebooks independently
- For excused absences, contact the instructor to arrange makeup work
Communication
Primary Communication Channels
- Email: rkuhl@miami.edu (use your @miami.edu email only)
- Canvas: Announcements, course materials, grades
- Gradescope: Assignment submission and feedback
Response Time
I will respond to emails within 48 hours during weekdays. Emails sent after 5 PM Friday will be answered on Monday.
Getting Help**
- Before/After Class: Quick questions and clarifications
- Office Hours: Detailed coding help, concept review, project guidance
- Email: Administrative questions, absence notifications, grade concerns
Accessibility and Accommodations
Students with disabilities who need accommodations should register with the Office of Disability Services and provide documentation to the instructor as early as possible in the semester. I am committed to making this course accessible to all students.
Course Philosophy
High Engagement, High Support, No Ceiling
This course is designed with three core principles:
- High Engagement: Fast-paced, interactive lectures with immediate application of concepts
- High Support: Abundant resources, instructor availability, and scaffolded learning
- No Ceiling: Meeting requirements earns an A, but students are encouraged to push beyond for personal growth and mastery
Grading Philosophy
- A grade (90-100%): Demonstrates competent understanding and completion of all requirements
- Higher achievement: Students who exceed requirements with elegant solutions, creative enhancements, and exceptional code quality will be recognized but not penalized for exploring beyond the scope
- Focus on learning: Grades reflect understanding and skill development, not competition
Learning from Mistakes
Programming is learned through iteration and failure. You are encouraged to:
- Experiment with code and break things
- Ask questions when confused (no question is too basic)
- Submit code for feedback early and often
- Learn from test case failures and debugging
Weekly Time Commitment
Students should expect to spend approximately 9-12 hours per week on this course:
- Lectures: 2 hours
- Lab session: 2 hours
- Independent practice: 3-5 hours
- Project work: 2-3 hours (Weeks 9-16)
This is a rigorous course that requires consistent effort. Starting assignments early and practicing regularly is essential for success.
Resources and Support
Instructor Support
- Office hours either in-person or virtual
- Email assistance
- In-class help during lab sessions
Course Materials
- Course repository: All lecture notebooks, lab assignments, and project specifications
- Canvas: Announcements, grades, supplementary materials
- Gradescope: Assignment submission and autograding
External Resources
- Python.org official documentation and tutorials
- Real Python (realpython.com) tutorials
- Stack Overflow for programming questions (search before posting)
Additional Support
- Teaching Assistants (lab sessions)
- Study groups (encouraged!)
Important Dates
| Date | Event |
|---|---|
| 01/14/2026 | First day of class |
| 01/28/2026 | Last day to withdraw (without a W on transcript) |
| 03/06/2026 | Midterm Exam |
| 03/11/2026 - 03/14/2026 | Spring Break - No classes |
| 04/10/2026 | Last day to withdraw (W on transcript) |
| 04/29/2026 - 05/02/2026 | Capstone Presentations |
| 05/04/2026 | Final Exam |
Note: Check the University Academic Calendar for official dates and deadlines.
Tips for Success
- Start assignments early - Programming takes longer than you think
- Attend every class - Concepts build on each other
- Practice daily - 30 minutes of coding per day is better than 3 hours once a week
- Read error messages carefully - They tell you exactly what’s wrong
- Ask for help early - Don’t wait until the night before an assignment is due
- Work through examples - Type out code from lectures, don’t just read it
- Test frequently - Run your code after every few lines
- Save your work often - Use Ctrl+S / Cmd+S frequently and keep backups
- Collaborate on concepts, not code - Discuss approaches with classmates, but write your own code
- Embrace failure - Every error is a learning opportunity
University Standard Policies
Academic Integrity
The Honor Code is in effect. While collaboration is encouraged during practicums, all written reflections, journals, and seminar materials must be your own original work.
Accommodations (ARC)
Students with disabilities who require accommodations must contact the Camner Center for Academic Resources (ARC) in Whitten University Center. Once you have your letter, please meet with me privately to discuss your needs.
Religious Holy Days
It is the student’s responsibility to inform the instructor within the first three weeks of the semester of any intended absences due to religious observances.
Title IX & Sexual Misconduct
The University of Miami has a zero-tolerance policy for sexual misconduct. As an instructor, I am a “Responsible Employee,” meaning I am required to report any instances of sexual harassment or sexual violence to the Title IX Coordinator.
Disclaimer
This syllabus is a preliminary outline and may be subject to change as the course progresses. Any changes will be announced in class and posted on Canvas. Students are responsible for staying informed about course updates.
Updated
Last Updated: January 2026