Drumbeat/p2pu/courses/python-programming: Difference between revisions

From MozillaWiki
< Drumbeat‎ | p2pu‎ | courses
Jump to navigation Jump to search
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Course Details==
==Course Details==
 
Introductory programming course using the Python programming language. The course will encourage learners to explore fundamental concepts of programming such as data types (strings, integers, floats, &c), lists, tuples, loops, control structures, functions, and more.
Introductory programming course using the Python programming language.


'''Facilitator: ''' Brylie Oxley
'''Facilitator: ''' Brylie Oxley


'''Prerequisite(s): ''' Intro to personal computers (Linux, Macintosh, Windows).
'''Prerequisite(s): ''' Intro to personal computers (Linux, Macintosh, Windows).
Users will need to be comfortable downloading and installing software on their chosen Operating System. Many Unix (including Mac) and Linux distributions already include Python.


'''Motivation: '''
'''Motivation: '''


When one knows how to make simple scripts it is easier to complete repetitious tasks. The more active hackers we have the faster our technology and collective culture will evolve.
Students, teachers, scientists, and people in many walks of life can benefit from knowledge of a programming language. Learning to program offers greater insight into formal logic and the principles of computation. It is easier to complete repetitious tasks when one knows how to make simple scripts. The more active hackers we have the faster our technology and collective culture will evolve.


'''Audience'''
'''Audience'''


Novice and intermediate computer users, scientists, teachers, and hobbiests can benefit by integrating programming into their workflow.
Novice and intermediate computer users, scientists, teachers, artists, and students.


'''P2PU Source: '''
'''P2PU Source: '''


[http://gnumedia.org GNU.media] research regarding Open Educational Resources and Free Software development.
[http://gnumedia.org GNU.media] research regarding Open Educational Resources and Free Software development.
This course was inspired by personal/professional research in the realm of Open Educational Resources, such as those available in the MIT Open Courseware and other university courses.




Line 26: Line 28:
'''Status: '''
'''Status: '''
New
New


==Learning Resources==
==Learning Resources==


Several free books are available:
Several free books are available:
* [http://www.py4inf.com/ Python for Informatics]
* [http://inventwithpython.com/ Invent with Python]
* [http://www.swaroopch.com/notes/Python A Byte of Python]
* [http://www.swaroopch.com/notes/Python A Byte of Python]
* [http://diveintopython3.org/ Dive Into Python 3]
* [http://diveintopython3.org/ Dive Into Python 3]
Line 37: Line 40:
==Learning Style==
==Learning Style==


Collaborative and collective knowledge sharing.
Collaborative and collective knowledge sharing. Project (experience) based learning.


==Learning Outcome(s)==
==Learning Outcome(s)==
Upon completion of the course, learners will have the following abilities and competencies:
Upon completion of the course, learners will have the following abilities and competencies:


* Creating various data types: strings, numbers, tuples, lists, dictionaries, sets
* Source documentation
* Creating and modifying variables
* Creating and modifying variables
* Mulitple assignment
* Working with various data types:
** strings
** numbers
** tuples
** lists
** sets
** dictionaries
** bytes
* Operators
* Operators
* Evaluating expressions and statements
* Evaluating expressions and statements
* Iterating over lists, tuples, &c
* Indexing and slicing strings, lists, &c
* String replacement fields ([http://docs.python.org/py3k/library/string.html#formatstrings PyDocs])
** Format Specifiers
* Flow/Decision control
** Loops
** Conditional statements
* Mulitple assignment
* Defining functions
* Defining functions
* Function parameters
** Documentation strings
** Function parameters
* Accepting user input
* Accepting user input
* Iterating over lists, tuples, &c
* Indexing and slicing strings, lists, &c
* General debugging
* General debugging
* Exception handling
** Syntax errors
* Creating custom exceptions
** Semantic errors
** Exception handling
*** Creating custom exceptions
* Creating classes
* Creating classes
* Class instances
** Class instances
* Creating and organizing modules
* Creating and organizing modules
** Importing modules
* Introduction to Python standard library
* Introduction to Python standard library
** File IO
** os
** glob
** sys
** sys
** unittest
** time
* Importing modules
** unittest ([http://blip.tv/file/3359645 Video])
* Creating sets
* Inheritance
* Inheritance
* Comprehensions
* Linked lists
* Linked lists
* Abstract Data Types
* Abstract Data Types
** Basic Design Patterns
** Basic Design Patterns ([http://blip.tv/file/3332767 Video])
* Metaprogramming
* Metaprogramming

Latest revision as of 03:44, 20 November 2010

Course Details

Introductory programming course using the Python programming language. The course will encourage learners to explore fundamental concepts of programming such as data types (strings, integers, floats, &c), lists, tuples, loops, control structures, functions, and more.

Facilitator: Brylie Oxley

Prerequisite(s): Intro to personal computers (Linux, Macintosh, Windows).

Users will need to be comfortable downloading and installing software on their chosen Operating System. Many Unix (including Mac) and Linux distributions already include Python.

Motivation:

Students, teachers, scientists, and people in many walks of life can benefit from knowledge of a programming language. Learning to program offers greater insight into formal logic and the principles of computation. It is easier to complete repetitious tasks when one knows how to make simple scripts. The more active hackers we have the faster our technology and collective culture will evolve.

Audience

Novice and intermediate computer users, scientists, teachers, artists, and students.

P2PU Source:

GNU.media research regarding Open Educational Resources and Free Software development.

This course was inspired by personal/professional research in the realm of Open Educational Resources, such as those available in the MIT Open Courseware and other university courses.


Repeat: Yes

Status: New

Learning Resources

Several free books are available:

Learning Style

Collaborative and collective knowledge sharing. Project (experience) based learning.

Learning Outcome(s)

Upon completion of the course, learners will have the following abilities and competencies:

  • Source documentation
  • Creating and modifying variables
  • Working with various data types:
    • strings
    • numbers
    • tuples
    • lists
    • sets
    • dictionaries
    • bytes
  • Operators
  • Evaluating expressions and statements
  • Iterating over lists, tuples, &c
  • Indexing and slicing strings, lists, &c
  • String replacement fields (PyDocs)
    • Format Specifiers
  • Flow/Decision control
    • Loops
    • Conditional statements
  • Mulitple assignment
  • Defining functions
    • Documentation strings
    • Function parameters
  • Accepting user input
  • General debugging
    • Syntax errors
    • Semantic errors
    • Exception handling
      • Creating custom exceptions
  • Creating classes
    • Class instances
  • Creating and organizing modules
    • Importing modules
  • Introduction to Python standard library
    • os
    • glob
    • sys
    • time
    • unittest (Video)
  • Inheritance
  • Comprehensions
  • Linked lists
  • Abstract Data Types
    • Basic Design Patterns (Video)
  • Metaprogramming