- •1. TABLE OF CONTENTS
- •2. AN INTRODUCTION TO UNIX
- •2.1 OVERVIEW
- •2.2 UNIX
- •2.2.1 Using UNIX Workstations in general:
- •2.2.2 Directories, Files, Etc.
- •2.2.3 Advanced Concepts
- •2.3 THE NETWORK
- •2.4 GOOD MANNERS
- •3. THE INTERNET
- •3.1 NETWORKS
- •3.1.1 Computer Addresses
- •3.2 NETWORK TYPES
- •3.2.1 Permanent Wires
- •3.2.2 Phone Lines
- •3.3 NETWORK PROTOCOLS
- •3.3.1 Mail Transfer Protocols
- •3.3.1.1 - Attachments
- •3.3.1.2 - Mail Lists
- •3.3.2 FTP - File Transfer Protocol
- •3.3.3 News
- •3.3.4 HTTP - Hypertext Transfer Protocol
- •3.3.5 Chat
- •3.3.6 Novell
- •3.3.7 Security
- •3.4 DATA FORMATS
- •3.4.1 HTML - Hyper Text Markup Language
- •3.4.1.1 - Publishing Web Pages
- •3.4.2 URLs
- •3.4.3 Hints
- •3.4.4 Specialized Editors
- •3.4.6 Encryption
- •3.4.7 Compression
- •3.5 PULLING ALL THE PROTOCOLS AND FORMATS TOGETHER WITH BROWSWERS
- •3.6 OTHER STUFF
- •3.6.1 Clients and Servers
- •3.6.2 Java
- •3.6.3 Javascript
- •3.6.5 Searches
- •3.6.6 ActiveX
- •3.6.7 Graphics
- •3.6.8 Animation
- •3.6.9 Video
- •3.6.10 Sounds
- •3.6.11 Other Program Files
- •3.6.12 Fancy Stuff
- •4. TEACHING WITH THE INTERNET
- •4.1 LECTURES
- •4.1.1 Equipment
- •4.1.2 Techniques
- •4.2 ON-LINE NOTES
- •4.3 ON-LINE MARKING
- •4.3.1 Web Pages
- •4.3.2 email
- •4.4 The Time-Line For My First On-Line Course (Fall 1996)
- •5. WWW and HTML
- •5.1 Why Bother?
- •5.2 Where to Find Netscape
- •5.3 How to Get Your Own Home Page
- •5.4 How to Create a file
- •5.5 Resources
- •6. A BASIC INTRODUCTION TO ‘C’
- •6.2 BACKGROUND
- •6.3 PROGRAM PARTS
- •6.4 HOW A ‘C’ COMPILER WORKS
- •6.5 STRUCTURED ‘C’ CODE
- •6.6 ARCHITECTURE OF ‘C’ PROGRAMS (TOP-DOWN)
- •6.7 CREATING TOP DOWN PROGRAMS
- •6.8.1 Objectives:
- •6.8.2 Problem Definition:
- •6.8.3 User Interface:
- •6.8.3.1 - Screen Layout (also see figure):
- •6.8.3.2 - Input:
- •6.8.3.3 - Output:
- •6.8.3.4 - Help:
- •6.8.3.5 - Error Checking:
- •6.8.3.6 - Miscellaneous:
- •6.8.4 Flow Program:
- •6.8.5 Expand Program:
- •6.8.6 Testing and Debugging:
- •6.8.7 Documentation
- •6.8.7.1 - Users Manual:
- •6.8.7.2 - Programmers Manual:
- •6.8.8 Listing of BeamCAD Program.
- •6.9 PRACTICE PROBLEMS
- •7. GUI DESIGN
- •7.1 PRACTICE PROBLEMS
- •8. AN EXAMPLE - BEAMCAD
- •9. PROGRAMMING IN JAVA
- •9.1 OVERVIEW
- •9.2 THE LANGUAGE
- •9.3 OBJECT ORIENTED PROGRAMMING
- •9.4 REFERENCES/BIBLIOGRAPHY
- •10. DATABASES
- •11. MESSAGE PASSING ON NETWORKS
- •12. MATHEMATICAL ELEMENTS OF COMPUTER GRAPHICS
- •12.1 INTRODUCTION
- •12.2 PIXELS
- •12.2.1 The Perspective Transform
- •12.3 LINE DRAWING
- •12.3.1 Hidden Lines
- •12.4 POLYGON DRAWING
- •12.5 SHADED POLYGONS
- •12.6 COLORS
- •12.6.1 Color Maps
- •12.6.1.1 - Quantization with an Octree RGB Cube
- •12.6.1.1.1 - Algorithm and Implementation
- •12.6.1.1.2 - Color Quantization Data Structures
- •12.7 DITHERING
- •12.7.1 A Model for Light Ray Reflection
- •12.7.2 A Model for Light Ray Refraction:
- •12.7.3 A Model for Specular Reflection of Point Light
- •12.8 RAY TRACING
- •12.8.1 Basic Ray Tracing Theory
- •12.8.1.1 - A Model for Diffuse Reflection of Ambient Light
- •12.8.1.2 - A Model for Diffuse Reflection of Point Light:
- •12.8.1.3 - Collision of a Ray with a Sphere:
- •12.8.1.4 - Collision of a Ray With a Plane:
- •12.8.1.5 - Mapping a Pattern
- •12.8.2 Ray Tracer Algorithms
- •12.8.3 Bounding Volumes
- •12.8.4 Shadows
- •12.8.5 Aliasing
- •12.8.6 Advanced topics
- •12.9 RADIOSITY
- •12.10 ADVANCED GRAPHICS TECHNIQUES
- •12.10.1 Animation
- •12.11 REFERENCES
- •12.12 PRACTICE PROBLEMS
- •13. NEW TOPICS
- •13.1 VIRTUAL REALITY
- •13.2 MULTIMEDIA
- •14. VISIONS SYSTEMS
- •14.1 OVERVIEW
- •14.2 APPLICATIONS
- •14.3 LIGHTING AND SCENE
- •14.4 CAMERAS
- •14.5 FRAME GRABBER
- •14.6 IMAGE PREPROCESSING
- •14.7 FILTERING
- •14.7.1 Thresholding
- •14.8 EDGE DETECTION
- •14.9 SEGMENTATION
- •14.9.1 Segment Mass Properties
- •14.10 RECOGNITION
- •14.10.1 Form Fitting
- •14.10.2 Decision Trees
- •14.11 PRACTICE PROBLEMS
- •15. SIMULATION
- •15.1 MODEL BUILDING
- •15.2 ANALYSIS
- •15.3 DESIGN OF EXPERIMENTS
- •15.4 RUNNING THE SIMULATION
- •15.5 DECISION MAKING STRATEGY
- •15.6 PLANNING
- •15.7 NEURAL NETWORK THEORY
- •16. ARTIFICIAL INTELLIGENCE (AI)
- •16.1 OVERVIEW
- •16.2 EXPERT SYSTEMS
- •16.3 FUZZY LOGIC
- •16.4 NEURAL NETWORKS
- •16.4.1 Neural Network Calculation of Inverse Kinematics
- •16.4.1.1 - Inverse Kinematics
- •16.4.1.2 - Feed Forward Neural Networks
- •16.4.1.3 - The Neural Network Setup
- •16.4.1.4 - The Training Set
- •16.4.1.5 - Results
page 21
programs - installation programs are normally compressed
• Typical compression formats include,
zip - zip, medium range compression gz - g-zip - good compression
Z - unix compression
Stuffit - A Mac compression format
• Some files, such as text, will become 1/10 of their original size.
3.5 PULLING ALL THE PROTOCOLS AND FORMATS TOGETHER WITH BROWSWERS
•As you have already seen, the browser (ie, Netscape) helps pull these resources together.
•When we want to do things that are not part of the standard browser, we can use plug-ins.
•Plug-ins are small programs that can be used by Browsers to deal with different Protocols and Formats.
EXERCISE: Go to the Netscape home page, and call up the plug-in directory. Look for a plug-in you would be able to use. You may also want to try (www.autodesk.com) to find a DWF viewer plugin.
3.6 OTHER STUFF
3.6.1 Clients and Servers
•Some computers are set up to serve others as centers of activity, sort of like a campus library. Other computers are set up only as users, like bookshelves in a closed office. The server is open to all, while the private bookshelf has very limited access.
•A computer server will answer requests from other computers. These requests may be,
-to get/put files with FTP
-to send email
-to provide web pages
•A client does not answer requests.
page 22
• Both clients and servers can generate requests.
EXERCISE: Using Netscape try to access the IP number of the machine beside you. You will get a message that says the connection was refused. This is because the machine is a client. You have already been using servers to get web pages.
•Any computer that is connected to the network Client or Server must be able to generate requests. You can see this as the Servers have more capabilities than the Clients.
•Microsoft and Apple computers have limited server capabilties, while unix and other computer types generally have more.
Windows 3.1 - No client or server support without special software Windows 95 - No server support without special software Windows NT - Limited server support with special versions MacOS - Some server support with special software
Unix - Both client and server models built in
•In general you are best advised to use the main campus servers. But in some cases the extra effort to set up and maintain your own server may also be useful.
•To set up your own server machine you might,
1.Purchase a computer and network card. A Pentium class machine will actually provide more than enough power for a small web site.
2.Purchase of copy of Windows NT server version.
3.Choose a name for your computer that is easy to remember. An example is ‘artsite’.
4.Call the Information technology people on campus, and request an IP address. Also ask for the gateway number, netmask, and nameserver numbers. They will add your machine to the campus DNS so that others may find it by name (the number will always work if chosen properly).
5.Connect the computer to the network, then turn it on.
6.Install Windows NT, and when asked provide the network information. Indicate that web serving will be permitted.
7.Modify web pages as required.
3.6.2 Java
•This is a programming language that is supported on most Internet based computers.
•These programs will run on any computer - there is no need for a Mac, PC and Unix version.
•Most users don’t need to program in Java, but the results can be used in your web pages
page 23
EXERCISE: Go to ‘www.javasoft.com’ and look at some sample java programs.
3.6.3 Javascript
• Simple programs can be written as part of an html file that will add abilities to the HTML page.
3.6.4 CGI
•CGI (Common Gateway Interface) is a very popular technique to allow the html page on the client to run programs on the server.
•Typical examples of these include,
-counters
-feedback forms
-information requests
3.6.5 Searches
• There are major search engines on the Internet.
EXERCISE: Go to ‘www.yahoo.com’ and search for something you are interested in.
• You can also install local search engines for your site.
EXERCISE: Go to ‘claymore.engineer.gvsu.edu’ and use the search function to find a word/ term you are interested in.
3.6.6 ActiveX
•This is a programming method proposed by Microsoft to reduce the success of Java - It has been part of the antitrust suit against Microsoft by the Justice Department.
•It will only work on IBM PC computers running the ‘Internet Explorer’ browser from Microsoft.
page 24
•One major advantage of ActiveX is that it allows users to take advantage of programs written for Windows machines.
•Note: Unless there is no choice avoid this technique. If similar capabilities are needed, use Java instead.
3.6.7 Graphics
• Two good formats are,
GIF - well suited to limited color images - no loss in compression. Use these for line images, technical drawings, etc
JPG - well suited to photographs - image can be highly compressed with minimal distortion. Use these for photographs.
•Digital cameras will permit image capture and storage - images in JPG format are best.
•Scanners will capture images, but this is a poor alternative as the image sizes are larger and image quality is poorer
-Photographs tend to become grainy when scanned.
-Line drawings become blurred.
•Screen captures are also possible, but do these with a lower color resolution on the screen (256 color mode).
3.6.8 Animation
•These are not video, but moving drawings/cartoons.
•Animations are limited, but are best done with animated gif files.
•Other options include,
-java programs
-special plug-ins such as shockwave
EXERCISE: Find an animation on a student page at ‘claymore.engineer.gvsu.edu/students.html’.