GS Bloch Equations Simulator 1. GS Introduction to Medical Physics IV Bloch Equation Simulator Introduction

Size: px
Start display at page:

Download "GS Bloch Equations Simulator 1. GS Introduction to Medical Physics IV Bloch Equation Simulator Introduction"

Transcription

1 GS Bloch Equations Simulator 1 Purpose GS Introduction to Medical Physics IV Bloch Equation Simulator Introduction The purpose of this laboratory is to investigate some of the implications of the Bloch Equations and to look at basic pulse sequences used in nuclear magnetic resonance and in magnetic resonance imaging. Materials and Methods The tool that facilitates this investigation is a software simulation of the Bloch equations called SpinWright. It is written in the Java programming language and should work on any computer that has a recent Java Runtime Environment installed. For some of the exercises, the simulated data will be saved as text files or as binary files and may be analyzed further in a spreadsheet program such as Excel or by image processing programs such as Matlab or Image/J. SpinWright Tips This lab handout is what currently passes for user documentation of the program. Here is a brief introduction that will be supplemented by the presentation during the formal lab session. The basic steps in simulating an NMR experiment are: to define the subject, which is the collection of spins (the word spin is used in this context as a shorthand term for an isochromatic spin group), to define the pulse sequence, to set the parameters of the experiment, to run the simulation of the experiment, and finally to analyze the simulation output. Some of the input information is (or can be) stored in plain ASCII text. In particular, that is true of pulse sequences. The following table contains a nonsense pulse sequence that shows all of the pulse sequence elements types currently supported by SpinWright. The standard filename extension for ASCII-formatted pulse sequences is PPG. Type Parent Name Parameters (Type-Dependent Meanings) Loop - MainLoop HardPulse MainLoop Hard TruncSincRFPulse MainLoop SoftRF Loop MainLoop InnerLoop RampGradientTable InnerLoop GxRamp InnerLoop XYSprialGradient InnerLoop Spiral RampGradient MainLoop GzRamp StatusPulse MainLoop ADC_ON DelayElement MainLoop Wait Equilibrate MainLoop Eql Spoil MainLoop Spl 79000

2 GS Bloch Equations Simulator 2 The meanings of the fields are given below. The one immutably constrained aspect of these is that the first line of a pulse sequence must be a Loop that is named MainLoop and that has as its second field (which is the name of its parent loop) the particular entry -. It typically starts at time 0 and has a duration equal to the entire duration of the pulse program. It can repeat several times, but is shown here with only one pass. The columns are separated by white space (spaces and tabs). An important implication of this is that one cannot have spaces or tabs in the name of a pulse sequence element. The first column is always the element type. Loop, HardPulse, TruncSincRFPulse, RampGradient, RampGradientTable, XYSpiralGradient, DelayElement, StatusPulse, Equilibrate and Spoil are the supported types at present. The second column is the name of the parent loop. Since the MainLoop is the body of the pulse sequence, it has no parent and thus uses the special character - for its parent. The next column is the name of the element. With the exception of the main loop, which must be named MainLoop (and yes, case matters), the names can be whatever suits you, provided that the name contains no whitespace (e.g., spaces or tabs). You should exercise caution in putting punctuation marks into element names, but underscores don t seem to bother the program. The subsequent columns vary in meaning depending on the particular element type. Loop Parent_Loop(str) Element_Name(str) Start_Time(int µs) Duration_Time(int µs) Passes(int) HardPulse Parent_Loop(str) Element_Name(str) Amplitude(float µt) Phase(float deg) Offset (float freq) Start_Time(int µs) Duration_Time(int µs) TruncSincRFPulse Parent_Loop(str) Element_Name(str) Amplitude(float µt) Phase(float deg) Offset (float freq) Zero_Crossings_(Halfside)(int) Start_Time(int µs) Duration_Time(int µs) RampGradient Parent_Loop(str) Element_Name(str) GxAmplitude(float mt/m) GyAmplitude(float mt/m) GzAmplitude(float mt/m) Start_Time(int µs) Duration_Time(int µs) RampUp_Time(int µs) RampDown_Time(int µs) RampGradientTable Parent_Loop(str) Element_Name(str) ControllingLoop_Name(str) GxStartAmplitude(float mt/m) GxStopAmplitude(float mt/m) GyStartAmplitude(float mt/m) GyStopAmplitude(float mt/m) GzStartAmplitude(float mt/m) GzStopAmplitude(float mt/m) Start_Time(int µs) Duration_Time(int µs) RampUp_Time(int µs) RampDown_Time(int µs) XYSpiralGradient Parent_Loop(str) Element_Name(str) GxAmplitude(float mt/m) GyAmplitude(float mt/m) GzAmplitude(float mt/m) Field_of_View(float cm) Maximum_Gradient_Slewrate(float mt/m/ms) Number_of_Wisps(int) Start_Time(int µs) Duration_Time(int µs) [NB: GyAmplitude and GzAmplitude are ignored use GxAmplitude to set the maximum gradient amplitude. Also note that this currently does not read the

3 GS Bloch Equations Simulator 3 scanner information, although that would be an obvious and desirable thing to do.] StatusPulse Parent_Loop(str) Element_Name(str) StatusBit(int) Start_Time(int µs) Duration_Time(int µs) DelayElement Parent_Loop(str) Element_Name(str) Start_Time(int µs) Duration_Time(int µs) Equilibrate Parent_Loop(str) Element_Name(str) Start_Time(int µs) Spoil Parent_Loop(str) Element_Name(str) Start_Time(int µs) The starting time is with respect to the containing loop, not to the beginning of the entire pulse sequence. For RampGradients, the duration includes both the ramp-up and the ramp-down times, as well as the full-on time. A major MR manufacturer does not include the ramp down time in the gradient duration in their pulse programmer, but I felt that it would be more consistent if the duration always comprised the entire element (and it also made the coding a little easier for me). The downside of this is that one has to think a little harder to figure out exactly the value of duration to use (e.g., in a compensated gradient waveform). For the RampGradientTable, it is possible for the gradient to appear within several nested loops, but not to be incremented by the innermost loop (e.g., the slab-direction of a 3DFT sequence) but rather by one farther out. The ramp gradient table amplitude values have separate start and stop values. The stop value is not actually reached, but rather the last value is one gradient increment shy of the stated stop value. If you must achieve a particular stop value, plan accordingly and set the nominal stop value one increment higher than your target stopping value. The XYSpiralGradient implements the algorithm giving in GH Glover, Simple Analytic Spiral K-Space Algorithm, Magnetic Resonance in Medicine 42: , It is an Archimedean spiral with a Λ value of five. Note that the maximum gradient slewrate is specified in mt/m per millisecond. This is so the number will be manageable. The StatusPulse is used to mark parts of the output data stream for further processing (or it conceivably could be used as a trigger pulse for some piece of hardware, so if you re using this program to create a figure for a paper, it might be handy just for graphical purposes). The HardPulse is pretty straightforward. The TruncSincRFPulse implements a box-car truncated sinc function with a configurable number of zero-crossings. The number of zero-crossings is specified by the number to one side of the center, so the main lobe only would have a zero-crossing value of unity while a pulse with the first side lobes would have a zero-crossing value of two. The number of zero-crossings in combination with the duration controls the bandwidth of the pulse, while the number of zero-crossings affects the sharpness of the pulse edges in temporal frequency (and hence the edge qualities of the slice if the pulse is used for slice selection). Two features that were introduced in 2012 are "magic" in the sense that they are not realistic, but rather ideal. Equilibrate sets the z-axis magnetization equal to the spin density and sets the x-y plane magnetization to zero. Spoil sets the x-y plane magnetization to zero but leaves the z-axis magnetization alone. These are useful for teaching purposes, but unfortunately they are not possible in the real world. In the main SpinWright menu bar, there is a Pulse Sequence choice. The New option under Pulse Sequence presents a GUI-based pulse sequence entry tool. This is nice because it takes care of the bookkeeping of start and duration times with only a

