Modeling Complex Systems


Home TOC Discussion Forum


Description of Studies: Year One

version 1.4
02 September 2019




The references that we cite for the subjects and topics listed below are referred to by only one author: usually the name of the first author credited with a given work. We have done this to simplify the citations, but many of these references have multiple authors. We apologize in advance to the authors whose names we have omitted from the citations.


Mathematics is the language we will be using to describe the systems we choose to study, and it will also be our means of describing the behavior of those systems. As such, it behooves us to learn to communicate in mathematics as easily as we do in our own native languages.

The reader may have studied mathematics throughout their schooling up to this point, but unless you have studied to become a mathematician, you probably have learned only mathematical "phrases" applicable to a given class of problems.

In effect, from pre-school through graduate school, what is characterized as mathematics is really the study of algorithms. Most likely the only real math course most scientists, engineers, biologists, economists, and a host of people from other disciplines have encountered, is Euclidean geometry. It is also the course you probably were most glad to complete and forget, except when a theorem or two was needed to solve a problem in trigonometry.

The reasons for this antipathy are many, but suffice to say that your didactic experience was probably not conducive to promoting either the joy or the value of "pure" mathematics. But sadly, it has left you without the vocabulary, grammar and syntax necessary to develop new mathematical expressions (algorithms) when faced with a situation that requires creativity rather than simply recall. Additionally, without a firm grounding in proving results, you may find yourself lacking in the skills and confidence necessary to convince both yourself and others that your approach to solving a problem will yield a viable solution.

Since we are helping you prepare to solve cutting edge problems, you had best have the proper tools to do so, and mathematics will be the most important tool in your kit.

A look at our math curriculum in the Biosystems Studies Year One table will show you how we are going to help you start to learn how to speak the full language of mathematics. Plus we have made an effort to recommend resources that we think will help you enjoy the process.


Mathematics studies are on the agenda for five out of the six years of the MCS process. For an overview of these studies be sure to consult the Biosystems Curriculum table.

The topic most often disregarded in applied mathematics curricula at the college level is Analysis. Yet it is here that you will find the true nature and language of mathematics. A very nicely written and gentle introduction to the topic is available in Laura Alcock's "How to Think About Analysis". Following that introduction is Terence Tao's challenging but highly rewarding series "Analysis I" and "Analysis II". With these under your belt much of the fog that accompanies the study of applied math will disappear, as you will be able to understand the why and not just the how of solving a class of problems.

Another mathematical topic that is given short shrift in other disciplinary studies is Logic. Since mathematics is a language designed to express logic in a communicative fashion, it behooves us to understand what we mean by logic, and to be able to use it correctly in our problem solving and decision making. Most importantly you will find that our networked solutions to problems will be based on inference, and it will be of prime importance that our inferences are spot on. You will be given many opportunities to build inference diagrams while reading Patrick J. Hurley's "Logic: A concise introduction".

We will then introduce you to two fundamental branches of mathematics which will underpin much of the work we do while using the MCS process. These include Linear Algebra and Discrete Mathematics. Linear Algebra is a means for solving problems consisting of many dimensions, especially those couched in a dynamic framework. Expanded to tensor analysis and quaternions, it will probably end up being the most valuable mathematical tool in your kit. Philip Klein and Stephen Friedberg will lead us up this most useful path.

Discrete Mathematics is a catch-all term for a number of topics not approachable by many of the continuous oriented mathematical topics like Calculus. You will learn to count in ways you never dreamed possible in preparation for our future study of probability and statistics. It is here, within the domain of this topic, that you will learn to work with relations and functions. These provide the links in our networked descriptions of systems. They are the machinery that will lie under the hood of our inferences. Much to your future benefit, Bernard Kolman's text "Discrete Mathematical Structures" is oriented toward computer science, as is Philp Klein's approach to Linear Algebra in his "Coding the Matrix".

Since we will need to convert our logical and mathematical expressions into a language that is acceptable to computational devices, we will use Jeremy Kun's work "A Programmer's Introduction to Mathematics" to guide us through this process. And like any good tour guide, Jeremy will both entertain and delight, while introducing you to some of the most interesting aspects of the aforementioned topics. In addition he will challenge you to attempt to solve problems using your newly developed skills, and provide a nice safety net lest you fail on your initial attempts. In other words, we think that failure in the development of new skills is a necessary aspect of the learning process. Failures at this stage are not to be interpreted as deficiencies on the part of the student, but should to be treated as learning opportunities.


Computer Science
In order to simulate and examine the behavior of complex systems, we will need to turn our mathematical logic and network diagrams into algorithms that computer software and hardware can understand. To do this, of course, we will have to write programs in one or more of the languages that populate the realm of computer science. Choosing the appropriate programming language for a given task is a difficult decision that depends on a lot of factors beyond the scope of this discussion. Suffice to say that we have selected several languages on the basis of our years of experience writing software for a variety of problem solving situations. We realize that many of our readers may be more comfortable using languages different from our selections, and we certainly have no objections to them doing so.

