Get an introduction to programming with one of the hottest languages, Python.
Learn about Open & Free OLI courses by visiting the “Open & Free features” tab below.
Principles of Computation with Python — Open & Free
- Description
- What students will learn
- Learning objectives by module
- Course outline
- Other course details
- System requirements
- Open & Free features
Description
This course provides an introduction to Python and elementary principles of computing, including iteration, recursion, and binary representation of data. Additional topics on cellular automata, encryption, and the limits of computation are also introduced. The main goal of this course is to teach the fundamental principles used in computer science to a general audience so that they understand how computer scientists use these principles to solve complex problems to improve their daily lives. The first four modules employ Python to introduce and illustrate conditionals and iteration. The remaining modules do not use Python and can be used to can be incorporated into classes that do not use Python. Used together, these materials show students that there is much more to computer science than learning to write code.
Topics Covered:
- Programming with Python (Introduction, Conditionals, Loops)
- Iterative Processes
- Recursive Thinking
- Representation of Data and Instructions in Binary
- Cellular Automata as a Means of Generating Random Behavior
- Encryption Methods
- Limits of Computability.
Changes in this Update Include:
- Additional Python activities and additions to quiz questions.
The initial four modules introduce students to the Python programming language using an embedded programming environment. The modules explore if-statements and loops to illustrate concepts of flow-control and iteration, finally combining these constructs for more sophisticated programs.
Modules 5, 6 and 7 are traditionally some of the harder topics to comprehend for students who tend to shy away from technical courses, especially in computing.
The last three modules were chosen because they illustrate some deeper discoveries in computing that will show how computational thinking affects our lives. For example, principles in cellular automata can be used to create simple simulations that illustrate complex behavior (e.g. forest fire simulations). Encryption methods showcase how number theory is used to create an encryption method that is very hard to crack, so it can be used to support commerce today on the Internet.
The Limits of Computability module illustrates to students that not every problem is computable by computers…some require far more time than our lifespans, and some just can’t be solved regardless of the power of the computer, the amount of memory it has, or the amount of time we give the computer to solve the problem.