Theme: Scientific Computing
36 matching courses
The Computing Services Department of the University of Liverpool now offer their popular Fortran 90 and High Performance Fortran Courses in a new interactive Web-based HTML format. Both courses have a similar structure. A topic can be selected from the contents page which will display an overview of the selected subject. The user can then either follow a hypertext link to a more detailed explanation or, choose to attempt a programming exercise instead. After the user has finished the exercise, a solution may be viewed. In many cases the user can retrieve a solution template to help get started. Use of these courses for commercial purposes may be available upon request. The traditional paper-based versions of these courses have been used by many UK academic and research institutions and have received good reports - any feedback on the interactive HTML-based versions is strongly welcomed. The paper-based version are still available.
This course is part of the Scientific Computing series.
This course will cover the important programming tasks that used to be messy or complicated in Fortran 77, and can be done more cleanly and effectively in modern Fortran (i.e. Fortran 90/95/2003). It is intended for people who have been using Fortran for many years, but have not been following the recent standards. It is also intended for people who have an older, but still valid, Fortran program and want to clean it up and make it easier to understand and maintain. It will cover only aspects of old Fortran (i.e. Fortran 77) that can be improved by replacing them, and not the totally new aspects.
This course is part of the Scientific Computing series.
This is a basic introduction to modern Fortran. At the end of the course, students should be able to write significant programs in Fortran, and to be able to start working on existing programs written in modern Fortran (i.e. in the Fortran 90/95 style). It will not cover obsolete features of Fortran, some of the more advanced aspects, or most of the extensions introduced by Fortran 2003.
The course has been rewritten in the light of experience from last year, and will include less on the concepts of programming and more on what practical Fortran programmers need to know (such as a session on Fortran I/O).
This course is part of the Scientific Computing series.
Mathematica is a software package for numerical computation, symbolic manipulation and the production of graphics from mathematical functions and data. This course is for beginners and new users of the package and describes basic concepts and use of Mathematica.
This course is part of the Scientific Computing series.
Mathematica is a software package for numerical computation, symbolic manipulation and the production of graphics from mathematical functions and data. This course examines Mathematica's graphical capabilities in more detail than the "Mathematica: Basics" course.
This course is part of the Scientific Computing series.
This course will cover using Mathematica for simple numerical programming, concentrating on linear algebra. It will indicate how it can be used for more advanced work, but not attempt to teach the details. The emphasis will be more on teaching what can be done than on teaching rules for how to do specific tasks.
This course is part of the Scientific Computing series.
This course will cover using Mathematica for symbolic calculations (i.e. ones operating on formulae and not just numbers), concentrating on linear algebra. It will show how to use this to get first and higher order approximations to some linear algebra problems. It will indicate how it can be used for other such work, but not attempt to teach the details. The emphasis will be more on teaching what can be done than on teaching rules for how to do specific tasks.
Attendees should note that this is one of the most advanced courses on scientific computation given in the University, by any department, and is not suitable for inexperienced programmers.
Matlab is a software package for numerical computation with high quality graphics facilities. This course is for beginners and new users of the package and describes basic concepts and use of Matlab, but not any other optional 'Toolboxes' available from the developers of Matlab.
This course is part of the Scientific Computing series.
Matlab is a software package for numerical computation with high quality graphics facilities. This course examines Matlab's graphical capabilities in more detail than the "Matlab: Basics" course.
This course is part of the Scientific Computing series.
This course provides an introduction to object oriented programming (OOP), aimed at those who have no prior experience of object oriented programming. The concepts of object oriented programming are demonstrated in Python, and Python's implementation of these concepts is discussed. By the end of the course, attendees should have a basic familiarity with these concepts and be able to assess wether the object-oriented paradigm is appropriate for their programming tasks.
As this course is part of the Scientific Computing series, most of the examples in the presentation are of greatest relevance to scientific programming.
Please note that there are no practical exercises during this course.
This course is part of the Scientific Computing series.
This is a simple introduction to using MPI for writing parallel programs to run on clusters and multi-CPU systems, for the purposes of "high-performance computing". It will cover the principles of MPI, and teach the use of the basic facilities of MPI (i.e. the ones that are used in most HPC applications), so that attendees will be able to write serious programs using it. It will describe other features that may be useful, but not teach their use. Any requests for particular coverage will be welcomed, but cannot be promised.
This course is part of the Scientific Computing series.
This is a detailed overview of using parallelism for achieving more computation in the same amount of elapsed time, covering both "shared memory" and "distributed memory" designs. It will concentrate on principles rather than details, to help attendees make the right decision and proceed in the right direction. It is aimed at users with significant programming experience who need more computation power than can be delivered by a single thread of execution on a single CPU core, including those who already program in parallel. The course is also designed for system administrators who need to support parallel codes, by describing the range of practical options, and their strengths, weaknesses, configuration issues and other important issues.
This course describes how patterns in text strings can be matched using regular expressions. A number of programming and scripting languages (such as Python, Perl, and Java) and other applications (such as Apache, PHP, Exim, and some text editors) support the use of regular expression patterns. Although there are some differences between the different implementations, there is also a lot in common.
The course has been modified and extended from the one previously given by Philip Hazel, the author of the PCRE ("Perl Compatible Regular Expressions") library, one of the standard and widely used regular expression libraries. The extensions are: Python and Java to the same level as Perl and PCRE; more warnings about problem areas, background usage and programming hints; and a short section on true (computer science) regular expressions and their uses when transferring data between programs.
This course is part of the Scientific Computing series.
This is an introduction to when and how to combine separate programs together to form an application, and when and how to split a single program apart. It will concentrate on principles rather than details, to help attendees make the right decision and proceed in the right direction. It is aimed at users with some programming experience who need to start or join a significant programming project.
This course is part of the Scientific Computing series.
This course is intended for serious programmers who need to develop large or complex codes, or to write applications that will be used and worked on by other people or over a long time (years). It will describe some of the design and coding techniques that can make debugging easier (sometimes even semi-automatic), and reduce the overall development and maintenance effort by spending a bit more time during design and coding.
It is applicable to any conventional language, from Python to Fortran to Java to C++ and even assembler, and will describe the techniques in generic terms. It should be regarded as part of the practical end of software engineering - everything covered will be something that the speaker has found to be useful in practice.
This course is part of the Scientific Computing series.
This course does NOT discuss sophisticated programming techniques designed to improve the speed, efficiency or memory use of a program, nor does it deal with the algorithmic aspects of programming. It is NOT suitable for those people who already know how to program and are seeking to learn more sophisticated programming techniques.
This course provides an introduction to organising your programming task(s) and using your knowledge of those tasks to produce an appropriate structure for your computer program. The aim of the course is to equip attendees with the concepts, mindset and outlook appropriate to designing programs whose structure reflects that of the task(s) the program is supposed to carry out, regardless of the programming language in which the final program is written.
Exercises will be done on paper, without the use of a computer and without reference to the syntax or keywords of specific programming languages.
As this course is part of the Scientific Computing series of courses, the examples, exercises and techniques used in this course will be more appropriate for scientific programming than for other programming tasks.
This course is part of the Scientific Computing series.
This course is aimed at those new to programming, or who have never been formally taught the principles and basic concepts of programming. It provides an introduction to the basic concepts common to most high level languages (including Python, Java, Fortran, C, C++, Visual Basic). The aim of the course is to equip attendees with the background knowledge and confidence necessary to tackle many on-line and printed programming tutorials. It may also help attendees in deciding which programming language is suitable for their programming task.
Knowledge of the concepts presented in this course is a pre-requisite for many of the other courses in the Scientific Computing series of courses (although not for the "Python for Absolute Beginners" course).
This course is part of the Scientific Computing series.
This course introduces the concept of checkpointing - the saving of a program's state while the program is running, such that the program can be restarted from that saved state - and describes how to implement application-level checkpointing for certain types of scientific programming tasks in Python. Attendees will benefit most from this course if they have a clear idea of the types of task which they wish to checkpoint prior to attending.
This course is part of the Scientific Computing series.
This course will introduce more advanced aspects of the Python language than the "Python for Absolute Beginners" course or "Python for Programmers" courses. The course will cover topics such as file I/O in more detail than either of those two courses. Whilst the course will not cover the use of Python to produce graphical output, some mention will be made of how Python can be used to interface with tools such as gnuplot to produce graphical output of scientific data.
This course does not explicitly cover the object oriented aspects of the Python language.
This course is part of the Scientific Computing series.
This course is aimed at those new to programming and provides an introduction to programming using Python, focussing on scientific programming. This course is probably unsuitable for those with significant programming experience. By the end of this course, attendees should be able to write simple Python programs and to understand more complex Python programs written by others.
As this course is part of the Scientific Computing series, the examples chosen are of most relevance to scientific programming.
This course is part of the Scientific Computing series.
This full-day course introduces the Python programming language to programmers who are already familiar with another high level programing language such as C/C++, Fortran, Java, Perl or Visual Basic. The aim of this course is to give such programmers sufficient familiarity with Python that they can attend any of the more advanced Python courses organised by the Computing service and easily follow any of the widely available Python tutorials on the more complex aspects of the language.
This course covers all the material contained in the "Programming: Python for Absolute Beginners" course, but in a more abbreviated fashion suitable for those who already have significant programming experience. This course does NOT cover the more complex aspects of the language (for such topics see the other Computing Service Python courses), nor is there much explicit discussion of the object oriented features of Python.
This course is part of the Scientific Computing series.
This course will introduce methods in Python for accessing the operating system environment (e.g. standard input, standard output, environment variables, etc). The course will cover topics such as command-line parsing in more detail than the "Python Introduction for Absolute Beginners" or "Python Introduction for Programmers".
This course is part of the Scientific Computing series.
This course explains how to construct and use regular expressions in Python (using the re module). It does not discuss how to construct complex regular expressions, nor does it cover regular expressions themselves in much detail, rather it focuses on how to use regular expressions in Python.
For a detailed discussion of regular expressions see the "Pattern Matching Using Regular Expressions" course.
This course is part of the Scientific Computing series.
There is a very wide variety of tools available for scientists using computers. This variety can be daunting at first glance. This talk will unpick the maze of programming languages and other tools to provide some guidance on what might be appropriate to use for various purposes.
SPSS is a powerful general purpose statistical package with high quality graphics and tabulation facilities, and a reputation for being relatively user-friendly. This course is for beginners and fairly new users of the package. Basic concepts and use of SPSS will be introduced. The main aim of the course is to give participants a foundation and some background. However statistical techniques are not covered (see note below).
SPSS is a powerful general purpose statistical package with high quality graphics and tabulation facilities, and a reputation for being relatively user-friendly. This session follows on from Part 1 and covers useful techniques and tricks. It is strongly recommended for anyone likely to use SPSS for any but the very simplest analysis of the very simplest data.
This session follows on from SPSS: Basic Parts 1 and 2 and continues to introduce useful techniques for data analysis with SPSS. Working with sensitive data types will be covered and a basic introduction to SPSS command language.
Stata is a powerful general purpose statistical package.
This course is for beginners and fairly new users of the package. Basic concepts and use of Stata will be introduced. The main aim of the course is to give participants a foundation and some background. However statistical techniques are not covered (see note below).
The first session looks at an overview of the Stata system and getting data into Stata format and the second looks at reporting, graphing and analyses. It is strongly recommended for anyone likely to use Stata for any but the very simplest analysis of the very simplest data.
This course is for new users who have learnt how to get data into Stata, and know how to operate basic syntax having completed the Basics course or through self-study with the student version or manuals. Emphasis will be on examples of running applied analyses of regression models for continuous, binary and ordinal outcomes using standard Stata procedures. Guidance will also be provided on further addons that may be of interest.
This course is for new users who have learnt how to get data into R already, and know how to operate basic syntax. Emphasis will be on examples of running applied analyses of regression models for continuous, binary and ordinal outcomes using standard R procedures. Guidance will also be provided on further addons that may be of interest.
This course is part of the Scientific Computing series.
It is common for a student or researcher to find a piece of software or to have one thrust upon them by a supervisor which they must then build, install and use. It is a myth that any of this requires system privilege. This course demonstrates the building, installation and use of typical software ranging from trivially easy examples (the "configure, make, install" scheme) through to the evils of badly written Makefiles. Common errors and what they mean will be covered and by the end of the course the student should be able to manage their own software without needing to pester their system administrator.
The course is designed to take someone from having no knowledge of the Unix command line to being able to navigate around directories, and doing simple file manipulation. Then some of the more basic commands, will be introduced, including information on how to get more help from the system itself. Finally accessing remote computers by ssh and the most basic of shell scripts will be introduced.
This course is part of the Scientific Computing series.
Please note that this course is NOT suitable for beginner or novice shell scripters. It is also NOT suitable for those who do not have significant practical experience of writing (or trying to write) their own shell scripts.
The purpose of this workshop is to give attendees the opportunity to ask questions about any problems they have encountered in trying to write their own shell scripts in bash, and to obtain advice on how to tackle more complex shell scripting tasks. It is unlikely to be of use to attendees who do not have some experience of writing shell scripts for their own purposes.
It is essential that those attending the workshop have thought of some questions to ask the presenters, or of some scenarios/problems they wish to explore with the presenters, prior to attending.
The intended audience of this workshop is those who have previously attended the Unix Shell Scripting course.
This course is part of the Scientific Computing series.
No previous experience of shell scripting is required for this course; however some knowledge of the interactive use of the bash shell is a prerequisite (see Simple Shell Scripting for Scientists: Prerequisites for details).
This course introduces shell scripting in bash for scientific computing tasks. Day one introduces very basic shell scripts in bash which process the command line in a simple fashion. Day two covers how to write more advanced shell scripts in bash. Day three covers how to make one's shell scripts more robust.
At the end of each day one or more exercises are set. It is VERY IMPORTANT that attendees attempt these exercises before the next day of the course. Attendees should make sure that they have allowed themselves sufficient study time for these exercises between each day of the course.