4 GS Bloch Equations Simulator 4 slight loss of generality. We ll focus on it in class, because with it you can produce all three stored representations of a pulse sequence: PPV, PPG and PPC files. Note that Java uses the UNIX newline (LF) rather than the DOS convention (CR-LF), so in Windows, use WordPad rather than NotePad to edit and print these text files. One can either read in a PPV file using Pulse Sequence Actions Load PPV, which will populate the GUI with the pulse sequence elements, or create a blank one using Pulse Sequence Actions New. The pulse sequence elements may be added, deleted and modified in the GUI. Then click Pulse Sequence Sequence Ready, which converts the graphical version into an internally stored PPG. It is not a bad idea to use Pulse Sequence Actions Save PPV (Visual) As as a matter of course. Then, go to Pulse Sequence Sequence and use the process below to compile the internally stored PPG and proceed. To summarize up to this point, the GUI representation is stored in a file with a PPV extension. That representation gets converted into a similar representation with a PPG extension. Both of these are oriented around pulse sequences. Please note that the format of the gradients in PPV files changed slightly (in order to correct a bug) and so PPV files that were created in versions before (January 2018) will not work, although they can readily be edited by hand if need be, to make them work in later versions. Once one has a PPG-formatted pulse sequence, it is compiled into a time-based representation in which each of the rf and gradient waveforms is represented as amplitudes at regular time points. You can think of this as a list mode representation of the waveforms. In order to compile the PPG-formatted pulse sequence, one must specify the starting time, duration, and clock tick of the experiment. These are defined on the Experiment page. The Experiment Action Pulse Sequence Parameters menu item sets up the experiment to accommodate the entire duration of the pulse sequence. If you want to change the starting time, duration, or sampling period of the experiment later, you can enter the new numbers on the Experiment page and then (re)compile the pulse sequence with Pulse Sequence Sequence Compile or Experiment Actions Compile PPG (ASCII). Once the pulse sequence has been compiled, a graph of the waveforms can be viewed with Pulse Sequence Sequence Display. The collection of the isochromatic spin groups that are to be simulated is selected through the Subject menu option. Subject Actions Load Binary Subject loads a file with a SUBJECT file extension while Subject Actions Load ASCII Subject loads a file with a SUBJASC file extension and Subject Actions New clears the existing subject, if any. The ASCII file format describes one isochromatic spin group per line. The parameters are separated by white space (i.e., either spaces or tabs) and must be in the following order: Gyromagnetic_Ratio (MHz/T), Spin_Density (in arbitrary units, but use reasonably large numbers), T 1 (msec), T 2 (msec), Chemical_Shift (ppm), m x, m y, m z, position x (cm), position y (cm), position z (cm), velocity x (cm/s), velocity y (cm/s), velocity z (cm/s), acceleration x (cm/s 2 ), acceleration y (cm/s 2 ), acceleration z (cm/s 2 ), jerk x (cm/s 3 ), jerk y (cm/s 3 ), and jerk z (cm/s 3 ). The currently loaded subject is displayed in the GUI subject editor. The top part is an isochromatic spin group editor whereas the bottom part is a list of all of the ISGs in the subject. One may select a particular ISG to edit by clicking it in the list or by typing its order number in the Current ISG text box. There are controls to the right of the list for adding the ISG in the GUI to the list, replacing the selected ISG in the list by that in

5 GS Bloch Equations Simulator 5 the GUI, deleting the selected ISG or deleting all of them (the same as Subject Actions New). Note that if an experiment has been run, the values shown are those of the isochromats at the end of the experiment. This is currently the only way to see the effect of the experiment on a particular, individual isochromat. If one wants to rerun an experiment with the spins in their initial states, the subject must be reloaded, using Subject Actions Reload, or else the simulation will start where the last one left off. Note that Reload works only if the subject has been loaded from a file, so if you create a new subject that you might want to use more than once, save it to a file and then load it from the file before running experiments. One also needs to specify some characteristics of the Scanner. The field strength is used in a number of internal calculations, and it is possible to specific some imperfections in the static magnetic field, although we will not use the B 0 imperfections feature in this lab. The gradient information is currently ignored by the simulation, although it is envisioned for the future that the maximum gradient amplitudes and slew rates could be applied as constraints on pulse sequences such as the XYSpiralGradient element. When all of this has been set, the Experiment Actions Run option performs the simulation and automatically presents a graph of the three spatial components of the net magnetization vector as a function of time. This plot can be aligned with the plot from Sequence Display to visualize the effect of the pulse sequence elements on the net magnetization. These plots are still extremely limited. It is possible to save the net magnetization vector in an ASCII file. Experiment Actions Save Data Save All Data As will save the entire experiment s time series of the net magnetization vector whereas Experiment Actions Save Data Save All Status Lines As saves only the net magnetization vector's values at time points that are marked by a status line and Experiment Actions Save Data Save Status Line Flagged Data As 0, 1,, 8 or Save Status Line Number As will save only the temporal spans of data when the specified status line is on. In a Windows environment, these files can be dropped into or opened by Excel and analyzed and plotted in Excel. SpinWright has some rudimentary data analysis capability. If a status bit is set, one can perform a one-dimensional Fourier transform of the data flagged with a particular bit from the Analysis page. Checking the Real/Imaginary and the Magnitude/Phase boxes presents those views of the flagged data and their respective Fourier transforms. If the data length is a power of two, a radix-2 FFT is used to perform the transformation. For other data lengths, a DFT is used. If a two-dimensional dataset is set up properly, a two-dimensional Fourier transform can be performed. The results of the 2DFT are saved as 32-bit real-valued binary data, whereas most other outputs are ASCIIencoded. The saved data are four images deep: real, imaginary, magnitude and phase. The lab exercises will always assume that you have gotten SpinWright running and that it is in a normal state. If SpinWright seems to be unresponsive, you might need to increase the memory allocated to it as described in the installation document or in the Starting SpinWright section at the end of this document. Thanks to the work of Chris Walker, the memory requirement has been reduced dramatically and the computationally intensive parts have been multi-threaded so that the execution time is much shorter on multiple core computers.

