SIMG 726-972 Syllabus

advertisement
Computing for Imaging
Science (SIMG-726)
Introduction
•
•
•
•
•
•
Course Information
Course Objective
Prerequisites/Expectations
Course Grading
Course Text
Computing Resources
Winter Quarter 2004
Rolando V. Raqueño
2
Course Information
• Course Title
– Computing for Imaging Science
• Course Number
– SIMG 726 or 10-51-726-01
• Meeting Times
– Tuesdays and Thursdays 2:00-3:50 PM
• Meeting Locations
– 76-2155
Winter Quarter 2004
Rolando V. Raqueño
3
Contact Information
• Instructor
– Rolando Raqueño
• E-mail (rolo@cis.rit.edu)
• Phone (475-6907)
• Office (76-3108)
• Office Hours
– Tuesdays and Thursdays
• 4:00-5:30 PM
• Other times by appointment
Winter Quarter 2004
Rolando V. Raqueño
4
Course Objective
• Basic proficiency in UNIX operating
system for problem solving in imaging
• Learning elementary programming
constructs in IDL and refinement of
programming skills
• Useful data manipulation techniques
• Establish software development,
validation, and documentation practices
Winter Quarter 2004
Rolando V. Raqueño
5
UNIX Proficiency
• Basic UNIX Environment Proficiency
– Understanding Basic Computing Data Type & Hardware Issues
• Image “Formats”
– Networked Environment
• VNC
• X-windows
– Editors
• “vi”
– Navigation and File Manipulation
– Documentation Tools
• Wiki.cis.rit.edu
• (LaTeX)
– Security
• SSH
• PGP
Winter Quarter 2004
Rolando V. Raqueño
6
Why UNIX?
• Why the UNIX Environment?
–
–
–
–
–
–
–
–
Very mature technology
Maintains a large base of freely available tools
LINUX is “free” and can run on minimal hardware
Remote computing is a natural part of UNIX
Very close control of the computer
Minimalist approach to computing
Successful implementation in MAC OS X
GNU Cygwin options
Winter Quarter 2004
Rolando V. Raqueño
7
Shortcuts and Timesavers
• Learn shortcuts and time savers
– when solving programming related problems
(when not to do traditional program)
– a.k.a “Stupid UNIX Tricks”
– Shell Scripts
– AWK & SED
– Makefiles
• Computing applications in an imaging context
Winter Quarter 2004
Rolando V. Raqueño
8
Compiling Traditional
Programs in UNIX
• Legacy FORTRAN and C code
– how to compile these programs
• Tools to aid in compiling (makefiles)
• Common pitfalls
• Setup tips for input and output data files
Winter Quarter 2004
Rolando V. Raqueño
9
Imaging Concepts
• Application in an imaging context
– Bi-level
– Monochrome
– Color
– Multispectral
– Hyperspectral
Winter Quarter 2004
Rolando V. Raqueño
10
IDL Environment
• IDL Basics,Syntax, and Semantics
– Your responsibility to get started
• IDL Graphical User Interface (GUI)
development
– Enable batch processing
• How IDL interacts with the UNIX
environment.
Winter Quarter 2004
Rolando V. Raqueño
11
This Course is/(is not)
• This course is not...
– an algorithm course in image processing
– computational theory course
– a programming course in C/C++
• This course will...
– teach methods to prototype and test image algorithms
– Teach you to organize a package translatable to traditional
programming languages
– Be an opportunity and avenue to explore different tools for
your research
• You can learn all these tools on your own
– But I’ve already made all the mistakes for you
Winter Quarter 2004
Rolando V. Raqueño
12
This course is not…
• This course is not...
– Designed to make you a software engineer
• This course will...
– Give you the skills to communicate with software
engineers about your algorithm, expected inputs, and
expected output
– Provide give them necessary concepts, specifications
and test cases, i.e.,
The working prototype
and documentation
Winter Quarter 2004
Rolando V. Raqueño
13
Documentation
• Use of wiki as a medium for
– Archiving your research
– Collaborating with others
– Knowledge repository
• wiki.cis.rit.edu
Winter Quarter 2004
Rolando V. Raqueño
14
Publishing your thesis
LaTeX
• Course will introduce fundamental
LaTeX concepts
• Help with documentation
• Help with your thesis/dissertation
Winter Quarter 2004
Rolando V. Raqueño
15
Documentation,
Documentation
• This course will...
– Teach you about documentation in the form
of source code control.
RCS
• Revision Control System
Winter Quarter 2004
Rolando V. Raqueño
16
Prerequisites/Expectations
• Experience in a high level programming language
(e.g. C, FORTRAN, BASIC, PASCAL, ADA, etc.) in the
last 20+ years.
• Ability to make lots of mistakes (and remember them)
• Ability to deal with frustration, and know when to quit
• Good Typing Skills a plus
• Good Technical Writing Skills
• Be able to generate a User’s Guide with step-by-step
detail
Winter Quarter 2004
Rolando V. Raqueño
17
Milestones in the Progression of
Programming Experience
• Programming in traditional languages
– Beginning (Monolithic programs)
• single letter variables
• Loops and maybe an occasional GOTO
– Intermediate ( Use of subroutines and functions)
• Favor Local variables rather than Global Variables
• Understand parameter passing schemes
– Advanced (Structures and abstract data types)
• More meaningful variable names
Winter Quarter 2004
Rolando V. Raqueño
18
Milestones in the Progression
of Programming Experience
• Programming in traditional languages
– Learning that hand-optimizing code at the
development is simply not worth the time
– Learning to separate the algorithm from the
bells and whistles (i.e., input and output code)
– Creating a library of “tools”
– Use of revision control utilities along with
README’s and formal documentation.
Winter Quarter 2004
Rolando V. Raqueño
19
Milestones in the Progression
of Programming Experience
• Programming in non-traditional languages
– Thinking about the problems in terms of
matrix and vector operations
– Avoiding loops and conditionals
– Thinking about the “Non-expert” by designing
the Graphical User Interface (GUI)
– *Realizing that there is no single software tool
that solves everything.
Winter Quarter 2004
Rolando V. Raqueño
20
Course Grading
• Final IDL GUI Project
40%
– Presentation and Report
• Mid-term Exam
• Programming Assignment(s)
30%
20%
– Will ultimately be questions in Mid-term
• Quizzes (every week)
Winter Quarter 2004
Rolando V. Raqueño
10%
21
Course Text
• Liam Gumley’s Practical IDL Programming
– Required
• Unix Power Tools
– Required
• Cliff Stoll’s The Cuckoo’s Egg
– Holiday Required Reading
• Learning LaTeX
– Optional
• Research Systems Incorporated (RSI)
– Online Manuals
Winter Quarter 2004
Rolando V. Raqueño
22
Other References
• Text
– Learning the UNIX Operating System
– UNIX Power Tools
• On-line
– News groups
• comp.lang.idl-pvwave
– Web sites
• www.rsinc.com
• www.ctan.org (LaTeX references)
Winter Quarter 2004
Rolando V. Raqueño
23
Other References
• Notes
– These Powerpoint slides will be available
on-line for your reference.
– Wiki.cis.rit.edu
• Keyword: SyllabusSimg7262004
Winter Quarter 2004
Rolando V. Raqueño
24
Computing Resources
• RIT’s ISC
– Provides general computing resources to
the RIT community
• CIS computing facilities
– Imaging specific capabilities
• (IDL, ENVI, etc.)
– Undergraduate and Graduate DIP Lab
Winter Quarter 2004
Rolando V. Raqueño
25
Syllabus until Holiday Break
• Class #0 - Today
– This Lecture
– VNC
• Assignment #1
– Get your account setup (CIS)
– Register yourself to wiki.cis.rit.edu
– Send e-mail to rolo@cis.rit.edu with personal info
(Name, Address, Phone Number,
Undergraduate/Graduate Majors, Computer
Experience)
– Go over the on-line tutorial vitutor (CIS)
% ~rvrpci/pub/vitutor/vitutor
– Get VNC installed on your home computer
Winter Quarter 2004
Rolando V. Raqueño
26
Syllabus
• Class #1
– Tour of UNIX, X-Windows
– Introduction vi
– Getting started and Tour of IDL
• Working with Data
• Plotting
• Hardcopy output from IDL
• Project Assignment #1
– (Due a week after we return)
– Implementing Statistics Functions in IDL
– Documentation in LaTeX
Winter Quarter 2004
Rolando V. Raqueño
27
Syllabus
• Class #2
– Number Systems in Computers
– Fundamentals of IDL Programming
– Final Project Topics
– Intro to LaTeX
• QUIZ #1
– Topics
• man, ls, cp, mv, pwd
Winter Quarter 2004
Rolando V. Raqueño
28
Syllabus
• Class #3
– The PBMPLUS Utilities
– IDL and PBMPLUS
– Basic IDL Image Manipulations
– Intro to BibTex
Winter Quarter 2004
Rolando V. Raqueño
29
Syllabus
• Class #4
– Reading/Writing Data in IDL
– Image Formats
– Final Project Examples
• Quiz #2
– Topics
• finger, grep, jobs, mkdir, ci, co
Winter Quarter 2004
Rolando V. Raqueño
30
Syllabus
• Class #5
– IDL debugging & GUI Introduction
• Break Assignments
– Read the Cuckoo’s Egg (Quiz Material)
– Mockup Drawing of GUI Final Project
Winter Quarter 2004
Rolando V. Raqueño
31
Summary
• Course Information and Objectives
• Prerequisites/Expectations and
Experience
• Course Grading
• Course Text and Resources
• Syllabus until Break
Winter Quarter 2004
Rolando V. Raqueño
32
Things to do before next class
• Send rolo@cis.rit.edu e-mail about
yourself
• Visit wiki.cis.rit.edu for general CIS
computer system information
• Register yourself into the CIS wiki
– http://wiki.cis.rit.edu/bin/view/TWiki/TWikiR
egistration
Winter Quarter 2004
Rolando V. Raqueño
33
More things to do before next
class
• Experiment with VNC
• Go over the on-line tutorial vitutor (CIS)
% ~rvrpci/pub/vitutor/vitutor
• Print out the following documents for
your reference
– http://www.cis.rit.edu/~rvrpci/teaching/LaTe
X/lshort.pdf
– http://www.rpi.edu/campus/doc/acs.memos/rpi1
09.pdf
Winter Quarter 2004
Rolando V. Raqueño
34
Download