Python Programming
Course Description
This course is an introduction to the Python programming language. Programming techniques covered by this course include modularity, abstraction, top-down design, specifications, documentation, debugging, and testing. Selected topics in computer science are introduced through programming projects in the Python language. The core material for this course includes functions, strings, loops, and files. Students learn how to develop, test, and debug Python programs. Example programs are used extensively to illustrate object-oriented programming. Students complete numerous hands-on exercises to reinforce programming concepts.
Course Objectives
Students will be able to• develop problem-solving skills, especially in the use of computers to solve real-world problems.
• learn basic programming skills, especially software development using the Python language.
• use Python to write programs to perform various user and administrative tasks
Course Prerequisites
Some programming experience in a high-level structured programming language is recommended.
Student Evaluation
Tests, quizzes and/or exercises will be administered as appropriate to test student comprehension of the course learning objectives and course material. Students will receive a letter grade (A, B, C, D, or F) upon completion of the course. All graded items are noted in the resources column by the asterisk (*).
Textbook
Python Programming: An Introduction to Computer Science, 2nd edition. 2010, John Zelle, Franklin, Beedle and Assoc. ISBN: 1590282418.
© Copyright UMBC Training Centers 2013. All Rights Reserved.
Course Scope and Sequence
Module Topics Resources
1 An Introduction to Computers, Programming and Python
• Different kinds of programming languages • What is Python
• Introduction to interactive Python • Inside a Python program
2 Writing Simple Python Programs
• The software development process • Variable names
• Introduction to numbers and arithmetic operations
• String literals • Output statements • Input statements
• Simple assignment statements • Simultaneous assignment statements • Looping with for-loops and ranges
3 Computing with Numbers
• Numeric data types • Arithmetic operations • Using the math library
• Limitations of computer arithmetic • Type conversion and rounding
4 Objects and Graphics
• Introduction to graphics and Tkinter • Introduction to objects
• Simple graphics programming • Using graphical objects
• Graphics programming case study • Interactive Graphics – mouse clicks and
text input
© Copyright UMBC Training Centers 2013. All Rights Reserved.
Module Topics Resources 5 Sequences: Strings, Lists, and Files
• Introduction to the string data type • String indexing and slicing
• Simple string processing • Regular expressions
• String processing using regular expressions • Lists as Sequences
• Simple list operations
• Internal String Representation • String methods
• List methods
• Input and output with strings • Introduction to file processing • Opening and closing a file • Reading and writing files
6 Functions
• Introduction to functions • Why use functions
• Program example using functions • Passing arguments to functions • Functions that return a value • Functions that modify parameters • Functions for modularity
7 Flow Control and Conditional Expressions
• Boolean conditions
• if, if-else and if-elif-else statements • Introduction to errors and exception
handling
• Try and except statements
• Case study in program design using control flow
8 Loops and Compound Booleans
• Looping with for-loops • Looping with while-loops • Common loop patterns • Nested Loops
• Boolean Operators
• Looping with repeat-until loops • Endless loops and the break statement • Boolean Expressions and short circuits
© Copyright UMBC Training Centers 2013. All Rights Reserved.
Module Topics Resources 9 Designing a Simulation
• Analysis and Specification • Introduction to top-down design • The step-wise refinement process
• Introduction to bottom-up Implementation • Unit testing
10 Defining Classes
• Review of objects
• Designing a sample program with object-oriented design
• Class method definitions
• Using the self parameter with class methods
• Implementing the sample program with OOP
• Encapsulation and Abstractions • Defining classes in modules • Working with multiple modules
• Using objects in graphical user interfaces (GUI)
11 Advanced Features
• Using linear search with an array • Using binary search with an array • Comparison of the search algorithms • Recursive problem solving
• Examples of recursive definitions • Writing and using recursive functions • Recursion vs. iteration
• Sorting an array with selection sort • Sorting an array with merge sort • Comparison of sort algorithms
12 Web-Based Applications
• Creating dynamically rendered response pages
• Storing persistent data • Using view functions
• Overview of selected web frameworks *indicates a graded item
© Copyright UMBC Training Centers 2013. All Rights Reserved.
Course Schedule
Classroom Course Format
In the classroom environment, the course runs for ten (10) consecutive business days. Each day is divided into four (4) hours of live instruction and four (4) hours of open classroom time for students to work on programming exercises and projects. Standard class hours are 0800-1200 (local business hours) for the live instruction, and 1200-1600 for the open classroom time.
Date Module (s) Topics
Day 01, Week 1 – Monday 1 An Introduction to Computers, Programming and Python Day 02, Week 1 – Tuesday 2 Writing Simple Python Programs Day 03, Week 1 – Wednesday 3 and 4 Computing with Numbers and Objects
and Graphics
Day 04, Week 1 – Thursday 5 Sequences: Strings, Lists, and Files Day 05, Week 1 – Friday 6 and 7 Functions and Flow Control and
Conditional Expressions
Day 06, Week 2 – Monday 8 Loops and Compound Booleans Day 07, Week 2 – Tuesday 9 Designing a Simulation
Day 08, Week 2 – Wednesday 10 Defining Classes Day 09, Week 2 – Thursday 11 Advanced Features Day 10, Week 2 – Friday 12 Web-Based Applications
Asynchronous Course Format
Students enrolled in the asynchronous distance learning environment learn the same material and utilize the same textbook as students enrolled in the classroom course. In addition to the textbook, videos, slides, and/or documents with instructor commentary are provided. Programming exercises are provided throughout the course, and both instructor support and technical support are available to the student. The asynchronous course is available through UMBC Training Center’s Learning Management System via the internet, and on DVD for those students with limited Internet connectivity.
Students will have the flexibility to complete all the modules within a defined amount of time.
Contact Information
Name: Homer Minnick III, Director, Cybersecurity Training Email: [email protected]
Phone: (443) 692-6600 x7141
© Copyright UMBC Training Centers 2013. All Rights Reserved.