6 GS Bloch Equations Simulator 6 Here are a few summary suggestions for minimizing the agony of using this software: 1) Names in pulse programs cannot contain whitespace (e.g., spaces and tabs). The GUI interface tries to replace whitespace with underscores, but if you are creating a PPG file by hand, remember not to use spaces or tabs in names because those separate distinct items in a row of text. 2) The various text entry boxes do no error checking. If you enter junk where the program expects a number, it will not comport itself in an optimal fashion. 3) When you look at a pulse program file (PPG, PPV or PPC), a subject file (SUBJASC) or an ASCII data file on a Windows system, use Wordpad rather than Notepad. This is because Java uses UNIX-style newline markers (LF) rather than the Windows-style (CR-LF) when reading and writing text. 4) After having run an experiment, Subject will display the magnetization values of each spin at the conclusion of the experiment in the list. As mentioned above, enter a new subject with Subject New and then the add buttons, save it before you run an experiment or you just had a single-shot subject. This is a feature rather than a bug because it is, at present, the only way to look at the magnetization of individual isochromats following an experiment. When the Subject tab is orange, it means that the spin system is no longer in its original state. 5) Some of the saved files (.MRSCNR and.subject) are saved in a fashion that makes them dependent on this particular version of SpinWright (they are stored as serialized objects for reasons that made sense fifteen years ago but not now). Please don t invest a huge amount of time in creating large binary subject files (.subject), for example, if you expect them to work with future versions; they won t. Instead, save ASCII versions. If push comes to shove, you can edit a SUBJASC file by hand to accommodate version changes. 6) Right now, the data are sampled at multiples of the clock tick (with a default of a sample on each clock tick). The clock tick is really for the benefit of the numerical integration and the specification of gradient and rf waveforms, so the program allows one to specify the sampling multiple on the experiment page. If you want to get a power of two length to the data, you need to pay attention to the clock tick and the duration of the Status Line on period (e.g., with a duration of microseconds and a 100 microsecond clock tick, you ll get 5120 points, which could be slow to transform, even for an FFT, so consider using a sampling multiple of 10 ticks as well to make the dataset more tractable). You also have to be sure that every time interval is an integer multiple of the click tick or the program will decline to run the simulation. (Chris added a warning about this, whereas the program used simply to crash unceremoniously. Thanks, Chris.) 7) The simulator can save the one-dimensional Fourier transform of the data in a text format for subsequent use in another program. It saves the twodimensional transforms as 32-bit real-valued binary data in four planes: real, imaginary, magnitude and phase (from -π to π). 8) You can use a screen capture program to grab graphical outputs for insertion into reports.

7 GS Bloch Equations Simulator 7 9) If the program just seems to hang, it might have run out of allocated memory. See the next section for how to set the heap size for Java. If you are suspicious that this is the problem run the program from the command line or with java.exe instead of javaw.exe (again, see below) so that you can see any error messages. An OutOfMemoryException typically means that your simulation is too big for the allocated heap and that you should enlarge it as described below. I have yet to figure out how to handle this situation automatically and to provide a useful diagnostic message. Thanks to Chris' work, the program now uses memory much more efficiently and this is less likely to be a problem than it had been in the past. Starting SpinWright Exactly how you start SpinWright depends upon the operating system. In general, if you go to the installation directory and double-click the file SpinWright.jar (which is an "executable JAR file"), it should start. For some of the exercises, you might need to give Java more memory, so you should start it from the command line with a command such as java -Xms512m -Xmx512m -jar SpinWright.jar, which tells Java to use 512 megabytes of RAM (see for links to the command line documentation for many parts of the Java system). Of course, if you have more memory available, you can set the figure to be larger than 512m (i.e., 512 megabytes). If SpinWright inexplicably hangs, you should suspect that you have run out of memory allocated to Java. Try increasing the allocated memory (within the constraint of the physical memory available on your computer) and run SpinWright again. The distribution includes a sample shortcut for Windows, which you can edit to customize to your environment (we'll cover this in the lab session). Make sure that the path to the javaw.exe command is correct for your system. The Oracle installers create a path C:\\ProgramData\Oracle\Java\javapath that is supposed to be independent of the precise version of Java that is installed. Set the Start in: folder of the shortcut to be that folder in which you installed SpinWright. You can substitute the command java.exe for javaw.exe and you will get a window that might show helpful error messages if the program is behaving badly. You can add the -Xms and -Xmx options to the shortcut to allocate more memory if you would like that to happen every time that you use the shortcut. The -Xms option is not required, whereas the -Xmx option is, if you want to increase the size of the memory that is allocated to Java.

GS Bloch Equations Simulator 1. GS Introduction to Medical Physics IV Bloch Equation Simulator Introduction

GS Bloch Equations Simulator 1. GS Introduction to Medical Physics IV Bloch Equation Simulator Introduction GS02-0193 Bloch Equations Simulator 1 Purpose GS02-0193 Introduction to Medical Physics IV Bloch Equation Simulator Introduction The purpose of this laboratory is to investigate some of the implications

More information

Open file format for MR sequences

Open file format for MR sequences Open file format for MR sequences Version 1.1 Kelvin Layton Maxim Zaitsev University Medical Centre Freiburg kelvin.layton@uniklinik-freiburg.de maxim.zaitsev@uniklinik-freiburg.de This file specification

