Very early version, changes are certain.
Other Resources
Please see the Online Learning page for more information
regarding expected student student access to the internet, and corresponding software.
The online Python tutorial.
The SciPy Lecture Notes, especially
Chapter 1, "Getting started with Python for Science".
The code and data files for IPython Interactive Computing and Visualization Cookbook, Once you have the Git
version of Bitbucket of Github installed, go to the command line/ terminal and enter:
- git clone https://github.com/ipython-books/cookbook-code.git to get the code, and
- git clone https://github.com/ipython-books/cookbook-data.git to get the data.
- Note that, as you use the code, you will need to move the data file(s) into the appropriate
code's directory.
- Also note that, because of changes to widgets in IPython, you will need to change the code in the
last cell of 01_notebook.ipynb in accordance with
https://github.com/ipython-books/cookbook-code/issues/20.
Course Description
Visualization and analysis of engineering data via collaborative computing using the
Python programming language and some of its many application frameworks. Python programming is covered from the
beginning, but at a rapid pace.
Students in a single learning community will use the same tools (Python 3, Anaconda, IPython, NumPy, SciPy,
and Matplotlib) to develop and demonstrate their capabilities in these topics.
This Online Learning course begins on August 18, 2015 at 12:00 am Eastern time.
Back to Top
Prerequisite(s)
Permission of the professor.
Past experience in programming, adaptability to asynchronous distance learning, and work ethic
are among the considerations in granting permission.
Please see the Online Learning page for more information
regarding expected student abilities and aptitudes.
Back to Top
Grading
TBD.
Item
|
Percent of Term Grade
|
Direct Activity Report 1 |
5
|
Direct Activity Report 2 |
5
|
Direct Activity Report 3 |
5
|
Project 1 |
10
|
Project 2 |
10
|
Project 3 |
10
|
Project 4 |
10
|
Project 5 |
5
|
Project 6 |
40
|
Credit will be given only for original work.
The Mercer University Student Handbook, including its provisions for
academic honesty (including plagiarism), applies to all Mercer
students.
Project reports are to be submitted complete, not as
incremental partial submissions.
All course work is categorized as either Direct or
Non-Direct (but not both). More information about the Direct and
Non-Direct categories is contained in the Direct and Non-Direct and Report Logs. Please read these pages very
carefully.
Instruction Time
Federal and regional accreditation requirements stipulate that
a 3-credit hour course must include 150 minutes of direct instruction
time per week. For this course, that direct instruction time
includes"
- Collaborative discussions with other students regarding the
content of readings assigned for the course.
- Collaborative discussions with other students regarding the
content that goes beyond readings assigned for the course, but is
not part of work on the projects assigned on the syllabus.
- Collaborative development of generic technology that may be
useful for your project(s), but is not, in its generic form, part of
your project.
In addition to the 150 minutes of direct instruction time each
week, students are expected to spend a minimum of 300 additional
minutes per week completing reading and writing assignments:
- Doing the assigned reading.
- Working on the projects assigned on the syllabus.
More information about the Direct and Non-Direct categories is
contained in the Direct and
Non-Direct and Report Logs. Please
read these pages very carefully.
Use the Report Logs to help you to manage your time and keep on
schedule. You should schedule your work evenly throughout the term.
If you fall behind schedule for your Direct Activities, and you
"catch up" by your last Direct Activity Report, your previous Direct
Activity Report grades can be raised to reflect your success in
meeting this requirement, provided that your previous Direct Activity
Reports were submitted in a timely manner. Direct Activity Reports
not submitted in a timely manner will receive a grade of 0 (zero)
unless the professor has approved an extension in advance.
The Non-Direct Activity reports do not receive a separate
grade, but are used to help in evaluating your project reports.
More information about project grading is contained
in the Undergraduate Generic Project Rubric .
If you have a question about any of this, please ask.
Back to Top
Assignments
- Purpose of projects:
- Use the projects to develop your capabilities, and
- Use the projects to demonstrate your capabilities.
- Deliverables for all projects:
All course work is categorized as either Direct or
Non-Direct (but not both). Read Direct
and Non-Direct and Report Logs
before continuing. Please read these pages very carefully.
All Direct Activity Reports include a Direct
Activity Log, and may include additional supporting material at
your discretion.
All Project Reports include a Non-Direct
Activity Log, in addition to your work on the project.
- Projects shall be delivered either via the course FTP
site.
- Project reports for Projects 1 - 4 should each be a single, standalone .pdf
document, with the Bookmark feature used to support easy document
navigation. Note that both MS Word and LibreOffice (which is free
open-source software) support bookmarks, and will carry the
bookmarks over into the pdf document when they convert your .docx,
.odf, or whatever file type to PDF.
- Project reports for Projects 5 - 6 should be one or a small number of
IPython notebooks.
- Project reports should focus on the development and/or
maintenance that you actually do. Reports should not focus on
summarizing or explaining the text or other materials.
- Inclusion of screenshots demonstrating your work, and code
you actually wrote for the project, are appropriate. Long code
listings can be placed in appendices if doing so does not
interfere with you presenting your work on that code in the body
of the text.
- Your report should be organized in such a way as to make
the topics that you want credit for covering easy to find, and
demonstrate your capabilities clearly and convincingly. Everything
you want considered for credit, including code and tests
(including test results), should be included in the report.
- Subject to the specified requirements for each project,
the project can be a single, integrated project that
tries to actually do something, or a collection of exercises that
demonstrate your capabilities but don't accomplish anything else,
or any combination of these two alternatives that you find
convenient.
- You may include other material outside of the report (on
the FTP site), if you wish, but this material may or _may not_ be
considered in evaluating your work.
- For each capability that you demonstrate within a report
or major section of that report, you may present only the final
result of your work; you need not demonstrate every step in the
development of that result.
- Some suggestions for doing a project are
contained in the One Way to Do a Project
page.
- Getting Started Python/Python Consoles (Solo or Team)
The first few weeks assignments will all be based on the work below. These
assignments will be specified very soon. In the meantime, please get started, and
save your work, as specified below. You will turn it in for credit in your assignments!
- Read
http://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261 and
http://www.nature.com/naturejobs/science/articles/10.1038/nj7493-523a
Run the examples at
http://www.nature.com/news/ipython-interactive-demo-7.21492. Nothing from this work
goes into your project report, but you will not understand what we are trying to do
without this reading and code execution.
- Install Anaconda for Python 3.4. (Be careful; the default Anaconda download is for Python 2.7. Make sure
you download and install the Python 3.4 version.) Work your way through the Spyder tutorial linked from the
Object inspector pane (top right in the Spyder window. Follow the tutorial's suggestion to use an IPython console
(rather than a Python console0 within Spyder. Note that this is an IPython console, not an IPython notebook, which
we will use later.
- Work your way through the official Python 3 tutorial:
- Find out how to save the work in your IPython console, so that you can include it in your
report. For example, under some OS's, right-clicking in the console will bring up a menu with the option
to "Save as HTML/XML".
- Enter the example code from the tutorial (Do not copy and paste!),
and run that code in your IPython console.
- Then make changes to that code to adapt it to do something a little different; run that
code in your IPython console.
- For this part of Project 1, you should work with essentially all of the code in the tutorial.
- Work your way through the chapters of "Learning Python" by Lutz: Preface, Chapters 1, 4, 10, 26, 27, and 28.
- Find out how to save the work in your IPython console, so that you can include it in your
report. For example, under some OS's, right-clicking in the console will bring up a menu with the option
to "Save as HTML/XML".
- Enter the example code from the tutorial (Do not copy and paste!),
and run that code in your IPython console.
- Then make changes to that code to adapt it to do something a little different; run that
code in your IPython console.
- For this part of Project 1, you can select a subset of the text's code for your work.
- Course Part 1/2: Python with an IPython Console
- In this part of the course, we learn enough Python to start Part 2 of the course.
- For this part of the course, use Spyder with an IPython console as your development environment.
- Record your work by using the "Save as HTML/XML" option in the IPython console. (Right-click
in the IPython console pane to access this option.) You can and should
copy and paste from these saved documents into your project reports.
- Work your way through the assigned sections of the Python tutorial (see "Other Resources", above).
- "Work your way through" means:
- Read the assigned sections in the tutorial, and in the "Learning Python" text.
- Except as noted in each project assignment (below), run the tutorial's code (without cutting and pasting!), to get
and idea of how the code works. Your coverage of the tutorial's code should be thorough/complete.
- Expand and check ("extend") your understanding of the code by writing some similar but different code, and running it.
Again, this should be thorough and complete.
- Write and run some additional code of your own devising based on the assigned sections in "Learning Python". This code
is not expected to provide thorough coverage of the material covered in "Learning Python".
- As you enter and run code in the IPython console, add Python comments at the input prompt to briefly explain what
your are doing.
- You may find that the tutorial does not always provide all of the detail that you wish. In such cases, you can look the
same topic(s) up in "Learning Python". This may lead you to read some sections of "Learning Python" that were not specified
in the project assignment.
- Project Assignments:
- Project 1
- Download and install Anaconda. Make sure that you have version 3.4 of Python.
- Work your way though the Spyder tutorial, which is linked from the "Object Inspector" pane in
the top right of the Spyder window. Follow the Spyder tutorial's advice to use an IPython console, rather than
a Python console. This means that, when the Python tutorial and "Learning Python" show use of a Python console
for this and later assignments, you will ignore that direction, and use an IPython console instead. This will
be easier, and more productive.
- At the end of the Spyder tutorial, notice how little code it takes to make some decent quality graphics.
- Work your way through the Python tutorial sections 1 through 3, and read "Learning Python" Preface and Chapter 1.
(There is no code for you to write based on Chapter 1 of "Learning Python". For the remaining assignments, you
should write and run some code based on the assigned reading in "Learning Python".)
- Don't panic when the Preface tells you that you have to do more than is feasible for this course. We are not going
to do (nearly) as much as the author advises.
- Project 2
- Work your way through the Python tutorial sections 4 and 5, and read "Learning Python" Chapters 4 and 10.
For this and the remaining Part 1 assignments, you should thoroughly run and extend (as described above)
the code from the tutorial, and write and run some code based on the assigned reading
in "Learning Python".
- Read sections 6 through 9 of the tutorial; you do not need to do any programming from these sections, but
you may well need to have seen them when you get to later work in this course.
- Project 3
- Work your way through the Python tutorial section 9. For this and the remaining Part 1 assignments,
you should thoroughly run and extend (as described above) the code from the tutorial. Please be very thorough in this programming, more so than in the previous
assignments. This is the first of our two projects on object-oriented programming, which will be important to
us as we go on. OOP is different from procedural programming, and takes some learning! OOP is also pretty much
the most important approach to programming today (with some exceptions).
- Show how well you can do!
- Project 4
- Work your way "Learning Python" Chapters 26 through 28.
You should create and run your own examples based on this reading. For this and the remaining Part 1 assignments, you should thoroughly run and extend (as described above)
the code from the tutorial. Please be very thorough in this programming, more so than in the previous
assignments. This is the second of our two projects on object-oriented programming, which will be important to
us as we go on.
- Show how well you can do!
- Course Part 2/2: IPython Notebooks and Engineering Data Analysis and Visualization
- For this part of the course, use IPython notebooks (rather than Spyder and consoles) as your
development environment.
- For this part of the course, use "IPython Interactive Computing and Visualization Cookbook" as your text.
- Project 5
- Work your way through Chapter 1 ("Getting started with Python for Science") of the "SciPy Lecture Notes";
see "Other Resources", above.
- Read "IPython Interactive Computing and Visualization Cookbook", Preface and Chapter 1, with emphasis
on the first three notebooks" "notebook", "pandas", and "numpy". (But do read the whole chapter.)
Use Git (see "Software", above) to download the code and data files (see "Other Resources"), above.
Run these three notebooks in as IPython notebooks. Also try (code and run) some variations of these
notebooks. These variations may be quite simple
- Project 6 - DIY
- Create a project of your own choosing, and develop it. It should be an IPython notebook project,
emphasizing data analysis and/or visualization using the Python libraries referenced above. You may also
emphasize IPython's documentation capabilities if you wish. You may use one or more of the IPython textbook
recipes for inspiration if you wish, but you are free to develop a project unrelated them if you wish.
- For this project, it is better if your code is interactive.
- Using GIT (Chapter 2 of the text) for collaborative work with your team is a good idea, but not required.
The text may encourage you toward GitHub; I might encourage your toward BitBucket.
- Totally optional: Chapter 6 or Chapter 7 could be a good source of ideas and technology.
- Totally optional: pp. 390 - 394 of the text presents a recipe for simulating an ordinary differential
equation (ODE) with SciPy. Pp. 394 - 399 deals with a partial differential equation (PDE). Some engineers
may be interested in working with differential equations for part or all of this project. But there are
other recipes for other topics, and you might prefer one or more of them. Or you may have an idea of your own,
without reference to the text's recipes.
- Imagine that this work will be shown to the hiring manager for a job that you really want, and
that needs these data visualization and/or analysis capabilities. Show how well you can do!
- tbd
- TBD
Back to Top
Additional Information
- Asynchronous Learning Nets (ALNs)
-
- Self Study: You study the texts and any other course study
material on your own(team).
- Collaborative Projects: After your self-study, you
collaborate (via the Internet [email]) with your partner(s) to
produce a team product. Your collaborative work is substantial,
asynchronous, and rapid.
- This course is an online learning course. Please read this
Online Learning web page
regarding online learning in this course and this program.
Back to Top
- Subscribe to the course email listserv. Your professor can tell you how to do
this.
- Study the assigned material.
- Write and read email messages about ideas, problems and
solutions to do with the assigned study material.
- Do the assigned work, deliver the assigned deliverables.
- Write and read email messages (to/from the listserv) about
ideas, problems, projects, and solutions to do with the assigned
homework.
- Review the deliverables produced by other people.
Changes to this Syllabus:
There will be changes to this syllabus, so check back
frequently, and don't forget to hit "Reload" or "Refresh".
Schedule of Assignments and Events (tentative)
Start Date
|
End Date
|
Activity/Event
|
August 18, 2015 |
December 4, 2015 |
Course in Progress |
August 18, 2015 |
August 31, 2015 |
Work on Project 1 |
|
August 31, 2015 |
Project 1 due |
|
September 14, 2015 |
Direct Activity Report 1 due
Project 2 due |
|
September 28, 2015 |
Project 3 due |
|
October 19, 2015 |
Project 4 due |
|
October 26, 2015 |
Direct Activity Report 2 due |
|
November 2, 2015 |
Project 5 due |
|
December 4, 2015 |
Direct Activity Report 3 due. |
|
December 4, 2015 |
Project 6 due. |
|
December 4, 2015 |
Course ends. Firm date. |
Notes: The course begins at midnight (12:00 am) on the first day of class (see schedule above), and ends
at 11:59 pm on the last day of class. Assignments are due at any time during the day specified on the schedule,
that is, before 11:59 pm on that day. All times are Macon, Georgia (Eastern time zone) times.
Back to Top