"The course is designed as an introduction to `Python` programming assumming no prior experience of programming whatsoever. The assessment is performed through a series of checkpoints. The total amount of work expected for this course (equivalent to the number of credits awarded for the successful completion of it) is **100 hours**, out of which about **3 x 7 = 21 hours** will be spent in in-class **workshops**, and the **rest (~80 hours)** are to be used for **individual study**. \n",
"The course is designed as an introduction to `Python` programming assumming no prior experience of programming whatsoever. \n",
"\n",
"The assessment is performed through a series of checkpoints. For some checkpoints you will be given a working part of the final code needed, with gaps for you to fill in (which will be denoted in the code cells by `...` - the gaps most often will need to be filled with several lines of code, not just the line where the dots are present).\n",
"\n",
"The total amount of work expected for this course (equivalent to the number of credits awarded for the successful completion of it) is **100 hours**, out of which about **3 x 7 = 21 hours** will be spent in in-class **workshops**, and the **rest (~80 hours)** are to be used for **individual study**. \n",
"\n",
"\n",
"***Note: It is not feasible to expect to parse and complete the entire course material exclusively during the allocated in-class workshops.***\n",
"***Note: It is not feasible to expect to parse and complete the entire course material exclusively during the allocated in-class workshops.***\n",
"\n",
"\n",
...
...
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
# Before Course Starts
# Before Course Starts
Welcome to Scientific Programming! This course aims to provide a gentle introduction to `Python` programming, making use of Jupyter notebooks.
Welcome to Scientific Programming! This course aims to provide a gentle introduction to `Python` programming, making use of Jupyter notebooks.
## Expectations
## Expectations
The course is designed as an introduction to `Python` programming assumming no prior experience of programming whatsoever. The assessment is performed through a series of checkpoints. The total amount of work expected for this course (equivalent to the number of credits awarded for the successful completion of it) is **100 hours**, out of which about **3 x 7 = 21 hours** will be spent in in-class **workshops**, and the **rest (~80 hours)** are to be used for **individual study**.
The course is designed as an introduction to `Python` programming assumming no prior experience of programming whatsoever.
The assessment is performed through a series of checkpoints. For some checkpoints you will be given a working part of the final code needed, with gaps for you to fill in (which will be denoted in the code cells by `...` - the gaps most often will need to be filled with several lines of code, not just the line where the dots are present).
The total amount of work expected for this course (equivalent to the number of credits awarded for the successful completion of it) is **100 hours**, out of which about **3 x 7 = 21 hours** will be spent in in-class **workshops**, and the **rest (~80 hours)** are to be used for **individual study**.
***Note: It is not feasible to expect to parse and complete the entire course material exclusively during the allocated in-class workshops.***
***Note: It is not feasible to expect to parse and complete the entire course material exclusively during the allocated in-class workshops.***
For more information about the course, please watch the following online mini-lecture:
For more information about the course, please watch the following online mini-lecture:
-[SciProg - L01 - Introduction and course structure (video)](https://ed-ac-uk.zoom.us/rec/share/zOy03-qGQiinUqbrxFLDvytIvqRvhl7vnh1sq29zMD0tXhtyZkMcPLLtfK3F208n.D_fLStkzPUU6xdx6)
-[SciProg - L01 - Introduction and course structure (video)](https://ed-ac-uk.zoom.us/rec/share/zOy03-qGQiinUqbrxFLDvytIvqRvhl7vnh1sq29zMD0tXhtyZkMcPLLtfK3F208n.D_fLStkzPUU6xdx6)
-[SciProg - L01 - Introduction and course structure (pdf)](../Slides/sciprog-L01-introduction.pdf)
-[SciProg - L01 - Introduction and course structure (pdf)](../Slides/sciprog-L01-introduction.pdf)
## No Requirements
## No Requirements
This course is designed so that it can be performed entirely within your browser, not needing any local installation of Python or any other programming environments. This also means that it can be performed on any platform (Windows, Linux-based, MacOS, Chromebook), though access to a keyboard is highly beneficial.
This course is designed so that it can be performed entirely within your browser, not needing any local installation of Python or any other programming environments. This also means that it can be performed on any platform (Windows, Linux-based, MacOS, Chromebook), though access to a keyboard is highly beneficial.
By design, you will not need to worry about losing your computer or deleting files by mistake, as your progress throughout the course will be safely saved in the cloud.
By design, you will not need to worry about losing your computer or deleting files by mistake, as your progress throughout the course will be safely saved in the cloud.
In order to achieve this, we will be using the [Noteable](https://noteable.edina.ac.uk) service developed here, at the University of Edinburgh. This will provide a central server (and kernel) for Python, and so a medium upon which we can perform the actual programming, exclusively within Jupyter Notebooks.
In order to achieve this, we will be using the [Noteable](https://noteable.edina.ac.uk) service developed here, at the University of Edinburgh. This will provide a central server (and kernel) for Python, and so a medium upon which we can perform the actual programming, exclusively within Jupyter Notebooks.
**When you do checkpoints please first rename the checkpoint notebook which contains your solutions as CheckpointN_YourUUN, eg. Checkpoint1_s1234567**.
**When you do checkpoints please first rename the checkpoint notebook which contains your solutions as CheckpointN_YourUUN, eg. Checkpoint1_s1234567**.
This is to avoid them being possibly overwritten by mistake and to allow us to distribute extra information if needed.
This is to avoid them being possibly overwritten by mistake and to allow us to distribute extra information if needed.
> It is worth (for offline use and for the future) to download and install [Anaconda](https://www.anaconda.com) on your personal computer so that you will always have access to a Python + JupyterLab environment (this will also be useful for future courses where Jupyter notebooks will be used). Please do this **now**!
> It is worth (for offline use and for the future) to download and install [Anaconda](https://www.anaconda.com) on your personal computer so that you will always have access to a Python + JupyterLab environment (this will also be useful for future courses where Jupyter notebooks will be used). Please do this **now**!
> Once installed, you can open the Jupyter-notebook server (that looks just like the server in Noteable on which the current course runs) by searching for ***jupyter-notebook*** in your computer's applications or by typing ***jupyter-notebook*** into a terminal window of your operating system. More information can be found in the links at the bottom of this page.
> Once installed, you can open the Jupyter-notebook server (that looks just like the server in Noteable on which the current course runs) by searching for ***jupyter-notebook*** in your computer's applications or by typing ***jupyter-notebook*** into a terminal window of your operating system. More information can be found in the links at the bottom of this page.
## Jupyter Notebooks
## Jupyter Notebooks
Jupyter Notebooks are the most widely used means of communicating and performing interactive computing. In a notebook, you can blend computations and their outputs with explanatory text, mathematics and images.
Jupyter Notebooks are the most widely used means of communicating and performing interactive computing. In a notebook, you can blend computations and their outputs with explanatory text, mathematics and images.
> We think there is value in practising what you teach, so accordingly this entire course is written and delivered entirely within **Jupyter notebooks**!
> We think there is value in practising what you teach, so accordingly this entire course is written and delivered entirely within **Jupyter notebooks**!
The notebooks consist of cells, of which there are 2 types:
The notebooks consist of cells, of which there are 2 types:
-***Code cells*** that allow you to type Python code, perform calculations, plotting and anything you may want
-***Code cells*** that allow you to type Python code, perform calculations, plotting and anything you may want
-***Markdown cells*** that enable you to type in Markdown format blocks of text, equations (using LaTeX style), include links and images
-***Markdown cells*** that enable you to type in Markdown format blocks of text, equations (using LaTeX style), include links and images
You will see the different types of cells and their usage all throughout the course, as the course notes comprise both *Markdown cells* explaining different concepts in programming, physics and mathematics, as well as *Code cells* that can be executed in-place, interactively, so you can see what exactly specific bits of code produce as an output.
You will see the different types of cells and their usage all throughout the course, as the course notes comprise both *Markdown cells* explaining different concepts in programming, physics and mathematics, as well as *Code cells* that can be executed in-place, interactively, so you can see what exactly specific bits of code produce as an output.
## Questionnaire
## Questionnaire
Please complete the [Start of Course Questionnaire in Learn](https://www.learn.ed.ac.uk/ultra/courses/_108405_1/outline/assessment/_9437648_1/overview?courseId=_108405_1)
Please complete the [Start of Course Questionnaire in Learn](https://www.learn.ed.ac.uk/ultra/courses/_108405_1/outline/assessment/_9437648_1/overview?courseId=_108405_1)
You are now ready to move on to [Week 1](Week1.ipynb) and begin the actual course! Have fun!
You are now ready to move on to [Week 1](Week1.ipynb) and begin the actual course! Have fun!
## Additional Information
## Additional Information
If you are so-inclined, more information about the infrastructure and philosophy of Jupyter can be found directly at the source, [Jupyter.org](https://jupyter.org/try-jupyter/retro/notebooks/?path=notebooks/Intro.ipynb).
If you are so-inclined, more information about the infrastructure and philosophy of Jupyter can be found directly at the source, [Jupyter.org](https://jupyter.org/try-jupyter/retro/notebooks/?path=notebooks/Intro.ipynb).
For a quick, simple guide to the Jupyter environment you can consult [Datacamp](https://www.datacamp.com/tutorial/tutorial-jupyter-notebook).
For a quick, simple guide to the Jupyter environment you can consult [Datacamp](https://www.datacamp.com/tutorial/tutorial-jupyter-notebook).