More information

Signed umbers. Sign/Magnitude otation

Signed umbers. Sign/Magnitude otation Signed umbers So far we have discussed unsigned number representations. In particular, we have looked at the binary number system and shorthand methods in representing binary codes. With m binary digits,

More information

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below.

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below. Graphing in Excel featuring Excel 2007 1 A spreadsheet can be a powerful tool for analyzing and graphing data, but it works completely differently from the graphing calculator that you re used to. If you

More information

Hacking FlowJo VX. 42 Time-Saving FlowJo Shortcuts To Help You Get Your Data Published No Matter What Flow Cytometer It Came From

Hacking FlowJo VX. 42 Time-Saving FlowJo Shortcuts To Help You Get Your Data Published No Matter What Flow Cytometer It Came From Hacking FlowJo VX 42 Time-Saving FlowJo Shortcuts To Help You Get Your Data Published No Matter What Flow Cytometer It Came From Contents 1. Change the default name of your files. 2. Edit your workspace

More information

Using Excel This is only a brief overview that highlights some of the useful points in a spreadsheet program.

Using Excel This is only a brief overview that highlights some of the useful points in a spreadsheet program. Using Excel 2007 This is only a brief overview that highlights some of the useful points in a spreadsheet program. 1. Input of data - Generally you should attempt to put the independent variable on the

More information

Tips and Guidance for Analyzing Data. Executive Summary

Tips and Guidance for Analyzing Data. Executive Summary Tips and Guidance for Analyzing Data Executive Summary This document has information and suggestions about three things: 1) how to quickly do a preliminary analysis of time-series data; 2) key things to

More information

Class #10 Wednesday, November 8, 2017

Class #10 Wednesday, November 8, 2017 Graphics In Excel Before we create a simulation, we need to be able to make a drawing in Excel. The techniques we use here are also used in Mathematica and LabVIEW. Drawings in Excel take place inside

More information

Spectroscopic Analysis: Peak Detector

Spectroscopic Analysis: Peak Detector Electronics and Instrumentation Laboratory Sacramento State Physics Department Spectroscopic Analysis: Peak Detector Purpose: The purpose of this experiment is a common sort of experiment in spectroscopy.

More information

Running Java Programs

Running Java Programs Running Java Programs Written by: Keith Fenske, http://www.psc-consulting.ca/fenske/ First version: Thursday, 10 January 2008 Document revised: Saturday, 13 February 2010 Copyright 2008, 2010 by Keith

More information

COMP 110 Project 1 Programming Project Warm-Up Exercise

COMP 110 Project 1 Programming Project Warm-Up Exercise COMP 110 Project 1 Programming Project Warm-Up Exercise Creating Java Source Files Over the semester, several text editors will be suggested for students to try out. Initially, I suggest you use JGrasp,

More information

Tutorial: Working with the Xilinx tools 14.4

Tutorial: Working with the Xilinx tools 14.4 Tutorial: Working with the Xilinx tools 14.4 This tutorial will show you how to: Part I: Set up a new project in ISE Part II: Implement a function using Schematics Part III: Implement a function using

More information

The Dynamic Typing Interlude

The Dynamic Typing Interlude CHAPTER 6 The Dynamic Typing Interlude In the prior chapter, we began exploring Python s core object types in depth with a look at Python numbers. We ll resume our object type tour in the next chapter,

More information

MRI Physics II: Gradients, Imaging

MRI Physics II: Gradients, Imaging MRI Physics II: Gradients, Imaging Douglas C., Ph.D. Dept. of Biomedical Engineering University of Michigan, Ann Arbor Magnetic Fields in MRI B 0 The main magnetic field. Always on (0.5-7 T) Magnetizes

More information

MassHunter File Reader

MassHunter File Reader MassHunter File Reader vers 1.0.0 2015 Quadtech Associates, Inc. All Rights Reserved Release date: November 18, 2015 www.quadtechassociates.com MassHunter File Reader Welcome to MassHunter File Reader.

More information

Deep Learning for Visual Computing Prof. Debdoot Sheet Department of Electrical Engineering Indian Institute of Technology, Kharagpur

Deep Learning for Visual Computing Prof. Debdoot Sheet Department of Electrical Engineering Indian Institute of Technology, Kharagpur Deep Learning for Visual Computing Prof. Debdoot Sheet Department of Electrical Engineering Indian Institute of Technology, Kharagpur Lecture - 05 Classification with Perceptron Model So, welcome to today

More information

Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits

Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits Equipment and Components Quartus software and Altera DE2-115 board PART 1: Number Representation in Microsoft Calculator. First, let s

More information

Lab 4: Super Sudoku Solver CSCI 2101 Fall 2017

Lab 4: Super Sudoku Solver CSCI 2101 Fall 2017 Due: Wednesday, October 18, 11:59 pm Collaboration Policy: Level 1 Group Policy: Pair-Optional Lab 4: Super Sudoku Solver CSCI 2101 Fall 2017 In this week s lab, you will write a program that can solve

More information

PHY Microprocessor Interfacing Techniques LabVIEW Tutorial - Part X File Output and Input

PHY Microprocessor Interfacing Techniques LabVIEW Tutorial - Part X File Output and Input PHY 406 - Microprocessor Interfacing Techniques LabVIEW Tutorial - Part X File Output and Input Introduction File I/O tends to be complex - simply because there are a myriad of things that you might want

More information

Java Without the Jitter

Java Without the Jitter TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency

More information

SFU CMPT 379 Compilers Spring 2018 Milestone 1. Milestone due Friday, January 26, by 11:59 pm.

SFU CMPT 379 Compilers Spring 2018 Milestone 1. Milestone due Friday, January 26, by 11:59 pm. SFU CMPT 379 Compilers Spring 2018 Milestone 1 Milestone due Friday, January 26, by 11:59 pm. For this assignment, you are to convert a compiler I have provided into a compiler that works for an expanded

More information

Lab 1 Introduction to MATLAB and Scripts

Lab 1 Introduction to MATLAB and Scripts Lab 1 Introduction to MATLAB and Scripts EE 235: Continuous-Time Linear Systems Department of Electrical Engineering University of Washington The development of these labs was originally supported by the

More information

Chemistry 30 Tips for Creating Graphs using Microsoft Excel

Chemistry 30 Tips for Creating Graphs using Microsoft Excel Chemistry 30 Tips for Creating Graphs using Microsoft Excel Graphing is an important skill to learn in the science classroom. Students should be encouraged to use spreadsheet programs to create graphs.