Our list for this first year is relatively short: Java, Python, MATLAB, and for graphics programming, JavaFX, although the graphics packages associated with Python and MATLAB may suffice.

As it turns out we may want to model our programs as well as the problems we are trying to solve. This often helps give the reader of your programs a quick overview of their structure. Sometimes a picture is worth a thousand lines of code. We'll use a version of UML in order to do this.


We won't be using UML to do our programming design, but simply to describe the static and possibly the dynamic nature of our programs in visual terms.
We are going to assume that you have had some experience writing in one or more computer languages. If you haven't, or have never taken a rigourous course in programming: not to worry. We have a plan B for you detailed in the Supporting Resources column of the Studies table (Biosystems Studies Year One).

Far and away the best resource to learn the features of the Java programming language is Cay S. Horstmann's "Core Java SE 9 for the Impatient" 2nd edition, at the time of this writing.

To examine the library of code available to the Java programmer - without having to decipher where to find it it from the library index itself - we refer you to Herbert Schildt's "Java: The Complete Reference, 11th ed.". To introduce you to the new means of organizing your Java code we refer you to Nicolai Parlog's "The Java Module System".

Plan B: For those of you just starting out in the world of formal programming, we have listed Horstmann's "Core Java" series of two large volumes among the supporting resources. In addition, for a delightful and easy introduction to the nature of the Java language, there is no better read that includes executable examples than that of Ken Arnold's (et al.) "The Java Programming Language, 4th ed.".

Although these references describe the vocabulary, grammar, and syntax of the Java language, they will not help you very much to learn how to write "good" code. They are not designed to do that. For that we introduce you to computer science by example using Robert Sedgewick's "Computer Science: An interdisciplinary approach", chapters 1 - 4. There's even a series of video lectures by Sedgewick which you can view at your leisure.

The same sort of introduction is available for Python, and as a plus, Robert Sedgewick has a book entirely devoted to Python which is a direct translation of the first four chapters in his "Compute Science..." text cited above. The two books represent a kind of Rosetta Stone for understanding and seeing the relationships between the two programming languages.

We also recommend Sedgewick for a formal introduction to designing algorithms. This is important because half the work you will be doing in modeling complex systems is designing algorithms. You will find Sedgewick's "Algorithms, 4th ed." up to the task. He uses the Java language in his examples shown in the text.

We also recommend reading about the history and development of computer science from its historical origins stemming from the prescient works of Alan Turing. This history and associated technical discussions are presented in two separate books: one by Chris Bernhardt, and the other by George Dyson.

MATLAB, really a package of programming tools with its own scripting language, is introduced using its own fine library that is available from The MathWorks website.

That completes our description of the heart and soul of the principal resources associated with the subject of Computer Science that we hope you can "cover" in your first year. There are also a large number of supporting resources listed in the Studies table that will help elucidate these topics in greater detail at a somewhat slower and more detailed pace, if needed.


Our focus on biology will start at the molecular level. You will find this approach in both of the resources that we recommend in order to get started in this subject: Jane B. Reece et al.'s "Campbell Biology, 10th ed." and Stephen Nowicki's video lecture series (with accompanying course guidebook) "Biology: The science of life." It's almost as if Nowicki and Reece's group had collaborated in developing these resources.

You wil find this path a great introduction to Molecular Biology, a topic that we examine later in this first year by reading several chapters (TBD) from David P. Clark's "Molecular Biology, 2nd ed." We'll also introduce ourselves to the important topic of Biotechnology, on which all advances in our understanding of biology at the molecular and cellular level depend. To accomplish this we will refer to David P. Clark's companion text "Biotechnology, 2nd ed.". A full study of Molecular Biology need wait until year four when we have mastered Biochemistry.

A subject widely overlooked in undergraduate studies programs of biosystems is that of Information. We consider Information to be of equal importance to Physics, Biology or Chemistry, and provide several important references to information topics throughout our Biosystems Resources table. The importance of information to the understanding of the operation of biosytems is explicitly pointed out by Stephen Nowicki his lecture series (see above). A good informal introduction to this topic with respect to biosystems, and its contribution to both the ordered and disordered states of these systems, can be found in Paul Davies "The Demon in the Machine: How hidden webs of information are solving the mystery of life".

The study of Biology can be overwhelming in detail given the sheer number of interacting components contained in any organism, or even in a cell. We provide a way of stepping back to look at the forest instead of the trees (used metaphorically here) by studying the topics of Biophysics and Systems Biology. In fact, our entire MCS process is founded on the principles of operation found in the study of these topics. Therefore these topics and texts will be our constant companions throughout the six year MCS Program.

Our resources for this first and following years include Thomas M. Norlund's "Quantitative Understanding of Biosystems: An introduction to biophysics", and Eberhard O. Voit's "A First Course in Systems Biology". Both of these resources will also serve as an introduction to computational methods in the biological sciences.


There are currently two editions of Norlund's text. We recommend starting with the first, as it has a much better binding than the second, and is nearly identical in content except for the last couple of chapters, which are really oriented toward biotechnology.

