Skip to content

Commit 5fa0fd8

Browse files
Merge pull request #10 from TeachBooks/week-1-1-suggestions
Week 1 1 suggestions
2 parents 56d061f + 49018b8 commit 5fa0fd8

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

book/computers.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ Essential components of a typical computer. In particular, we are interested in
2525

2626
Although it is not the focus of this book, it is important to recognize the complexity in hardware, software and components that we often take for granted in modern computers (similar diagrams can be imagined for everyday devices like your cell phone). Of all these components, our work in scientific computing generally focuses on the software part of a computer, which can be broken down into two parts: the _system_ and _application software._
2727

28-
The _system software_ includes the _operating system_ (OS) of a computer and the _drivers_ that allow the OS to be run on a particular set of hardware. Common examples are the Windows and Mac (Apple) OS's. ALthough the OS on your computer is critical to consider, as we will see later, our goal is to install a few tools (software) that are compatible with our OS/computer and will eventually enable us to ignore the specific OS that we are running, especially when collaborating with colleagues.
28+
## System Software
29+
30+
The _system software_ includes the _operating system_ (OS) of a computer and the _drivers_ that allow the OS to be run on a particular set of hardware. Common examples are the Windows and Mac (Apple) OS's. Although the OS on your computer is critical to consider, as we will see later, our goal is to install a few tools (software) that are compatible with our OS/computer and will eventually enable us to ignore the specific OS that we are running, especially when collaborating with colleagues.
31+
32+
## Application Software
2933

3034
As far as this book is concerned, the _application software_ is where our true interest lies, as it is here where we will be writing programs to solve our problems of interest and collaborate with others. This is where our everyday software tools for scientific computing are categorized, for example, Python, VS Code, Matlab, our web browsers (e.g., Chrome) and much more software! As illustrated in the following figure, "we want to be" working at a relatively high level of application software (e.g., writing Python code to conduct analysis and make interesting visualizations) such that we don't have to worry about which OS we are working on. This is both to allow us to focus on our work, as well as collaborate others.
3135

@@ -40,6 +44,10 @@ Relationship between the code we write, the OS-specific tools we need to install
4044

4145
Of course, there are times when we still need to be conscious of which OS we are running, but this is less frequent, for example, when we are installing the proper version of `conda` or Python, as well as our IDE of choice (e.g., VS Code).
4246

47+
### IDE: Integrated Development Environment
48+
49+
IDE stands for _integrated development environment:_ it is a software that makes it easier to develop code and software, for example, by highlighting code syntax, or including command line interpreters to run the code. There are many IDE's to choose from, and what you end up using can depend on a variety of factors, for example: programming language, complexity of software used during development or simply personal preference. Common IDE’s for engineers and scientists include Matlab, Jupyter Lab, Spyder or Visual Studio Code (VS Code). If none of these software are familiar to you, don't worry: your instructors will help you choose an IDE for your programming needs. For now, all you need to know is that different IDE's is analagous to different web browsers (e.g., Chrome, Firefox, Edge, etc): they run on several different computer operating systems and are used for a very specific purpose.
50+
4351
## Summary of Application Software Goals
4452

4553
Our goal is to write programs on our computer that can function on a wide variety of computers, primarily via relatively high level _application software_. In theory, this is simple: for example, we write code in Python and share it with others. Unfortunately the real world is more complex than that. There is huge variation amongst different computers, and it is not trivial to ensure that a piece of software produces the same results on all computers, let alone being able to run on various operating systems or intermediate application software.

book/environments.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ An environment manager ensures that an environment can be set up and used for a
2323

2424
In a more simple definition, an environment is simply a directory on your computer that contains the source code that has been selected by an environment manager to be compatible with the operating system and hardware on your computer, as well as the source code of the other packages in that same environment. The compatibility between these pieces of software is referred to as _dependency,_ and tools that identify the proper versions of software are called _dependency solvers._ One commonly used example is `conda`.
2525

26-
### How to Create and Environment?
26+
### How to Create an Environment?
2727

2828
In many applications it is sufficient to determine a specific version of Python (e.g., version 3.12) and a list of the software you would like to use, then as an environment manager to download compatible versions and set up an environment. In a simplified view, this is roughly equivalent to downloading source code and putting it in a directory on your computer.
2929

0 commit comments

Comments
 (0)