This is an introductory course designed for learning computer programming concepts and hands on computational thinking, all in the context of the Python programming language. No prior experience in programming is necessary. Students will use their own problem solving abilities to implement programs in Python. This course will show the student how to create basic programming structures including decisions and loops. Further, students will explore unique Python data structures such as tuples and dictionaries. Students will also learn to perform basic debugging techniques. At the end of this course, the student will have learned enough concepts in computer science and programming to be able to write Python programs to solve problems on their own. This course will prepare the student to move on to the Advanced Python Programming course.

Learning Outcomes

● To make each student more competent in virtualization
● To familiarize each student with GNU/Linux (Linux) or Microsoft Operating System
● To make each student more competent in research and learn/use of various technologies
● To make each student more competent in technical knowledge of key programming skills.
● To familiarize each student with Linux or MS DOS commands
● To familiarize each student with how to perform a clean installation of the OS
● Demonstrate how to use Canopy (or other IDE) for the Python programming language
● Establish proficiency in fundamentals of writing Python scripts
● Demonstrate Python scripting components such as variables and flow control structures
● Demonstrate how to use iteration control structures such as For, and While loops
● Demonstrate how to use conditional control structures such if and elif statements
● Demonstrate how to write iterative and recursive programs
● Demonstrate how to work with lists and sequence data
● Write Python functions that will facilitate code reuse
● Teach robust code techniques such as errors handling and process exceptions properly
● Use Python to read and write external files
● Explore Pythons OO features with emphasis on properties and methods
● Explore Pythons usage as it relates to Game Design applications
● Provide a solid foundation in programming that will easily adapt to other programming languages
● Provide the student with an in-demand workplace skill

What Should I Know

● Moderate understanding of daily usage of Operating Systems in a work environment
● Prior programming or scripting language and a sense of humor preferred


Jefferson Fernandes

Assistant Professor, Computer Information Technology Jefferson Fernandes is an Assistant Professor for Bunker Hill Community College. He is responsible for curriculum development and delivery of upper level technical courses including Operating Systems, Linux Administration and Programming. Under the DOL NISGTC Grant he was the Technical Coordinator, Virtualization Lab and Microsoft IT Academy, VMware Academic Program, EMC Academic Alliance Administrator. He is also a Co-PI for NSF S-TEM Grant (REFLECT Scholarship). Previously, Mr. Fernandes was Quality Assurance and Field Engineer with NTAG Interactive. His mission was to drive quality and efficiency for a highly sought product in the event-planning industry. He also held technical positions as a Technology Specialist with Haese Engineering Law Firm and Boston Public Schools. He holds a Bachelor’s degree in Engineering Technology from Northeastern University with concentration in Computer Engineering and he is a proud alumni of Boston Public Schools. He is fluent in Portuguese, English and he loves working with students.