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. Page 1 of 5
Course Scope and Sequence 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 Page 2 of 5
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 Page 3 of 5
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 objectoriented 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 Page 4 of 5
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: hminnick@umbctraining.com Phone: (443) 692-6600 x7141 Page 5 of 5