Holding to our promise of keeping the MCS approach relevant to our goals at all times, we introduce the topics of health related to Cancer, Aging, Immunology, and Nutrition. We will at least read the opening chapters of the following resources in this first year to help motivate our foundation studies. These resources include Robert A. Weinberg's "The Biology of Cancer, 2nd ed.", Roger B. McDonald's "Biology of Aging", Judith Owen's "Kuby Immunology, 7th ed.", and Sareen S. Gropper's "Advanced Nutrition and Human Metabolism". If nothing else, delving into these texts will reveal the depth of learning required to master an understanding of these topics sufficient to identify and solve their related problems.


Our recommended chemistry sequence over the course of the MCS program is quite straightforward compared to Biology. The sequence reads like this: Inorganic, Organic, Biochemistry, Physical Chemistry, Quantum Chemistry.

In this first year we highly recommend Peter Atkins' "Chemical Principles: The quest for insight, 5th ed." Atkins also has a very nice introduction to chemistry penned in his contributions to the "A Very Short Introduction" series of books from Oxford University Press. The title of his contribution is simply "Chemistry".

We will also take a look at the fundamentals of Computational Chemistry using Michael J. Pilling's "Reaction Kinetics".


One of our favorite aphorisms is that "Reason cannot get beyond its own ignorance". The best analysis and the best model cannot accurately predict the behavior of a system if it lacks the necessary information to do so. And what kind of information? When do we know we have enough? What can we safely ignore and which is absolutely critical to our success? What constitutes information?

This last question is the subject of the first chapter of one of our readings in this first year: James V. Stone's "Information Theory: A tutorial introduction". This is a highly technical read that will put your information analysis skills on a firm computational basis. The last chapter explores some practical applications including one of particular interest to our studies: sec 9.4 "The Human Genome: How much information?". Section 9.3 should also capture your attention: "Does Sex Accelerate Evolution?".

Given the mathematical sophistication needed to access the "information" in this text, you may be rereading it several times over during the course of the MCS program.

We have also included a much more accessible introduction to the nature of information among the supporting resources for this subject which is also a publication of the Oxford University Press "A Very Short Introduction" Series. That would be Luciano Floridi's "Information". Ciao, Luciano, et grazie mille per il tuo libro.


Education & Psychology
Systems engineering is a discipline that attracts generalists in a world that esteems specialization. Is there an advantage to being a generalist when trying to solve a problem that arises out of the context of a complex system? Which is the better problem solving mix: a team of technical specialists led by a manager who by training and necessity is also a specialist? Or, the same team led someone trained only in management? Or a team of technical specialists led by an individual who is comfortable in a technical discussion with any member of that team?

If you have read through our introductory material, and even glanced at our biosystems curriculum you know what would be our choice. To help you understand the value of being an accomplished generalist in a world of specialization we refer you to David Epstein's "Range: Why generalists triumph in a specialized world."

Why do human beings behave the way we do, and how might that affect our decision making capability? We begin this discussion by recommending Edward O. Wilson's "On Human Nature", and will continue it throughout the MCS program with readings from a wide variety of authors including Steven Pinker, B. F. Skinner, Simon L. Lewis, Robert M. Sapolsky, Daniel Goleman, and Mihaly Csikszentmihalyi [sic]— to drop the names of just a few of the important contributors to the topics of Human Nature, Behavior, Intelligence, and Creativity.


Systems Engineering
Systems engineering attempts to pull all the subjects that we study in the MCS program into one comprehensive whole. You need a framework to do this and the one that we find most tractable is that of a network. We introduce you to networks by recommending Mark Newman's "Networks: An introduction". Newman's book, first published in 2010, is a tour de force description of the most important types of networks, and an introduction to the computer algorithms needed to implement them. As such, it serves yours and our purposes perfectly. Moreover, it describes what is meant by a network model of a complex system, which is exactly what we hope you will learn to construct as a result of your studies associated with the MCS curriculum.

You will want to read the first two chapters of Daphene Koller's "Probabilistic Graphical Models: Principles and techniques" to see a very sophisticated means of using and applying network-based models. By the end of the MCS program you will be building and appyling probabilistic graphical models to solve a wide range of problems.

Although a network formulation describes the connectivity of the various components that make up a system, it does not normally specify the behavior of the components nor the complete nature of the "signals" that are being communicated over that network. We'll spend the following years of the MCS program discussing these matters in depth. Suffice to say that there are two broad categories of behavior associated with a system that we would like to model using a network configuration. These are continuous system behavior and discrete event system behavior. Discrete event systems are familiar to systems engineers but unlikely to be familiar — in those terms — to students or practitioners outside that discipline. Therefore we hope to introduce you their description in Edward D. Lazowska's "Quantitative System Performance: Computer system analysis using queueing network models".

Of note is the fact that there is no one modeling technique, either structurally or behaviorally, that will serve to model any and all of the systems that you are likely to encounter over the course of a working lifetime. We will spend no small amount of time discussing many of the alternatives from strictly mathematical formulations to graphical (pictorial) representations, to representations that depend heavily on numerical methods, and to those where our only recourse is a qualitative description.