Minicourses for Researchers

Research Computing Course Descriptions

Below is  a list of some of the classes that are taught by Research Computing. We generally advertise our classes in VOX Daily email notices, or check currently scheduled classes. If you would like to know when a certain class will be offered next, send an email to Research Computing.

Note: You can also take many of these courses online. See each description for more information.

Managing Research Data

Effective Data Management

With growth in the volume of digital data, and the new requirement from NSF that all grant proposals now include a data management plan, we present an introduction to managing research data. We will discuss: project documentation and metadata, directory structures and file naming conventions, storage, security and backups, data sharing and citation, intellectual property issues, file formats, data retention and archiving. The ideas and methods are largely independent of academic discipline, but examples are drawn from specific fields of research.

The target audience is faculty, graduate students, and anyone else responsible for managing research data.

  • Prerequisite: None
  • Course Length: 2 hours
  • Take the course online 


Saving and Managing Files with Shared Storage (RStor)

Rstor provides Windows, Mac and Linux users with a remote share for storing their important information. This class will teach participants how to install the Rstor client, use Rstor for saving and sharing data, and will demonstrate the web features of Rstor for those who have grant data sharing requirements. Users should bring their PC's and Macs to class.

  • Prerequisite: None
  • Course Length: 2 hours 


Using OpenAFS (RStor) Effectively

Computing Services at Dartmouth provides a central file storage system, known locally asRStor, and built on OpenAFS technology. OpenAFS is a distributed filesystem, scalable to many client computers using secure authentication and with flexible access control. Client software is available for Linux, UNIX, Mac OS X, and Windows. The service is provided primarily for researchers, but all members of the Dartmouth community may obtain server space.  Files in RStor can be made accessible across campus and worldwide.

For many users, the differences between local files and those stored in OpenAFS are not important. However, there are some differences in behavior and features not found in traditional UNIX or desktop file systems. This class is intended to explain the important differences from a user's perspective, and allow you to use the system more effectively, safely, and efficiently. Topics include local file caching, AFS token lifetimes, quotas, access control, sharing, and backups.

The user interface tools for UNIX and Mac OS X are command-line driven. Windows has a graphical interface with several differences. We will give examples using both UNIX and Windows tools.


Linux/UNIX Skills

Introduction to UNIX/Linux

This course will introduce students to the UNIX computing environment at Dartmouth. Topics will include: UNIX history and philosophy, requesting UNIX accounts, logging in to UNIX, basic operating system concepts and file structure, basic commands, text editor(s), printing, mail, and online help. The goals of this course are to enable students to:

  • Log in to their UNIX account from any type of computer.
  • Use the basic UNIX commands to create files and directories.
  • Edit and print files.
  • Understand the UNIX tools philosophy.
  • Get online help.

Anyone who is interested in UNIX or needs to use UNIX for their work should take this course.

Learning Power Tools for Linux/UNIX/Mac

This course will teach participants some of the powerful tools available to Linux/UNIX/Mac users.  Users should have taken or be familiar with all the content of the Introduction to Linux/UNIX class.  Topics covered will include shell shortcuts, common tools and the UNIX/Linux file system. 

Automating Linux/Unix/Mac with shell scripts

Shell scripts provide a quick and powerful method for automating many common tasks and for completing tasks that would be impossible to complete manually.  Participants in this class will use simple shell programming (bash/ksh/sh) and UNIX/Linux tools to solve an example problem. Users should be familiar with the material covered in Learning power tools for Linux/UNIX/Mac.

  • Prerequisite: Basic terminal/command line experience (Unix/Linux/Mac); experience with a text editor
  • Course Length: 2 hours
  • Course Handout
  • Take the course online

Introduction to Revision Control

Although developed for source code management, revision control tools can be used for any text files that need to be edited and for which a revision history is required (e.g., source code in any programming language, LaTeX documents, HTML files, PHP scripts, shell scripts, and system configuration files). Revision control tools are available for almost all computing platforms and the principles are all similar. The RCS and SVN tools will be demonstrated on Linux and Mac OS X. Experience with a text editor would be helpful. Anyone editing source code, scripts, or documents should look at revision control tools.


Statistics

Introduction to SPSS

This courses introduces the desktop version of the Statistical Package for the Social Sciences, a user-friendly application for data analysis. Topics include constructing a dataset, transforming variables, conducting basic statistical analyses, and creating simple graphs.

  • Prerequisite: Basic computer skills and an elementary knowledge of statistics
  • Course Length: 2 hours
  • Course Notes