More information

If Statements, For Loops, Functions

If Statements, For Loops, Functions Fundamentals of Programming If Statements, For Loops, Functions Table of Contents Hello World Types of Variables Integers and Floats String Boolean Relational Operators Lists Conditionals If and Else Statements

More information

Math 2250 Lab #3: Landing on Target

Math 2250 Lab #3: Landing on Target Math 2250 Lab #3: Landing on Target 1. INTRODUCTION TO THE LAB PROGRAM. Here are some general notes and ideas which will help you with the lab. The purpose of the lab program is to expose you to problems

More information

An Introduction To Presentation MACCS

An Introduction To Presentation MACCS An Introduction To Presentation MACCS Outline Experiment structure Tabs SDL and PCL Script structure: Settings and setup in your script Events PCL, logic and loops page 2 Experiment Structure An overall

More information

Starting to Program in C++ (Basics & I/O)

Starting to Program in C++ (Basics & I/O) Copyright by Bruce A. Draper. 2017, All Rights Reserved. Starting to Program in C++ (Basics & I/O) On Tuesday of this week, we started learning C++ by example. We gave you both the Complex class code and

More information

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia The goal for this tutorial is to make sure that you understand a few key concepts related to programming, and that you know the basics

More information

2D spatially selective excitation pulse design and the artifact evaluation

2D spatially selective excitation pulse design and the artifact evaluation EE 591 Project 2D spatially selective excitation pulse design and the artifact evaluation 12/08/2004 Zungho Zun Two-dimensional spatially selective excitation is used to excite a volume such as pencil

More information

Hands-on Lab. Open-Loop Response: System Identification

Hands-on Lab. Open-Loop Response: System Identification Hands-on Lab Open-Loop Response: System Identification v r Motorized tethered cart A step or impulse response provides useful information that characterizes the system. With such data, one can then begin

More information

CS354 gdb Tutorial Written by Chris Feilbach

CS354 gdb Tutorial Written by Chris Feilbach CS354 gdb Tutorial Written by Chris Feilbach Purpose This tutorial aims to show you the basics of using gdb to debug C programs. gdb is the GNU debugger, and is provided on systems that

More information

3. Simple Types, Variables, and Constants

3. Simple Types, Variables, and Constants 3. Simple Types, Variables, and Constants This section of the lectures will look at simple containers in which you can storing single values in the programming language C++. You might find it interesting

More information

The compiler is spewing error messages.

The compiler is spewing error messages. Appendix B Debugging There are a few different kinds of errors that can occur in a program, and it is useful to distinguish between them in order to track them down more quickly. Compile-time errors are

More information

LAB 5 Implementing an ALU

LAB 5 Implementing an ALU Goals To Do Design a practical ALU LAB 5 Implementing an ALU Learn how to extract performance numbers (area and speed) Draw a block level diagram of the MIPS 32-bit ALU, based on the description in the

More information

MindWare Electromyography (EMG) Analysis User Reference Guide Version Copyright 2011 by MindWare Technologies LTD. All Rights Reserved.

MindWare Electromyography (EMG) Analysis User Reference Guide Version Copyright 2011 by MindWare Technologies LTD. All Rights Reserved. MindWare Electromyography (EMG) Analysis User Reference Guide Version 3.0.12 Copyright 2011 by MindWare Technologies LTD. All Rights Reserved. MindWare EMG 3.0.12 User Guide Internet Support E-mail: sales@mindwaretech.com

More information

QUICK EXCEL TUTORIAL. The Very Basics

QUICK EXCEL TUTORIAL. The Very Basics QUICK EXCEL TUTORIAL The Very Basics You Are Here. Titles & Column Headers Merging Cells Text Alignment When we work on spread sheets we often need to have a title and/or header clearly visible. Merge

More information

Computer Hardware. Java Software Solutions Lewis & Loftus. Key Hardware Components 12/17/2013

Computer Hardware. Java Software Solutions Lewis & Loftus. Key Hardware Components 12/17/2013 Java Software Solutions Lewis & Loftus Chapter 1 Notes Computer Hardware Key Hardware Components CPU central processing unit Input / Output devices Main memory (RAM) Secondary storage devices: Hard drive

More information

EE225E/BIOE265 Spring 2011 Principles of MRI. Assignment 5. Solutions

EE225E/BIOE265 Spring 2011 Principles of MRI. Assignment 5. Solutions EE225E/BIOE265 Spring 211 Principles of MRI Miki Lustig Handout Assignment 5 Solutions 1. Matlab Exercise: 2DFT Pulse sequence design. In this assignment we will write functions to design a 2DFT pulse

More information

Math 2250 Lab #3: Landing on Target

Math 2250 Lab #3: Landing on Target Math 2250 Lab #3: Landing on Target 1. INTRODUCTION TO THE LAB PROGRAM. Here are some general notes and ideas which will help you with the lab. The purpose of the lab program is to expose you to problems

More information

2.1 Signal Production. RF_Coil. Scanner. Phantom. Image. Image Production

2.1 Signal Production. RF_Coil. Scanner. Phantom. Image. Image Production An Extensible MRI Simulator for Post-Processing Evaluation Remi K.-S. Kwan?, Alan C. Evans, and G. Bruce Pike McConnell Brain Imaging Centre, Montreal Neurological Institute, McGill University, Montreal,

More information

Site Owners: Cascade Basics. May 2017

Site Owners: Cascade Basics. May 2017 Site Owners: Cascade Basics May 2017 Page 2 Logging In & Your Site Logging In Open a browser and enter the following URL (or click this link): http://mordac.itcs.northwestern.edu/ OR http://www.northwestern.edu/cms/

More information

FUZZY INFERENCE SYSTEMS

FUZZY INFERENCE SYSTEMS CHAPTER-IV FUZZY INFERENCE SYSTEMS Fuzzy inference is the process of formulating the mapping from a given input to an output using fuzzy logic. The mapping then provides a basis from which decisions can

More information

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 10: Asymptotic Complexity and

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 10: Asymptotic Complexity and CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims Lecture 10: Asymptotic Complexity and What Makes a Good Algorithm? Suppose you have two possible algorithms or

More information

Programming I Laboratory - lesson 01

Programming I Laboratory - lesson 01 Programming I Laboratory - lesson 0 Introduction in C++ programming environment. The C++ program structure. Computer programs are composed of instructions and data. Instructions tell the computer to do

