Difference between revisions of "Training:SummerSchool2016:Programme:Intro"

From CAC Wiki
Jump to: navigation, search
(Created page with "==Introduction to Unix Shell Programming== This class serves as an introduction to Linux, the UNIX-like operating system that runs on almost all High-Perfomance and Advanced-...")
 
(Introduction to make and makefiles)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Introduction to Unix Shell Programming==
 
==Introduction to Unix Shell Programming==
  
This class serves as an introduction to Linux, the UNIX-like operating system that runs on almost all High-Perfomance and Advanced-Computing systems. It is intended for users who have little or no experience with UNIX or Linux, and covers material that will help you develop an understanding of the Linux command-line environment, necessary for successful use of the Unix environment. We including basic commands for file/directory management. The emphasis is on a hands-on tutorial approach where practical applications are integrated in the lecture. This course is partly based on the Software Carpentry set of lectures and is conducted by a SWC certified instructor.
+
This class serves as an introduction to Linux, the UNIX-like operating system that runs on almost all High-Performance and Advanced-Computing systems. It is intended for users who have little or no experience with Unix or Linux. The focus is on the common '''bash''' shell. We cover material that helps the user to develop an understanding of the Linux command-line environment, which is necessary for successful use of Unix. We will cover the following topics:
 +
* Moving around and looking at things
 +
* Writing and reading files
 +
* Wildcards and piping
 +
* Shell scripts, variables, and loops
 +
* Working remotely on an HPC cluster
 +
We are taking a hands-on tutorial approach where practical applications are integrated in the lecture. This course is based on the Software Carpentry set of lectures and is conducted by a SWC certified instructor.
 +
 
 +
[https://haschmi.github.io/2016-08-08-uofo-shell-novice/ '''Course site with basic content @ Github''']
  
 
==Introduction to make and makefiles==
 
==Introduction to make and makefiles==
  
make is a tool for managing the building of software and databases. It uses a simple syntax to describe a "dependence graph", which allows the automatic execution of a sequence of commands that rebuild all files of interest. If you are tasked with building and rebuilding a software package that includes many source files, this facility can save you from typing yourself to death. It is included in virtually every Unix system, and is used by almost all software distributions that need re-compilation when installing on a new system. It is no exaggeration to call it one of the most useful Unix tools. This course is also based on the SWC lectures, and includes continuous exercises and live coding.
+
'''make''' is a tool for managing the building of software and databases. It uses a simple syntax to describe a "dependence graph", which allows the automatic execution of a sequence of commands that rebuild all files of interest. If you are tasked with building and rebuilding a software package that includes many source files, this facility saves you from typing yourself silly. It is included in virtually every Unix system, and is used by almost all software distributions that need re-compilation when installing on a new system. It is no exaggeration to call it one of the most useful Unix tools. Course content include:
 +
* Makefiles
 +
* Automatic variables
 +
* Dependencies
 +
* Pattern rules
 +
* Variables
 +
* Functions
 +
This course is also based on the Software Carpentry lectures, and includes continuous exercises and live coding.
  
 
'''Instructor:''' Hartmut Schmider, Centre for Advanced Computing, Queen's University. <br>
 
'''Instructor:''' Hartmut Schmider, Centre for Advanced Computing, Queen's University. <br>
 
'''Prerequisites:''' None.
 
'''Prerequisites:''' None.
 +
 +
[https://haschmi.github.io/2016-08-08-uofo-make-novice/ '''Course site with basic content @ Github''']

Latest revision as of 14:07, 5 August 2016

Introduction to Unix Shell Programming

This class serves as an introduction to Linux, the UNIX-like operating system that runs on almost all High-Performance and Advanced-Computing systems. It is intended for users who have little or no experience with Unix or Linux. The focus is on the common bash shell. We cover material that helps the user to develop an understanding of the Linux command-line environment, which is necessary for successful use of Unix. We will cover the following topics:

  • Moving around and looking at things
  • Writing and reading files
  • Wildcards and piping
  • Shell scripts, variables, and loops
  • Working remotely on an HPC cluster

We are taking a hands-on tutorial approach where practical applications are integrated in the lecture. This course is based on the Software Carpentry set of lectures and is conducted by a SWC certified instructor.

Course site with basic content @ Github

Introduction to make and makefiles

make is a tool for managing the building of software and databases. It uses a simple syntax to describe a "dependence graph", which allows the automatic execution of a sequence of commands that rebuild all files of interest. If you are tasked with building and rebuilding a software package that includes many source files, this facility saves you from typing yourself silly. It is included in virtually every Unix system, and is used by almost all software distributions that need re-compilation when installing on a new system. It is no exaggeration to call it one of the most useful Unix tools. Course content include:

  • Makefiles
  • Automatic variables
  • Dependencies
  • Pattern rules
  • Variables
  • Functions

This course is also based on the Software Carpentry lectures, and includes continuous exercises and live coding.

Instructor: Hartmut Schmider, Centre for Advanced Computing, Queen's University.
Prerequisites: None.

Course site with basic content @ Github