Doing More with SPSS

This course builds on Introduction to SPSS. You will learn techniques for conducting more advanced statistical analyses. Statistical topics include chi-squared analyses, regression, and ANOVA.

  • PrerequisiteIntroduction to SPSS or working knowledge of SPSS
  • Course Length: 2 hours
  • Course Notes

Introduction to SAS

This course introduces SAS, a powerful system for managing, manipulating, and analyzing quantitative data. Participants will learn how to access and run SAS on the Research Computing UNIX machines. Topics include constructing a dataset, transforming variables, conducting basic statistical analyses, and creating simple graphs. 

  • Prerequisite:  Basic computer skills and an elementary knowledge of statistics. Knowledge of UNIX OS helpful
  • Course Length: 2 hours

Doing More with SAS

This course builds on "Introduction to SAS" and presents some advanced features of SAS programming. More techniques for manipulating data and graphing are presented; statistical topics include chi-squared analyses, regression, and ANOVA. 

  • Prerequisite: Either Introduction to SAS or working knowledge of SAS
  • Course Length: 2 hours

Scientific Computing and Visualization

Introduction to Matlab

This class covers the basics of Matlab, which is an application for doing mathematical computation and visualizations. The class is intended for beginning matlab users and covers performing calculations at the command line, creating variables, working with matrices and matlab data types, and creating script files. This is a hands-on class that includes sample exercises to write and examples to run. Attendees should have a familiarity with linear algebra and basic computer operations.

Introduction to Matlab Graphics

This class covers the basics of matlab graphics, including making 2D and 3D visualizations, displaying and saving images, importing data into matlab, and using matlab handle graphics. It is a hands-on class and is intended for beginning and intermediate matlab users.

Programming With Matlab

This intermediate-level class covers writing matlab functions and scripts, using different workspaces, visual debugging and profiling of matlab code, and improving performance of your matlab code. This is a hands-on class that includes time to run examples and write your own functions. It assumes a basic knowledge of the concepts covered in the Introduction to Matlab class.

Developing Software on a Linux Computer

This class is for students and researchers who need to develop code on a Linux computer and may not have a lot of experience with Linux. The class will cover compiling, linking, optimizing, debugging, and profiling code. It will also demonstrate how to use the Eclipse integrated development environment.

  • Prerequisite: Previous programming experience in C, C++, or FORTRAN
  • Course Length: One two-hour session
  • Course Slides

Introduction to Data Visualization Using VisIt

This class covers the use of VisIt for visualization of data. VisIt is open source software that runs on Linux, Macintosh, and Windows computers. It provides an easily learned, flexible and extendable 2D and 3D graphics environment.

Introduction to Parallel Programming Using MPI (Message Passing Interface)

This class is an introduction to parallel programming using MPI, the Message Passing Interface library. Running a computer program in parallel on multiple processors allows you to run your programs faster and solve larger problems. The class will cover the basics of MPI programming, including how to write and compile basic MPI programs, and how to run MPI programs interactively and through a batch queue on a computer cluster. We will examine techniques of parallelization and the types of applications that can be easily parallelized.

  • Prerequisite: Previous programming experience in C or FORTRAN
  • Course Length: Two hours
  • Course Slides

Parallel Programming Using OpenMP

This class is an introduction to parallel programming using OpenMP directives for programs running on shared memory computers. With multi-core processors in everything from laptops to high-end servers, the need for multi-threaded applications is growing rapidly and OpenMP is often the most straightforward way to write such programs. This hands-on class will cover the basics of OpenMP programming in C and Fortran including how and when to add directives, and how to compile and run OpenMP programs.

Introduction to IDL

This class covers the basics of the Interactive Data Language (IDL),  a programming environment that offers all the power, adaptability, and programmability of high-level languages like FORTRAN, C, and C++, but also adds two essential capabilities for modern data analysis: interactivity and graphics display. The class in intended for beginning IDL users and covers the basics of running IDL, performing basic calculations, IDL data types, working with multidimensional arrays, basic I/O, and a brief introduction to 2D plotting and mapping. This is a hands-on class that includes sample exercises. Attendees should have a familiarity with basic computer operations.

  • Prerequisite: Previous programming experience in FORTRAN, C, or Matlab is helpful
  • Course Length: Two hours
  • Introduction to IDL (course handout) or view the course on line