More information

Programming Project. Remember the Titans

Programming Project. Remember the Titans Programming Project Remember the Titans Due: Data and reports due 12/10 & 12/11 (code due 12/7) In the paper Measured Capacity of an Ethernet: Myths and Reality, David Boggs, Jeff Mogul and Chris Kent

More information

Variables and Data Representation

Variables and Data Representation You will recall that a computer program is a set of instructions that tell a computer how to transform a given set of input into a specific output. Any program, procedural, event driven or object oriented

More information

Intro to Igor Pro: Beyond Getting Started (Adapted from Ingrid Ulbrich 2009 lecture)

Intro to Igor Pro: Beyond Getting Started (Adapted from Ingrid Ulbrich 2009 lecture) Intro to Igor Pro: Beyond Getting Started (Adapted from Ingrid Ulbrich 2009 lecture) CHEM-5181 Mass Spectrometry & Chromatography Prof. Jose L. Jimenez Last update: Aug 2011 1 A Note about Jose s Style

More information

INTRODUCTION TO LABVIEW

INTRODUCTION TO LABVIEW INTRODUCTION TO LABVIEW 2nd Year Microprocessors Laboratory 2012-2013 INTRODUCTION For the first afternoon in the lab you will learn to program using LabVIEW. This handout is designed to give you an introduction

More information

Chapter 1. Numeric Artifacts. 1.1 Introduction

Chapter 1. Numeric Artifacts. 1.1 Introduction Chapter 1 Numeric Artifacts 1.1 Introduction Virtually all solutions to problems in electromagnetics require the use of a computer. Even when an analytic or closed form solution is available which is nominally

More information

CIS220 In Class/Lab 1: Due Sunday night at midnight. Submit all files through Canvas (25 pts)

CIS220 In Class/Lab 1: Due Sunday night at midnight. Submit all files through Canvas (25 pts) CIS220 In Class/Lab 1: Due Sunday night at midnight. Submit all files through Canvas (25 pts) Problem 0: Install Eclipse + CDT (or, as an alternative, Netbeans). Follow the instructions on my web site.

More information

Why C? Because we can t in good conscience espouse Fortran.

Why C? Because we can t in good conscience espouse Fortran. C Tutorial Why C? Because we can t in good conscience espouse Fortran. C Hello World Code: Output: C For Loop Code: Output: C Functions Code: Output: Unlike Fortran, there is no distinction in C between

More information

HANDS-ON START TO WOLFRAM MATHEMATICA. and Programming with the Wolfram Language. Cliff Hastings Kelvin Mischo Michael Morrison.

HANDS-ON START TO WOLFRAM MATHEMATICA. and Programming with the Wolfram Language. Cliff Hastings Kelvin Mischo Michael Morrison. HANDS-ON START TO WOLFRAM MATHEMATICA and Programming with the Wolfram Language Cliff Hastings Kelvin Mischo Michael Morrison Champaign 11 11 1 111THE COMPLETE OVERVIEW 1 Chapter 1 The Very Basics 3 Chapter

More information

MATLAB. Devon Cormack and James Staley

MATLAB. Devon Cormack and James Staley MATLAB Devon Cormack and James Staley MATrix LABoratory Originally developed in 1970s as a FORTRAN wrapper, later rewritten in C Designed for the purpose of high-level numerical computation, visualization,

More information

SoundWriter 2.0 Manual

