.. engg3130-coursenotes documentation master file, created by
sphinx-quickstart on Mon Dec 26 10:30:27 2016.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
About the ENGG*3130 Course Notes
=================================
These notes will be an envolving, collaborative effort throughout the term to
collect and maintain resources related to ENGG*3130: Modelling Complex Systems.
This course is built on two intertwining threads, which may seem unrelated at
first, but whose complimentary nature should become more clear as the course develops:
1. Seeing, understanding and modeling real-world phenomena as
*Complex Adaptive Systems*
2. Mastering software concepts, specifically data structures and algorithms,
to model real-world phenomena (and generally improve your efficiency)
This is not a course that teaches you how to program. You've had enough of
those! Instead, you will be encouraged to build your "Programmer's toolbox"
through the use of commonly-used scientific computing tools and practices. This
includes, but is not limited to:
* The `Scientific Python `_ stack
* Virtual environments
* Mastery of a `text editor `_
* Using the `shell `_ via a command-line interface (CLI)
* Version control with `Git `_
* Use of a lightweight markup language (we will mainly use
`reStructuredText `_ but use
`markdown `_ as well)
How this course differs from ENGG*4450
--------------------------------------
ENGG*4450 focuses on the development of large-scale software projects in large
teams (which may, in fact be distributed). There is an emphasis on design,
software processes, and software quality. *This course* focuses on developing
the skillset of the individual and less on team dynamics. It also focuses on
more lightweight software development, for example, code that may be developed
as part of a research project or consulting project rather than a product that
may be shipped and used by thousands or millions of people. While some tools and
practices (e.g. Git for version control) will overlap, we will eschew some
practices (like object-oriented development) in favour of simple, clear code
using a scripted language.