Programming in Python
Class Summary
This course is intended for beginning or intermediate programming students who wish to learn object oriented programming. The course allows students to learn largely at their own pace alongside fellow students and team mates.
The class will develop a fun project that will allow demonstration of key learning objectives. Students will be expected to accept responsibility for individual components and then integrate them into the larger project. Peer code reviews will help all students contribute their ideas and discuss improvements.
Students with prior programming experience will likely benefit from reviewing concepts and acting as mentors for those who are new to programming. The stronger developers will be expected to take on the more challenging aspects of the design, development, and management of the group project.
Learning Objectives:
By the end of this class, students should be able to:
Understand fundamental data types
Implement control flow (branches, loops)
Organize data with structures
Break down complex problems into manageable components
Document code at an appropriate level
Create custom classes and objects to meet a defined need
Build and utilize libraries
Test and debug programs
Write code to implement logic to support an application
Demonstrate good development methodologies including test driven development
Demonstrate use of source code repositories
Create a client/server application
Report and manage defects found in development
Attributes of Students Enrolling in This Class:
Students enrolling in this course should:
Know how to touch type (or be willing to study and learn it quickly outside of class)
Be curious about how things work
Embrace failure and frustration as part of the learning process
Enjoy hands-on learning and experimenting
Be willing to ask questions and try new ideas
Have patience when troubleshooting problems
Be comfortable working independently and in teams
Understand and be able to use basic algebra concepts (variable substitution and abstraction)
This class is designed for beginners—no advanced technical experience required.
Basic Knowledge & Skills Recommended
Math & Logical Thinking
Basic arithmetic (addition, subtraction, multiplication, division, exponents)
Introductory algebra concepts (variables, simple formulas, patterns)
Understanding cause-and-effect relationships
Science & Electronics
Understand how to define an experiment, execute, and evaluate the results.
Computer & Technology Skills
Ability to ‘touch type’ (must be started and learning - consider online resources)
Basic computer operation (typing, using a mouse, saving files, using applications)
Familiarity with common devices (computers, tablets, phones)
Coding & Computational Thinking
Ability to follow step-by-step instructions
Ability to extrapolate solutions from reference examples
Exposure to beginner coding platforms (Scratch, block-based coding, or Python basics) is helpful but optional
*Please see the Course Schedule page for locations, dates, and times*