SoundWriter 2.0 Manual SoundWriter 2.0 Manual 1 Overview SoundWriter 2.0 Manual John W. Du Bois SoundWriter (available free from http://www.linguistics.ucsb.edu/projects/transcription, for Windows only) is software designed

More information

Manual. User Reference Guide. Analysis Application (EMG) Electromyography Analysis

Manual. User Reference Guide. Analysis Application (EMG) Electromyography Analysis Phone: (888) 765-9735 WWW.MINDWARETECH.COM User Reference Guide Manual Analysis Application Electromyography Analysis (EMG) Copyright 2014 by MindWare Technologies LTD. All Rights Reserved. 1 Phone: (614)

More information

ENGR 40M Project 3c: Switch debouncing

ENGR 40M Project 3c: Switch debouncing ENGR 40M Project 3c: Switch debouncing For due dates, see the overview handout 1 Introduction This week, you will build on the previous two labs and program the Arduino to respond to an input from the

More information

printf( Please enter another number: ); scanf( %d, &num2);

printf( Please enter another number: ); scanf( %d, &num2); CIT 593 Intro to Computer Systems Lecture #13 (11/1/12) Now that we've looked at how an assembly language program runs on a computer, we're ready to move up a level and start working with more powerful

More information

How to Make Graphs with Excel 2007

How to Make Graphs with Excel 2007 Appendix A How to Make Graphs with Excel 2007 A.1 Introduction This is a quick-and-dirty tutorial to teach you the basics of graph creation and formatting in Microsoft Excel. Many of the tasks that you

More information

Our Strategy for Learning Fortran 90

Our Strategy for Learning Fortran 90 Our Strategy for Learning Fortran 90 We want to consider some computational problems which build in complexity. evaluating an integral solving nonlinear equations vector/matrix operations fitting data

More information

Contents. Slide Set 1. About these slides. Outline of Slide Set 1. Typographical conventions: Italics. Typographical conventions. About these slides

Contents. Slide Set 1. About these slides. Outline of Slide Set 1. Typographical conventions: Italics. Typographical conventions. About these slides Slide Set 1 for ENCM 369 Winter 2014 Lecture Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Winter Term, 2014 ENCM 369 W14 Section

More information

Extreme Computing. Introduction to MapReduce. Cluster Outline Map Reduce

Extreme Computing. Introduction to MapReduce. Cluster Outline Map Reduce Extreme Computing Introduction to MapReduce 1 Cluster We have 12 servers: scutter01, scutter02,... scutter12 If working outside Informatics, first: ssh student.ssh.inf.ed.ac.uk Then log into a random server:

More information

Exam 8N080 - Introduction MRI

Exam 8N080 - Introduction MRI Exam 8N080 - Introduction MRI Friday January 23 rd 2015, 13.30-16.30h For this exam you may use an ordinary calculator (not a graphical one). In total there are 6 assignments and a total of 65 points can

More information

University of Florida EEL 3701 Dr. Eric M. Schwartz Madison Emas, TA Department of Electrical & Computer Engineering Revision 1 5-Jun-17

University of Florida EEL 3701 Dr. Eric M. Schwartz Madison Emas, TA Department of Electrical & Computer Engineering Revision 1 5-Jun-17 Page 1/14 Example Problem Given the logic equation Y = A*/B + /C, implement this equation using a two input AND gate, a two input OR gate and two inverters under the Quartus environment. Upon completion

More information

Computer Science Lab Exercise 1

Computer Science Lab Exercise 1 1 of 10 Computer Science 127 - Lab Exercise 1 Introduction to Excel User-Defined Functions (pdf) During this lab you will experiment with creating Excel user-defined functions (UDFs). Background We use

More information

SECTION 1: INTRODUCTION. ENGR 112 Introduction to Engineering Computing

SECTION 1: INTRODUCTION. ENGR 112 Introduction to Engineering Computing SECTION 1: INTRODUCTION ENGR 112 Introduction to Engineering Computing 2 Course Overview What is Programming? 3 Programming The implementation of algorithms in a particular computer programming language

More information

Section 4 General Factorial Tutorials

Section 4 General Factorial Tutorials Section 4 General Factorial Tutorials General Factorial Part One: Categorical Introduction Design-Ease software version 6 offers a General Factorial option on the Factorial tab. If you completed the One

More information

Blix the Programmer. An Introduction to Programming. 1.1 We program time. 1.2 First we need a tool

Blix the Programmer. An Introduction to Programming. 1.1 We program time. 1.2 First we need a tool Blix the Programmer An Introduction to Programming 1.1 We program time So you are eager to learn programming, ok let s code a time machine! Imagine you are a programmer like Blix above. Our goal is to

More information

Visual Physics Camera Parallax Lab 1

Visual Physics Camera Parallax Lab 1 In this experiment you will be learning how to locate the camera properly in order to identify and minimize the sources of error that are introduced by parallax and perspective. These sources of error

More information

Java/RealJ Troubleshooting Guide

Java/RealJ Troubleshooting Guide Java/RealJ Troubleshooting Guide by Bob Clark / Sharon Curtis / Simon Jones, September 2000 Some of these tips you will come across during your practical sessions, however we felt it would be helpful to

More information

Valuable points from Lesson 8 Adobe Flash CS5 Professional Classroom in a Book

Valuable points from Lesson 8 Adobe Flash CS5 Professional Classroom in a Book Valuable points from Lesson 8 Adobe Flash CS5 Professional Classroom in a Book You are expected to understand and know how to use/do each of these tasks in Flash CS5, unless otherwise noted below. If you

More information

Troubleshooting An Embedded Sametime Install by Julian Robichaux, panagenda originally published on socialbizug.org, November 2013

Troubleshooting An Embedded Sametime Install by Julian Robichaux, panagenda originally published on socialbizug.org, November 2013 Troubleshooting An Embedded Sametime Install by Julian Robichaux, panagenda originally published on socialbizug.org, November 2013 I was testing the new IBM Sametime 9 client on a few different virtual

More information

An introduction to plotting data

An introduction to plotting data An introduction to plotting data Eric D. Black California Institute of Technology February 25, 2014 1 Introduction Plotting data is one of the essential skills every scientist must have. We use it on a

More information

Laboratory 6. - Using Encounter for Automatic Place and Route. By Mulong Li, 2013

Laboratory 6. - Using Encounter for Automatic Place and Route. By Mulong Li, 2013 CME 342 (VLSI Circuit Design) Laboratory 6 - Using Encounter for Automatic Place and Route By Mulong Li, 2013 Reference: Digital VLSI Chip Design with Cadence and Synopsys CAD Tools, Erik Brunvand Background

More information

Patterning Math Lab 4a

Patterning Math Lab 4a Patterning Math Lab 4a This lab is an exploration of transformations of functions, a topic covered in your Precalculus textbook in Section 1.5. As you do the exercises in this lab you will be closely reading

More information

University of Florida EEL 3701 Dr. Eric M. Schwartz Department of Electrical & Computer Engineering Revision 0 12-Jun-16

University of Florida EEL 3701 Dr. Eric M. Schwartz Department of Electrical & Computer Engineering Revision 0 12-Jun-16 Page 1/14 Quartus Tutorial with Basic Graphical Gate Entry and Simulation Example Problem Given the logic equation Y = A*/B + /C, implement this equation using a two input AND gate, a two input OR gate

More information

Binary file structure for PAMGUARD detector output. Version 4.0

Binary file structure for PAMGUARD detector output. Version 4.0 Binary file structure for PAMGUARD detector output. D. Gillespie & M. Oswald, February 2017 1 Introduction 4.0 This document describes the binary file storage structures used by PAMGuard. Prior to 2010

More information

Lab: Supplying Inputs to Programs

Lab: Supplying Inputs to Programs Steven Zeil May 25, 2013 Contents 1 Running the Program 2 2 Supplying Standard Input 4 3 Command Line Parameters 4 1 In this lab, we will look at some of the different ways that basic I/O information can

More information

University of Illinois Department of Electrical and Computer Engineering ECE 451 Automated Microwave Measurements Laboratory

University of Illinois Department of Electrical and Computer Engineering ECE 451 Automated Microwave Measurements Laboratory University of Illinois Department of Electrical and Computer Engineering ECE 451 Automated Microwave Measurements Laboratory Experiment No. 4 Introduction to the Windows XP Workstation using National Instruments

More information

Buffer Manager: Project 1 Assignment

Buffer Manager: Project 1 Assignment Buffer Manager: Project 1 Assignment Due: Feb 11, 2003 Introduction to Database Systems, UC Berkeley Computer Science 186 Spring 2003 1 Overview of Project 1 - Buffer Manager In this project you will add

More information

Other Loop Options EXAMPLE

Other Loop Options EXAMPLE C++ 14 By EXAMPLE Other Loop Options Now that you have mastered the looping constructs, you should learn some loop-related statements. This chapter teaches the concepts of timing loops, which enable you

More information

Interactive MATLAB use. Often, many steps are needed. Automated data processing is common in Earth science! only good if problem is simple

Interactive MATLAB use. Often, many steps are needed. Automated data processing is common in Earth science! only good if problem is simple Chapter 2 Interactive MATLAB use only good if problem is simple Often, many steps are needed We also want to be able to automate repeated tasks Automated data processing is common in Earth science! Automated

More information

instream: The Individual-based Stream Trout Research and Environmental Assessment Model Version 5.0

instream: The Individual-based Stream Trout Research and Environmental Assessment Model Version 5.0 instream: The Individual-based Stream Trout Research and Environmental Assessment Model Version 5.0 Graphical User Interface Guide Prepared by: Steven F. Railsback Lang, Railsback & Associates Arcata,

More information

CISC-124. Casting. // this would fail because we can t assign a double value to an int // variable

CISC-124. Casting. // this would fail because we can t assign a double value to an int // variable CISC-124 20180122 Today we looked at casting, conditionals and loops. Casting Casting is a simple method for converting one type of number to another, when the original type cannot be simply assigned to

More information

A Walk Through the MSA Software Spectrum Analyzer Mode 12/12/09

A Walk Through the MSA Software Spectrum Analyzer Mode 12/12/09 A Walk Through the MSA Software Spectrum Analyzer Mode 12/12/09 This document is intended to familiarize you with the basic features of the MSA and its software, operating as a Spectrum Analyzer, without

More information

Stata: A Brief Introduction Biostatistics

Stata: A Brief Introduction Biostatistics Stata: A Brief Introduction Biostatistics 140.621 2005-2006 1. Statistical Packages There are many statistical packages (Stata, SPSS, SAS, Splus, etc.) Statistical packages can be used for Analysis Data

More information

RoboDAQ7. By John Buzzi. Masters of Engineering Report. Cornell University

RoboDAQ7. By John Buzzi. Masters of Engineering Report.   Cornell University RoboDAQ7 Masters of Engineering Report By John Buzzi Email: jlb269@cornell.edu Cornell University May 17, 2010 Abstract Learning from and improving on our past mistakes and accomplishments is only possible

More information

CS4023 Week06 Lab Exercise

CS4023 Week06 Lab Exercise CS4023 Week06 Lab Exercise Lab Objective: In this week s lab we will look at writing a program that reads a large matrix of numbers and then reports all numbers that are equal to a reference value (or

More information

USER's GUIDE for PLOT_FINDIF_1

USER's GUIDE for PLOT_FINDIF_1 USER's GUIDE for PLOT_FINDIF_1 S. T. Bolmer & R. A. Stephen November 2004 Page 1 PLOT_FINDIF_1 Plot_findif_1.m is a MATLAB 6 script, which is used to plot output from the Woods Hole Oceanographic Institution

More information

CS 177 Recitation. Week 1 Intro to Java

CS 177 Recitation. Week 1 Intro to Java CS 177 Recitation Week 1 Intro to Java Questions? Computers Computers can do really complex stuff. How? By manipulating data according to lists of instructions. Fundamentally, this is all that a computer

More information

ECE 3574: Applied Software Design: Unit Testing using Catch. Chris Wyatt

ECE 3574: Applied Software Design: Unit Testing using Catch. Chris Wyatt ECE 3574: Applied Software Design: Unit Testing using Catch Chris Wyatt The goal of today s meeting it to learn about a very important part of programming, testing. Unit tests Integration tests Testing

More information

Arduino IDE Friday, 26 October 2018

Arduino IDE Friday, 26 October 2018 Arduino IDE Friday, 26 October 2018 12:38 PM Looking Under The Hood Of The Arduino IDE FIND THE ARDUINO IDE DOWNLOAD First, jump on the internet with your favorite browser, and navigate to www.arduino.cc.

More information

Everything You Always Wanted To Know About Programming Behaviors But Were Afraid To Ask

Everything You Always Wanted To Know About Programming Behaviors But Were Afraid To Ask Everything You Always Wanted To Know About Programming Behaviors But Were Afraid To Ask By Kevin Harrelson Machine Intelligence Lab University of Florida Spring, 1995 Overview Programming multiple behaviors

More information

Chapter 2: Programming Concepts

Chapter 2: Programming Concepts Chapter 2: Programming Concepts Objectives Students should Know the steps required to create programs using a programming language and related terminology. Be familiar with the basic structure of a Java

More information

The tracing tool in SQL-Hero tries to deal with the following weaknesses found in the out-of-the-box SQL Profiler tool:

The tracing tool in SQL-Hero tries to deal with the following weaknesses found in the out-of-the-box SQL Profiler tool: Revision Description 7/21/2010 Original SQL-Hero Tracing Introduction Let s start by asking why you might want to do SQL tracing in the first place. As it turns out, this can be an extremely useful activity

More information

Here are some of the more basic curves that we ll need to know how to do as well as limits on the parameter if they are required.

Here are some of the more basic curves that we ll need to know how to do as well as limits on the parameter if they are required. 1 of 10 23/07/2016 05:15 Paul's Online Math Notes Calculus III (Notes) / Line Integrals / Line Integrals - Part I Problems] [Notes] [Practice Problems] [Assignment Calculus III - Notes Line Integrals Part

More information

MIS 0855 Data Science (Section 006) Fall 2017 In-Class Exercise (Day 18) Finding Bad Data in Excel

MIS 0855 Data Science (Section 006) Fall 2017 In-Class Exercise (Day 18) Finding Bad Data in Excel MIS 0855 Data Science (Section 006) Fall 2017 In-Class Exercise (Day 18) Finding Bad Data in Excel Objective: Find and fix a data set with incorrect values Learning Outcomes: Use Excel to identify incorrect

More information

An Introduction to MATLAB See Chapter 1 of Gilat

An Introduction to MATLAB See Chapter 1 of Gilat 1 An Introduction to MATLAB See Chapter 1 of Gilat Kipp Martin University of Chicago Booth School of Business January 25, 2012 Outline The MATLAB IDE MATLAB is an acronym for Matrix Laboratory. It was

More information

(10393) Database Performance Tuning Hands-On Lab

(10393) Database Performance Tuning Hands-On Lab (10393) Database Performance Tuning Hands-On ASH Analytics Real-time ADDM SQL Performance Analyzer Objective: Database Performance Hands-on The objective of this lab to provide exercises designed to showcase

More information

Role of Parallel Imaging in High Field Functional MRI

Role of Parallel Imaging in High Field Functional MRI Role of Parallel Imaging in High Field Functional MRI Douglas C. Noll & Bradley P. Sutton Department of Biomedical Engineering, University of Michigan Supported by NIH Grant DA15410 & The Whitaker Foundation

More information

Introduction to Domain Testing

Introduction to Domain Testing Introduction to Domain Testing Cem Kaner January, 2018 Copyright (c) 2018 Cem Kaner Domain Testing 1 What Is Domain Testing? The most widely taught technique for designing software tests Copyright (c)

More information