author: Brian High & Elliot Norwood date: January 12, 2015 transition: fade incremental: true
http://github.com/brianhigh/research-computing
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
- Visual
- Windows, Files and Folders, Graphics.
- Most common modern interface.
- Textual
- Command line
- Often more powerful and faster than the visual interface, but less intuitive.
- Graphical User Interface (GUI)
- Most common contemporary way to interface with computers.
- Uses visual / graphical representations to interact with files and applications.
- eg. Files & folders, "windows", icons, "Apps", buttons.
- Web
- Web Browsers (eg. IE, Safari, Firefox, Chrome).
- Connects to a remote web server to display information.
- Visual navigation, point-n-click (tap), drag-n-drop, gestures.
- Physical actions should corrospond to computer behavior.
- Most useful for common or visual tasks (e.g. photo editing).
- More intuitive interface for most computer users.
- Server provides application to common client app (browser).
- Most useful for network-centric, multi-user, distributed apps.
- Can be used to transfer a remote file to local machine (downloads).
- Markup
- Categorize, organize, and modify content.
- Styles
- The design side of a web interface.
- Scripts
- Allows more complex interaction than basic HTML.
- Frameworks
- Data Exchange
- "HyperText Markup Language" (HTML)
- The basic language of the web.
- Uses "Elements and Tags" to organize content.
- Markup is not visible to the end user.
- Tags / elements can have default effects (eg. b for bold) or be used strictly for organization (eg. header)
- Can also define custom tags / elements, for the purposes of styling or scripts.
- "Cascading Style Sheets" (CSS)
- The design side of a website
- Design should be separate from content
- Allows for layout (margins, sizes of elements), colors (font and background, images), changing fonts, and more.
- Can quickly change the look of a site without changing content by switch stylesheets.
Server-side web-scripting languages and platforms:
- CGI (Old school, usually Perl)
- PHP (Most common)
- ASP (Microsoft)
- JSP (Java)
- Python (Django, Pyramid Frameworks)
Client-side
- JavaScript (do not confuse with Java)
- Flash
Allow users to easily add and modify content, without having to know the underlying web technologies.
- Content Management System (CMS)
- Drupal, Wordpress, Django
- Learning Management System (LMS)
- Canvas
- HTTP
- Client sends a request, server returns a response.
- XML
- Standard markup language that can be used by tools (eg. RSS, XHTML, SOAP) to deliver data.
- JSON
- An alternative to XML, transmits data in attribute-value pairs.
- Ajax uses JSON to request new data after a page has loaded by sending data to server dynamically.
- Command Line Interface (CLI)
- All text based. Some basic graphics can be simulated with text.
- Requires exact commands including spelling and case.
- Application Program Interface (API)
- Provides the "building blocks" to develop a program.
- Can allow third party utilities to "hook into" existing applications.
- Text prompts & commands (or menus)
- Flags: short hand option
- Options: Specifies addition actions for your command
- Arguments: Specifies information you want the command to act on (eg. a file name)
- Uses:
- Data manipulation
- Very fast interface due to lack of graphics (good for low bandwidth remote connections)
- Can be much faster / easier to use than graphical if you know the commands
- DOS - "Disk Operating System"
- CMD.EXE
- PowerShell
- "Bourne Again Shell"
- Unix systems (Mac OSX) and Linux
- Windows: Cygwin, GitBash
Scientific and statistics apps use CLI
- Stata
- R
- MATLAB
- "Application Programming Interface" - using code libraries
- Most useful for automation and back-end data transfer
- Develop your own apps / utilities using data from another source
- Example: Google Maps API