<<

CSCE Skills List Arjun Dasgupta and Jeffery Williams (Under the guidance of Dr.Craig W. Thompson)

DRAFT – 11/2/06

Over the four years of their undergraduate studies, and Computer Engineering Department students will learn a variety of technical skills including several of the ones listed on the following pages. This will help them in their courses and, later, on the job. We extensively used Wikipedia and Google search to come up with the definitions and helpful links. Please send corrections and suggested additions to Craig Thompson .

*The fields marked with an asterisk were considered by an employee of Acxiom Corporation to be less important than other skills with respect to Acxiom Corporations’s needs.

1. Categories of Skills

Programming Languages / Markup Languages

 ABAP   ActionScript  PHP   QBasic  Basic  Ruby  ++  RPG  C Programming   Scheme  Cascading Style Sheets  SQL  C#   VHDL  DHTML  XML  HTML  COBOL   LaTeX  JavaScript  SVG  LISP  XSLT  Pascal Interactive Development Environment (IDEs)

 BlueJ  JBuilder  Software Tools

 Adobe Photoshop  Macromedia Dreamweaver  DAEMON Tools  Open Office  GoLive  Microsoft PowerPoint  Lotus 123  Adobe Premier  Microsoft Excel  Quartus II  Microsoft Word  Microsoft Visio  Macromedia Flash  ANT

2 Hardware Design Tools

 Mentor Graphics  Logic Design  ASIC  MAX+PLUS II Baseline  IC Design  VHDL  FPGA/CPLD Manufacturers

 3Com switches  Clockspeed Architecture Tools

 Computer Architecture  Client Server Operating Systems   Solaris   Microsoft Windows Server 2003  Linux  MS DOS  Mackintosh OS  Open BSHardware Connectors

 CAT5 Cabling  Network Cards Computer Science concepts

 Algorithms  Electronics Engineering  Data Structures  Database Software Engineering Tools

 ANT  EDI  Apache  log4j  CVS  make  DAO  Oracle 8  DAEMON tools  ODBC  djbdns  Progress  Debugging  SSI  DJGPP

3 Frameworks

 Java technology  .net  ASP.NET

4 2. Instructors, Courses and Suggestions This section still needs work. This is intended to be an inventory of what skills are learned or assumed in each course. Instructors Course Specific Skills Learned in this course Amy Apon CSCE 1113 C Programming Foundations I UNIX. Russell Deaton CSCE 1123 Java Programming Foundations II Xwindows openSSL Pat Parkerson CENG 2113 Digital Techniques I Jia Di CENG 2213 digital logic (AND, OR and NOT gates) Computer Organizations Helen Shen CENG 2213 digital logic (AND, OR and NOT gates) Computer Organizations John Lusth CSCE 2143 Java Data Structures Gordon Beavers CSCE 3313 Algorithms Wingning Li CSCE 3613 Operating Systems C UNIX Linux Windows Jia Di CENG 3953 Quartus II VHDL Synopsys Jia Di CENG 4113 MPLAB Embedded Systems assembly language to program micro- controllers Pat Parkerson CENG 4213 Mentor Graphics including Design Manager, Computer Architecture Design Architect, and QuickSim II Jia Di CENG 4233 Synopsys Low-Power Digital Systems Amy Apon CSCE 4253 John Lusth CSCE 4313 Scheme Programming Languages LaTeX HTML ANT gdb (debugger used by C ) djgbb (GNU ) vi emacs

5 Wingning Li CSCE 4323 Formal Languages Pat Parkerson CENG 4353 VHDL FPGA/CPLD System Design Quartus II from Altera Bob Crisp CENG 4423 Computer Systems Analysis Dale Thompson CENG 4423 Computer Systems Analysis Bob Crisp CSCE 4513 Software Engineering Ron Skeith CSCE 4513 Software Engineering Brajendra Panda CSCE 4523 SQL, Oracle Database Management Systems Craig Thompson CSCE 4523 SQL Database Management Systems Choice of RDBMS: Access, MySQL, Oracle 9i or 10g, DB2, NCR Teradata ODBC, JDBC TBD CSCE 4533 Software Design Patterns TBD CSCE 4543 Software Architecture Bob Crisp, CSCE 4561 and CSCE 4963 HTML Craig Thompson Capstone I/II OpenSSH CENG 4571 and CENG 4973 Senior Design I/II Craig Thompson CSCE 4613 Lisp (exposure) Artificial Intelligence (exposure) Protégé ontology editor Predicate calculus TBD CSCE 4623 Intelligent Robot Control Dale Thompson CENG 4753 Computer Networks Allen Baker CENG 4813 Computer Graphics Brajendra Panda CSCE 490 Encase Computer Forensics

6 3. Skills Listed Alphabetically

A

1. Algorithms – An algorithm is a procedure for accomplishing some task which, given an initial state, will terminate in a defined end-state. The computational complexity and efficient implementation of the algorithm are important in computing, and this depends on suitable data structures. Here are a few useful links : National Institute of Standards and Technology, Soft Panorama 2. ASIC - is an application specific integrated circuit (IC) customized for a particular use, rather than intended for general-purpose use. For example, a chip designed solely to run a cell phone is an ASIC. In contrast, the 7400 series and 4000 series integrated circuits are logic building blocks that can be wired together to perform many different applications. Intermediate between ASICs and standard products are application specific standard products. Useful links: University of Hawaii, ASIC-world.com 3. Assembler - is a kind of computer program for translating assembly language — essentially, a mnemonic representation of machine language — into object code. A cross assembler (see cross compiler) produces code for one type of processor, but runs on another. The computational step where an assembler is run is known as assembly time. Useful links: Programmers Heaven, Soft Panorama 4. *ActionScript - is an ECMAScript-based used for scripting Macromedia Flash movies and applications. Since both ActionScript and JavaScript are based on the same ECMAScript syntax, fluency in one theoretically translates easily to the other. However, while JavaScript's DOM is browser window-, document- and form-centric, the ActionScript DOM is movie-centric, which may include animations, audio, text and event handling. Useful links: Macromedia Flash (Adobe) tutorial, Introduction to Programming with Macromedia Flash MX and ActionScript (PDF) 5. Adobe Photoshop - is a graphics editor developed and published by Adobe Systems. It is the market leader for commercial bitmap image manipulation, and probably the most well- known piece of software produced by Adobe Systems. It is considered the industry standard in most, if not all, jobs related to the use of visual elements. It is usually referred to simply as "Photoshop". Photoshop is currently available for Mac OS and Microsoft Windows; versions up to Photoshop 9.0 can also be used with other operating systems such as Linux using software such as CrossOver Office. Useful links: Adobe Photoshop 7, Good-Tutorials, PhotoshopCafe, Mike’s Sketchpad,Google “photoshop tutorial” 6. ANT - is a software tool for automating software build processes. It is similar to make but is written in the Java language and is primarily intended for use with Java. Useful links: Apache Ant website, Introduction to Ant (Exubero) 7. Apache - is a free software/open source HTTP web server for Unix-like systems (BSD, Linux, and UNIX systems), Microsoft Windows, Novell NetWare and other platforms. Useful links: Wikipedia, Apache tutorial 8. *ASP.NET-ASP.NET is a set of web development technologies marketed by Microsoft. Programmers can use it to build dynamic web sites, web applications and XML web

7 services. It is part of Microsoft's .NET platform and is the successor to Microsoft's Active Server Pages (ASP) technology. Even though ASP.NET takes its name from Microsoft's old web development technology, ASP, the two differ significantly. Microsoft has completely rebuilt ASP.NET, based on the Common Language Runtime (CLR) shared by all Microsoft .NET applications. Programmers can write ASP.NET code using any of the different programming languages supported by the .NET Framework, usually C#, Visual Basic.NET, or JScript .NET, but also including open-source languages such as Perl and Python. ASP.NET has performance benefits over other script-based technologies because the server-side code is compiled to one or a few DLL files on a web server. Useful links : Godotnet QuickStart tutorial, FunctionX tutorial 9. Assembly Language- Assembly language, commonly called assembly, asm or symbolic , is a human-readable notation for the machine language that a specific computer architecture uses. Machine language, a pattern of bits encoding machine operations, is made readable by replacing the raw values with symbols called mnemonics. Assembly is derived from a similar representation called short code, whose programming 'language' was of the same name. Unlike in high-level languages, there is usually a 1-to-1 correspondence between simple assembly statements and machine language instructions. Useful links : OSdata.com, accu.org 10. Antivirus - consists of computer programs that attempt to identify, thwart and eliminate computer viruses and other malicious software. Useful links : Microsoft’s list of antivirus software 11. *ABAP - ABAP (Advanced Business Application Programming) is a high level programming language created by the German software company SAP. It is currently positioned as the language for programming SAP's Web Application Server, part of its NetWeaver platform for building business applications. Its syntax is somewhat similar to COBOL. Useful links : Introduction to ABAP objects, SAP Development Network

B

12. BASIC- In computer programming, BASIC (an acronym for Beginner's All-purpose Symbolic Instruction Code [1]) refers to a family of high-level programming languages. It was originally designed in 1963, by John George Kemeny and Thomas Eugene Kurtz at Dartmouth College, to allow students not in science fields to use computers. At the time all computer use required writing custom software, which was something only scientists and mathematicians tended to do. It became widespread on home microcomputers in the 1980s, and remains popular to this day in a handful of heavily evolved dialects. Useful links : Google Directory 13. *BlueJ - is an interactive Java development environment, developed mainly for educational purposes, but also suitable for small-scale development. BlueJ was developed to support the learning and teaching of object-oriented programming, and its design differs from other development environments as a result. The main screen graphically shows the class structure of an application under development (in a UML-like diagram), and objects can be interactively created and tested. Useful links : BlueJ website, Sun Developer Network, BlueJ tutorial

8 C

14. C++ - is a general purpose programming language with a bias towards systems programming that is a better C, supports data abstraction, supports object-oriented programming, and supports . Useful links : cplusplus.com tutorial 15. C programming - is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the UNIX . It has since spread to many other operating systems, and is now one of the most widely used programming languages. C is distinguished for the efficiency of the code it produces, and is the most commonly used programming language for writing system software, though it is also widely used for writing applications. Useful links : About.com, University of Strathclyde Computer Centre 16. Computer Architecture - is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements (especially speeds and interconnections) and design implementations for the various parts of a computer —focusing largely on the way by which the CPU performs internally and accesses addresses in memory. Useful links : Iowa State University tutorial, 17. 3Com switches - is a manufacturer best known for its computer network infrastructure products. The company was co-founded in 1979 by Robert Metcalfe and is headquartered in Marlborough, Massachusetts. The name 3Com comes from the company's focus on "Computers, Communication and Compatibility". Useful links: 3com website 18. CAT5 Cabling - is an unshielded twisted pair cable type designed for high signal integrity. With the 2001 introduction of the TIA/EIA-568-B standard, the category 5 cabling specification was made obsolete and superseded by the category 5e specification. Useful link: Cable your own house 19. *CL - Common Lisp is a dialect of the Lisp programming language, standardized by ANSI X3.226-1994. Developed to standardize the divergent variants of Lisp which predated it, it is not an implementation but rather a language specification. Several implementations of the Common Lisp standard are available, including commercial products and open source software. Useful links : Common Lisp link, tutorial 20. CSS - Cascading Style Sheets (CSS) is a stylesheet language used to describe the presentation of a document written in a markup language. Its most common application is to style web pages written in HTML and XHTML, but the language can be applied to any kind of XML document, including SVG and XUL. Useful links: w3c link, tutorial 21. *CVS - also known as the Concurrent Versions System, implements a version control system: it keeps track of all work and all changes in a set of files, typically the implementation of a software project, and allows several (potentially widely separated) developers to collaborate. Useful link: main webpage, tutorial 22. Client Server - Client-server is a network architecture which separates the client (often a graphical user interface) from the server. Each instance of the client software can send requests to a server or application server. A client-server architecture is intended to provide a scalable architecture, whereby each computer or process on the network is either a client

9 or a server. Server software generally, but not always, runs on powerful computers dedicated for exclusive use to running the business application. Client software on the other hand generally runs on common PCs or workstations. Clients get all or most of their information and rely on the application server for things such as configuration files, stock quotes, business application programs, or to offload computer-intensive application tasks back to the server in order to keep the client computers (and client computer user) free to perform other tasks. Useful link : tutorial to build a simple client server 23. C# - It is an component-oriented programming language developed by Microsoft as part of their .NET initiative, and later approved as a standard by ECMA and ISO. C# has a procedural, object oriented syntax based on C++ that includes aspects of several other programming languages (most notably Delphi, Visual Basic, and Java) with a particular emphasis on simplification (fewer symbolic requirements than C++, fewer decorative requirements than Java). Useful link: softsteel tutorial, functionx tutorial 24. *COBOL - COBOL is a third-generation programming language. Its name is an acronym, for COmmon Business Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments. The COBOL 2002 standard includes support for object-oriented programming and other modern language features. Useful links : Tutorial 1, Tutorial 2

D

25. Data Structure - is a way of storing data in a computer so that it can be used efficiently. Often a carefully chosen data structure will allow a more efficient algorithm to be used. Useful link: National Institute of Standards and Technology 26. DAO – Data Access Objects were an object oriented interface created by Microsoft which allowed early versions of Microsoft Access and Visual Basic to use the Jet database engine. Later (in version 3.5) it was able to bypass the Jet engine altogether and directly access ODBC data sources, including Microsoft SQL Server and other enterprise database systems. DAO 3.6 was the version developed by Microsoft. Microsoft says that DAO will not be available in its future 64-bit operating systems. Useful link: sun, codefutures link 27. Database - is an organized collection of data. The term originated within the computer industry, but its meaning has been broadened by popular use, to the extent that the European Database Directive (which creates intellectual property rights for databases) includes non-electronic databases within its definition. This article is confined to a more technical use of the term; though even amongst computing professionals, some attach a much wider meaning to the word than others. Useful link: database tutorial, another tutorial 28. DAEMON Tools- is a proprietary disk image emulator for Microsoft Windows that mounts images of DVD and CD media on virtual drives. The program is able to defeat most copy protection schemes, like SafeDisc and SecuROM. 29. *Djbdns - is a simple and secure DNS implementation created by Daniel J. Bernstein due to his frustrations with repeated BIND security holes.The package contains:  six servers:

10  dnscache -- the local dns resolver and cache.  tinydns -- a database-driven dns server.  walldns -- a "reverse DNS wall", providing IP to domain name lookup only.  rbldns -- a server designed for dns blacklisting service.  pickdns -- a database-driven server that chooses from matching records depending on the  requester's location. (This feature is now a standard part of tinydns.)  axfrdns -- a zone-transfer server. Useful links : life with djbdns, a look at djbdns 30. Delegate - Delegates in C# are objects which points towards a function which matches its signature. Delegates are reference type used to encapsulate a method with a specific signature. In C++ you accomplish this task by having pointer to a function. Unlike pointers delegates are type-safe. A delegate in C# allows you to pass a method of class to objects of other classes. You can pass a method Print in class A class B by wrapping it in a delegate and class B is able to access the method of class A.Useful link : Softsteel solutions, csharptutorial.com 31. Database Management- A database management system (DBMS) is a computer program (or more typically, a suite of them) designed to manage a database (a large set of structured data), and run operations on the data requested by numerous clients. Typical examples of DBMS use include accounting, human resources and customer support systems. Originally found only in large organizations with the computer hardware needed to support large data sets, DBMSs have more recently emerged as a fairly standard part of any company back office. DBMSs are found at the heart of most database applications. Sometimes DBMSs are built around a private multitasking kernel with built-in networking support although nowadays these functions are left to the operating system. Useful links : tutorial 1, tutorial 2 32. Debugging- Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge in another. Generally, high-level programming languages, such as Java, make debugging easier, because they have features such as that make real sources of erratic behaviors easier to spot. In lower-level programming languages such as C or assembly, bugs may cause silent problems such as memory corruption, and it is often difficult to see where the initial problem happened; in those cases, sophisticated debugging tools may be needed. Useful links : University of California at Davis link, codeproject.com tutorial 33. *Delphi- The Delphi programming language was created by Borland and debuted with the first version of Borland Delphi. Borland sells integrated development environments (IDEs) that compile the Delphi programming language to Microsoft Windows, the Microsoft .NET Framework and Linux. The open source project allows the language to be compiled for Mac OS X, Win64 and Windows CE. The main distinguishing features of

11 Delphi and Kylix from other IDEs are the Delphi language, the VCL/CLX (Visual Component Library), strong emphasis on database connectivity, and a large number of third party components.  delegation of interface implementation to a field or property of the class  implementation of message handlers by tagging a method of a class with the integer constant of the message to handle  COM independent interfaces with reference counted class implementations  can be compiled into native x86 code or managed .NET code. Useful links : tutorial1, tutorial 2 34. *DJGPP- DJGPP is a 32-bit C/C++ development system for 386 and above PCs that runs under DOS (it will also work in a DOS window from within an operating system that supports DOS windows, such as Windows). It was developed by DJ Delorie who started the project in 1989. It is a software port of the popular gcc compiler, as well as many other GNU utilities such as cp, , mv, and ld, to DOS DPMI (DOS Interface). It uses a flat memory model, where code and data segments are coincident. Additional segments can be accessed indirectly. Useful links : DJGPP user’s guide, DJGPP documentation 35. DHTML- Dynamic HTML or DHTML is a method of creating interactive web sites by using a combination of static markup language HTML, a client-side (such as JavaScript), the presentation definition language (e.g. Cascading Style Sheets), and the Document Object Model. Some disadvantages of DHTML are that it is difficult to develop and debug due to varying degrees of support among web browsers of the aforementioned technologies and that the variety of screen sizes means the end look can only be fine-tuned on a limited number of browser and screen-size combinations. Development for recent browsers, such as Internet Explorer 5.0+, Netscape 6.0+, and Opera 7.0+, is aided by a shared Document Object Model. Useful links : tutorial 1, tutorial 2, tutorial 3

E

36. Electronics Engineering - is a professional engineering discipline that deals with the emission, behavior, and effects of electrons (as in electron tubes and transistors) and with electronic devices, systems or equipment. The term also now covers a large part of electrical engineering degree courses as studied at most European universities. Its practitioners are called electronics engineers in Europe. In the Americas and some other parts of the world, the term electrical engineer is used to describe a person doing the same work. Useful links : guide 37. EDI - Electronic Data Interchange is the computer-to-computer exchange of structured information, by agreed message standards, from one computer application to another by electronic means and with a minimum of human intervention. In common usage, EDI is understood to mean specific interchange methods agreed upon by national or international standards bodies for the transfer of business transaction data, with one typical application

12 being the automated purchase of goods and services. Useful links : EDI introduction, EDI guide for beginners 38. Eclipse - Eclipse is an open source community whose projects are focused on providing a vendor-neutral open development platform and application frameworks for building software. The Eclipse Foundation is a not-for-profit corporation formed to advance the creation, evolution, promotion, and support of the Eclipse Platform and to cultivate both an open source community and an ecosystem of complementary products, capabilities, and services. Useful links : tutorial 1, tutorial 2

F

39. FPGA/CPLD - is a semiconductor device containing programmable logic components and programmable interconnects. The programmable logic components can be programmed to duplicate the functionality of logic gates such as AND, OR, XOR, NOT or more complex combinatorial functions such as decoders or simple math functions. In most FPGAs, these programmable logic components (or logic blocks, in FPGA parlance) also include memory elements, which may be simple flip-flops or more complete blocks of memories. Useful links : Altera website, CPLD user guide, FPGA user guide 40. Firewall - is a piece of hardware and/or software which functions in a networked environment to prevent some communications forbidden by the security policy, analogous to the function of firewalls in building construction. A firewall is also called a Border Protection Device (BPD), especially in NATO contexts, or packet filter in BSD contexts.Useful links : firewall FAQs, Microsoft firewall reference guide

G

41. GoLive 5.0- Adobe GoLive is an HTML editor from Adobe Systems. It replaced Adobe PageMill as Adobe's primary HTML editor. The latest version has been given the "CS2" moniker, indicating its integration with the rest of the Adobe Creative Suite. Useful links : tutorial 1, tips and tricks

H

42. HTML - HyperText Markup Language (HTML) is a markup language designed for the creation of web pages with hypertext and other information to be displayed in a web browser. HTML is used to structure information — denoting certain text as headings, paragraphs, lists and so on — and can be used to describe, to some degree, the appearance and semantics of a document. HTML's grammar structure is the HTML DTD that was created using SGML syntax. XHTML, which applies the stricter rules of XML to HTML to make it easier to process and maintain, is the W3C's successor to HTML. As such, many consider XHTML to be the "current version" of HTML, but it is a separate, parallel standard; the W3C continues to recommend the use of XHTML 1.1, XHTML 1.0, or HTML 4.01 for web publishing. Useful links : tutorial 1, tutorial 2

13 43. Hard Drives - is a non-volatile data storage device that stores data on a magnetic surface layered onto hard disk platters. Useful links : hard drives guide

I

44. IC Design - Integrated circuit design, or IC design, is a subset of electrical engineering, encompassing the particular logic and circuit design techniques required to design integrated circuits, or ICs. ICs consist of miniaturized electronic components built into an electrical network on a monolithic semiconductor substrate by photolithography. Useful links : IC design reference guide, IC design in Mentor Graphics

J

45. Java technology - is a portfolio of products that are based on the power of networks and the idea that the same software should run. Useful links : Java reference guide, Sun website 46. JSP - Jackson is a method for structured programming based on correspondences between data stream structure and program structure. The method is closely related in concept to creating a parser for a regular expression that describes the data stream structure, but tries to build a program structure that matches more than one data stream and provides guidance and techniques to compensate the limited lookahead and the clashes between the structures of the different data streams. Useful links : tutorial1, tutorial 2 47. Java - Java is an object-oriented programming language developed by James Gosling and colleagues at in the early 1990s. Unlike conventional languages which are generally designed to be compiled to native code, Java is compiled to a byte code which is then run (generally using JIT compilation) by a machine. The language itself borrows much syntax from C and C++ but has a much simpler object model and does away with low-level tools like -manipulated pointers. Java is only distantly related to JavaScript, though they have similar names and share a C-like syntax. Useful links : Sun’s tutorial, tutorial 2 48. JavaScript- JavaScript is the name of Netscape Communications Corporation's implementation of ECMAScript, a scripting programming language based on the concept of prototypes. The language is best known for its use in websites, but is also used to enable scripting access to objects embedded in other applications. Despite the name, JavaScript is only distantly related to the Java programming language, the main similarity being their common debt to the C programming language. JavaScript has far more in common with the Self programming language. Useful links : guide, manual 49. JavaCC - is an open source parser generator for the Java programming language. JavaCC is similar to Yacc in that it generates a parser for a grammar provided in EBNF notation, except the output is Java source code. Unlike Yacc, however, JavaCC generates top-down parsers, which limits it to the LL(k) class of grammars (in particular, left recursion cannot be used). Useful links : homepage, FAQs

14 50. JUnit - is a unit testing framework for the Java programming language. Created by Kent Beck and Erich Gamma, JUnit is one, and arguably the most successful, of the xUnit family of frameworks that originated with Kent Beck's SUnit. JUnit has spawned its own ecosystem of JUnit extensions. Useful links : 51. *JBuilder - is a Java IDE from Borland. It has won several consecutive awards as the most powerful IDE for professional Java Programming. Useful links : Borland site, FAQs, guide

K

L

52. Logic Design - is a process by which an abstract form of desired circuit behavior is turned into a design implementation in terms of logic gates. Useful links : guide 53. *LISP - is a family of computer programming languages with a long history and distinctive fully-parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high- level programming language in widespread use today; only is older. Like FORTRAN, Lisp has changed a great deal since its early days, and a number of dialects have existed over its history. Today, the most widely-known general-purpose Lisp dialects are Common Lisp and Scheme. Useful links : LISP tutorial, 54. *Lotus 123 - is a spreadsheet program from Lotus Software (now part of IBM). It was the IBM PC's first killer application; its huge popularity in the mid-1980s contributed significantly to the success of IBM PC in the corporate environment. Useful links : guide, guide 2 55. Log4j - is a Java-based logging utility, and is one of many projects from the Apache Software Foundation. It is used primarily as a debugging tool. Useful links : Apache site, manual

56. *LaTeX - , written as LaTeX in plain text, is a document preparation system for the TeX typesetting program. It is used mainly by mathematicians, scientists, and engineers in academia. It is also widely used by people outside of these fields as a primary or intermediate format (e.g. translating DocBook and other XML-based formats to PDF) due to the quality of typesetting achieved by TeX. Useful links : Official website, Tutorial 1, Tutorial 2, LaTeX Primer 57. Linux - Linux is a free Unix-type operating system originally created by Linus Torvalds with the assistance of developers around the world. Developed under the GNU General Public License , the source code for Linux is freely available to everyone. Useful links : Linux official webpage link, The Linux Documentation Project

15 M

58. Microsoft Excel - is a spreadsheet program written and distributed by Microsoft for computers using the Microsoft Windows operating system and for Apple Macintosh computers. Useful links : tutorial 1, tutorial 2 59. MSA - a computer program or software agent which receives electronic mail messages from a mail user agent (MUA) and contacts an mail transfer agent (MTA) for delivery of the mail. Useful links : 60. Microsoft Exchange Server - is a messaging and collaborative software product developed by Microsoft. It is a part of their Windows Server System line of server products. The use of Microsoft Exchange is very widespread in large corporations using Microsoft infrastructure solutions. Among other things, Microsoft Exchange manages electronic mail, shared calendars and tasks, provides full support for mobile and web-based access to information, and can support very large amounts of data storage. Useful links : Microsoft page 61. Microsoft Word - is a word processing application from Microsoft. It was originally written by Richard Brodie for IBM PCs running DOS in 1983. Later versions were created for the Apple Macintosh (1984), SCO UNIX, OS/2 and Microsoft Windows (1989). Useful links : tutorial 1, tutorial 2 62. Mentor Graphics - is a US-based multinational corporation dealing in electronic design automation (EDA) for electrical engineering and electronics, as of 2004, ranked third in the EDA industry it help create. Useful links : tutorial 1, tutorial 2 63. MPI - is a computer communications protocol. It is a de facto standard for communication among the nodes running a parallel program on a distributed memory system. MPI implementations consist of a library of routines that can be called from Fortran, C, C++ and Ada programs. The advantage of MPI over older message passing libraries is that it is both portable (because MPI has been implemented for almost every distributed memory architecture) and fast (because each implementation is optimized for the hardware on which it runs). Useful links : tutorial 1, tutorial 2 64. Macromedia Flash - refers to both the Macromedia Flash Player and to a multimedia authoring program used to create content for this platform (such as games and movies). The Flash Player, developed and distributed by Adobe Systems (which bought Macromedia), is a client application available in most dominant web browsers. It features support for vector and raster graphics, a scripting language called ActionScript and bidirectional streaming of audio and video. Useful links : tutorial 1, tutorial 2 65. Macromedia Dreamweaver - is a web development tool, created by Macromedia (now Adobe Systems), which is currently in version 8. Initial versions of the application served as simple WYSIWYG HTML editors but more recent versions have incorporated notable support for many other web technologies such as CSS, JavaScript, and various server-side scripting frameworks. Useful links : tutorial 1, tutorial 2

16 66. MS-DOS - is an operating system commercialized by Microsoft. It was the most widely used member of the DOS family of operating systems and was the dominant operating system for the PC compatible platform during the 1980s. Useful links : tutorial 1, tutorial 2 67. Make - is a utility that automates the process of converting files from one form to another. It does so by dependency tracking and invocation of external programs to do additional work as needed. Its dependency tracking is very simple and centers on using the modification time of the input files. Useful links : GNU tutorial, guide 68. mySQL- MySQL is a multithreaded, multi-user, SQL Database Management System (DBMS) with more than six million installations. MySQL AB makes MySQL available as free software under the GNU General Public License (GPL), but they also dual-license it under traditional proprietary licensing arrangements for cases where the intended use is incompatible with the GPL. Useful links : tutorial 1, tutorial 2 69. Mail Server- A mail transfer agent or MTA (also called a mail transport agent, mail server, or a mail exchange server in the context of the ) is a computer program or software agent that transfers electronic mail messages from one computer to another. It receives messages from another MTA (relaying), a mail submission agent (MSA) that itself got the mail from a mail user agent (MUA), or directly from an MUA, thus acting as an MSA itself. The MTA works behind the scenes, while the user usually interacts with the MUA. The delivery of e-mail to a user's mailbox typically takes place via a mail delivery agent (MDA); many MTAs have basic MDA functionality built in, but a dedicated MDA like procmail can provide more sophistication. 70. Mail Server- A mail transfer agent or MTA (also called a mail transport agent, mail server, or a mail exchange server in the context of the Domain Name System) is a computer program or software agent that transfers electronic mail messages from one computer to another. It receives messages from another MTA (relaying), a mail submission agent (MSA) that itself got the mail from a mail user agent (MUA), or directly from an MUA, thus acting as an MSA itself. The MTA works behind the scenes, while the user usually interacts with the MUA. The delivery of e-mail to a user's mailbox typically takes place via a mail delivery agent (MDA); many MTAs have basic MDA functionality built in, but a dedicated MDA like procmail can provide more sophistication, Useful Links: 1, 2 71. MAX+PLUS II Baseline- Designs for CPLD/FPGA are created on the PC using Altera's powerful MAX+PLUS II Baseline design software. Useful Links: 1 72. Microsoft Visual Studio - Microsoft Visual Studio is an advanced integrated development environment by Microsoft. It lets programmers create programs, web sites, web applications, and web services that run on Microsoft Windows, PocketPC, Smartphones, and the World Wide Web. 73. Microsoft Visual Studio Express - Microsoft Visual Studio Express is a set of free IDEs developed by Microsoft that are lightweight versions of the Microsoft Visual Studio 2005 (codenamed Whidbey) product line. The idea of express editions, according to Microsoft, is to provide a streamlined, easy-to-use and easy-to-learn IDEs for less serious users, such as hobbyists and students. They were released on November 7, 2005, and were supposed to be free just for one year. However, Microsoft announced on April 19, 2006 that these editions will always remain free.

17 N

74. Network Cards - is a piece of computer hardware designed to allow computers to communicate over a computer network. It is an OSI model layer 2 item because it has a MAC address. Useful Links: 1, 2 75. NetBSD - is a freely redistributable, open source version of the Unix-like BSD computer operating system. It was the second open source BSD variant to be formally released, after 386BSD, and continues to be actively developed. Useful Links: 1, 2 76. Net - Microsoft .Net is an umbrella term that applies to a collection of products and technologies from Microsoft. All have in a common a dependence on the Microsoft .NET Framework, a component of the Windows operating system. Microsoft products and components that fall into the .Net category include:  The Microsoft .NET Framework, an operating system component required by all .Net products.  ASP.NET  C#, a programming language  Visual Basic .NET, a programming language  Visual Studio, a programmer's development environment.  ADO.NET, a data access library included with the .Net framework. Useful Links: 1

O

77. *Oracle 8 - consists of a collection of data managed by an Oracle database management system or DBMS. The term "Oracle database" sometimes refers — imprecisely — to the DBMS software itself. The title of this article — and parts of the article content — perpetuate this confusion. Useful Links: 1, 2 78. OpenBSD - is a freely available Unix-like computer operating system descended from Berkeley Software Distribution (BSD), a Unix derivative created at the University of California, Berkeley. Useful Links: 1, 2 79. OSI model - The Open Systems Interconnection Reference Model (OSI Model or OSI Reference Model for short) is a layered abstract description for communications and computer network protocol design, developed as part of the Open Systems Interconnection initiative. It is also called the OSI seven layer model. Useful Links: 1, 2 80. Open Office - is a free and open source office suite, including word processor, spreadsheet, presentation, vector drawing and database components. It is available for many different platforms, including Microsoft Windows, Unix-like systems with the X Window System including GNU/Linux, BSD, Solaris and Mac OS X. It is intended to be compatible with, and compete with, Microsoft Office. It supports the OpenDocument standard for data interchange, and can be used at no cost. Useful Links: 1, 2

18 81. ODBC - Open Database Connectivity (ODBC) provides a standard software API method for using database management systems (DBMS). The designers of ODBC aimed to make it independent of programming language, database system and operating system. Useful Links: 1, 2

P

82. *Pascal- Pascal is based on the ALGOL programming language and named in honor of mathematician and philosopher Blaise Pascal. Wirth subsequently developed Modula-2 and Oberon, languages similar to Pascal. Initially, Pascal was a language intended to teach students structured programming, and generations of students have "cut their teeth" on Pascal as an introductory language in undergraduate courses. Parts of the original Macintosh operating system were written in Pascal and Motorola 68000 assembly language (though later versions incorporated substantial amounts of C++ as well), and the most frequent high-level language used for development in the early Mac community was Pascal. In addition, the popular typesetting system TeX was written by Donald E. Knuth in WEB, a variant of Pascal designed for . Useful Links: 1, 2 83. Microsoft PowerPoint- It is a ubiquitous presentation program developed for the Microsoft Windows and Mac OS computer operating systems. Being widely used by businesspeople, educators, and trainers, it is among the most prevalent forms of persuasion technology. Useful Links: 1, 2 84. PERL - Practical Extraction and Report Language is a dynamic language designed by Larry Wall and first released in 1987. Perl borrows features from C, shell scripting (sh), , sed, Lisp, and, to a lesser extent, many other programming languages. Useful Links 1, 2 85. PHP - is an open-source, reflective programming language used mainly for producing dynamic web content and server-side applications. PHP allows interaction with a large number of relational database management systems, such as MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, Firebird and SQLite. PHP runs on most major operating systems including Unix, Linux, Netware, Windows, and Mac OS X, and can interact with many major web servers. Useful Links: 1, 2 86. Print Servers - is a host computer or device to which one or more printers are connected and that can accept print jobs from external client computers connected to the print server over a network. The printer server then sends the data to the appropriate printer that it manages. Useful Links: 1 87. Power Supplies - is a device or system that supplies electrical or other types of energy to an output load or group of loads. The term is most commonly applied to electrical energy supplies. Useful Links: 1, 2 88. Publicfile - is a small web and ftp server, designed for maximum security. It is written and maintained by Daniel J. Bernstein, famous as the author of and djbdns. Useful Links: 1, 2 89. Project Management-Project Management is composed of several different types of activities such as:

19  Planning the work  Assessing and mitigating risk  Estimating resources  Organizing the work  Acquiring human and material resources  Assigning tasks  Directing activities  Controlling project execution  Reporting progress  Analyzing the results based on the facts achieved/ Useful Links: 1, 2 90. *Progress- Progress is comprised of four operating units: Progress OpenEdge Division, Sonic Software, DataDirect Technologies, and Progress Real Time Division. Its best known product is the Progress 4GL language, which was developed in the early 1980s. Useful Links: 1, 2 91. Progress 4GL- Progress 4GL is a 4GL programming language developed by Progress Software Corporation. It uses an imperative style to do database access. Instead of using embedded SQL expressions, Progress 4GL uses "FOR EACH" expressions to query a database or single "" expressions. Next to database access expressions there is a variety of expressions to define and control forms. The language contains IF...THEN...ELSE statements and DO...WHILE statements for flow control. Useful Links: 1 92. Premier 6.0- “Adobe Premiere 6.0 is a powerful and surprisingly easy-to-use professional video-editing tool. This latest version comfortably closes the gap between DV and Web, and has new support for DV on the Windows platform and cross-platform support for all of the leading Web video formats. Premiere 6.0 provides direct support for IEEE 1394 (FireWire/i.Link) on both Windows and Mac OS. By using only the DV port on your hard drive, an IEEE 1394 connection, and your DV camcorder, you get perfect digital video in Premiere 6.0 every time. Premiere 6.0 offers built-in support for all types of DV devices, ranging from consumer to professional. By simply connecting a DV device to the IEEE 1394 port on a Windows or Macintosh computer, you can capture DV clips and begin editing right away. On a computer with an IEEE 1394 port, there's no need to install additional hardware, such as a video-capture card. Just select the appropriate DV-device manufacturer and model in the Device Control dialog box, and Premiere 6.0 assigns the video-input settings that are appropriate to that device--making the video-capture process more precise. Premiere 6.0's Movie Capture window now includes a Settings tab and a Logging tab. By using the Settings tab, you can view and edit video-capture settings, change the capture location, and set device-control preferences. By using the Logging tab, you can log video clips quickly, set In and Out points, name clips and reels, batch-capture multiple logged video clips effortlessly, and add comments about each clip. Useful Links: 1, 2

20 93. Portlet - are pluggable user interface components that are managed and displayed in a web portal. Portlets produce fragments of markup code that are aggregated into a portal page. Typically, following the desktop metaphor, a portal page is displayed as a collection of non-overlapping portlet windows, where each portlet window displays a portlet. Useful Links: 1, 2

Q

94. *QBasic - is a variant of the BASIC programming language. The source code is compiled to an intermediate form within the integrated development environment (IDE), and this intermediate form is immediately interpreted on demand within the IDE. Useful Links: 1, 2 95. QWS3270 - is an update to id Software's Quake, that enhances the game's multiplayer features (namely TCP/IP support) to allow people with dial-up modems to achieve greatly improved responsiveness when playing on Internet game servers. Modern broadband connections such as cable and DSL also benefit greatly from the improved network handling and game physics. Useful Links: 1, 2 96. Qmail - is a mail transfer agent that runs on Unix. It was written by Daniel J. Bernstein as a more secure replacement for the popular Sendmail program. The author offered a $500 prize for the first person to publish a verifiable security hole in the latest version of the software. Useful Links: 1, 2 97. *Quartus II- Quartus II software version 6.0 enables the highest levels of productivity and the fastest path to design completion for high-density FPGA design. Dramatically improve your productivity compared to traditional high-density FPGA design flows.

R

98. *Ruby - is a reflective, object-oriented programming language. It combines syntax inspired by Ada and Perl with -like object-oriented features, and also shares some features with Python, Lisp, Dylan and CLU. Ruby is a single-pass interpreted language. Useful Links: 1, 2 99. *RPG - is a native programming language for IBM's iSeries servers - the latest generation of midrange servers which included System/38, System/36, AS/400, iSeries and System i5 systems. Its latest incarnation is RPG IV which includes prototyped functions and procedures, static and dynamic binding, access to C routine libraries, dynamic link libraries, and fully recursive and re-entrant code. Useful Links: 1, 2 100. *REXX - is an interpreted programming language which was developed at IBM. It is a structured high-level programming language which was designed to be both easy to learn and easy to read. Both commercial and open source interpreters for REXX are available on a wide range of computing platforms, and are available for IBM mainframes. Useful Links: 1, 2 101. RFID Technology - Radio Frequency Identification (RFID) is an automatic identification method, relying on storing and remotely retrieving data using devices called RFID tags or transponders. An RFID tag is a small object that can be attached to or incorporated into a

21 product, animal, or person. RFID tags contain silicon chips and antennas to enable them to receive and respond to radio-frequency queries from an RFID transceiver. Useful Links: 1, 2

S

102. *Scheme - is a language and a dialect of Lisp. It was developed by Guy L. Steele and Gerald Jay Sussman in the 1970s, initially as an attempt to the . Scheme was introduced to the academic world via a series of papers now referred to as Sussman and Steele's Lambda Papers. Implementations tend to differ in minor details, so sometimes Scheme is referred to as a family of closely related programming languages. Useful Links: 1, 2 103. SQL - is the most popular computer language used to create, modify, retrieve and manipulate data from relational database management systems. The language has evolved beyond its original purpose to support object-relational database management systems. It is an ANSI/ISO standard. Useful Links: 1, 2 104. SBS 2000 - SBS means Scandinavian Broadcasting System. 105. Solaris - is a computer operating system developed by Sun Microsystems. It is certified as a version of UNIX; although Solaris proper is still , many core components have made their way into an open source CDDL version, OpenSolaris. Useful Links: 1, 2 106. Software Programmer - A programmer or software developer is someone who programs computers, i.e., one who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to programming may also be known as a programmer analyst, software engineer, computer scientist, or software analyst. A programmer's primary computer language (Java, C++, etc) is often prefixed to the above titles, and those that work in a web environment often prefix their titles with "web". Useful Links: 1, 2 107. *SSI - is a form of distributed computing in which by using a common interface multiple networks, distributed databases or servers appear to the user as one system. In other words, the operating system environment is shared by all nodes in the system. Useful Links: 1 108. SAP - Standard Accounting Program is a business accounting program that handles inventory and billing. Similar in scope and usage to "Enterprise resource planning". Useful Links: 1, 2 109. Socket - is the CPU socket used for AMD processors ranging from the Athlon Thunderbird to the Athlon XP/MP 3200+, and AMD budget processors including the Duron and Sempron. The socket is a zero insertion force pin grid array type with 453 pins (nine pins are blocked in the socket to prevent accidental insertion of Socket 370 CPUs, hence the number 462). Useful Links: 1, 2 110. Shell - is a piece of software that essentially provides a kind of interface for end-users. Typically, the term refers to an operating system shell which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include

22 any software that is "built around" a particular component, such as web browsers and email clients that are "shells" for HTML rendering engines. Useful Links: 1, 2 111. SSH - Secure Shell is a set of standards and an associated network protocol that allows establishing a secure channel between a local and a remote computer. Useful Links 1, 2 112. *SVG - Scalable Vector Graphics (SVG) is an XML markup language for describing two- dimensional vector graphics, both static and animated (either declarative or scripted). It is an open standard created by the World Wide Web Consortium, which is also responsible for standards like HTML and XHTML. Useful links: 1, 2 113. Subnetting - The word subnetwork (usually shortened to subnet) has two related meanings. In the older and more general meaning, it meant one physical network of an internetwork. In the Internet Protocol (IP), a subnetwork is a division of a classful network. The rest of this article is about the second meaning. Useful Links: 1, 2 T

114. Teradata-Queryman - is a relational database management system initially created by the firm with the same name, founded in 1979. Teradata is part of the NCR Corporation which acquired the Teradata company on February 28, 1991. It is a massively parallel processing system running a shared nothing architecture. Useful Links: 1, 2 115. - is a compiler and a powerful Integrated Development Environment (IDE) for the Pascal programming language running mainly on MS-DOS, developed by Borland. The name Borland Pascal was generally reserved for the high end packages (with more libraries and standard library source code) whilst the original cheap and widely known version was sold as Turbo Pascal. Useful Links: 1, 2 116. Tomcat - is a web container developed at the Apache Software Foundation. Tomcat implements the servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, providing an environment for Java code to run in cooperation with a web server. Useful Links: 1, 2 117. TCP/IP - is the set of communications protocols that implement the protocol stack on which the Internet and most commercial networks run. It is sometimes called the TCP/IP protocol suite, after the two most important protocols in it: the Transmission Control Protocol (TCP) and the Internet Protocol (IP), which were also the first two defined. Useful Links: 1, 2

U

118. UNIX - a computer operating system originally developed in the 1960s and 1970s by a group of AT&T Bell Labs employees including Ken Thompson, Dennis Ritchie, and Douglas McIlroy. Today's Unix systems are split into various branches, developed over time by AT&T, several other commercial vendors, as well as several non-profit organizations. Useful Links: 1, 2

23 V

119. Visual Basic - is an event driven programming language and associated development environment prototyped by Alan Cooper as Project Ruby, then bought and vastly improved upon by Microsoft. It is derived heavily from BASIC and enables rapid application development (RAD) of graphical user interface (GUI) applications, access to databases using DAO, RDO, or ADO, and creation of ActiveX controls and objects. Useful Links: 1, 2 120. *VHDL - VHSIC Hardware Description Language, is commonly used as a design-entry language for field-programmable gate arrays and application-specific integrated circuits in electronic design automation of digital circuits. Useful Links: 1, 2 121. Visio - Microsoft Visio is diagramming software for Microsoft Windows that is part of the Microsoft Office series of applications. Useful Links: 1, 2

W

122. Windows Server 2003 - is the name of Microsoft's line of server operating systems. It was introduced in April 2003 as the successor to Windows 2000 Server, and is considered by Microsoft to be the cornerstone of their Windows Server System line of business server products. Useful Links: 1, 2 123. Windows XP/NT - is the name of a line of operating systems developed by Microsoft for use on general-purpose computer systems, including home and business desktops, notebook computers, and media centers. The letters "XP" are short for the word experience.[1] Codenamed Whistler during its development, Windows XP is the successor to both Windows 2000 and Windows Me, and is the first consumer-oriented operating system produced by Microsoft to be built on the Windows NT kernel and architecture. Useful Links: 1, 2 124. Weblogic 8.1 - is a J2EE application server and also an HTTP web server by BEA Systems of San Jose, California, for Unix, Linux, Microsoft Windows, and other platforms. WebLogic supports Oracle, DB2, Microsoft SQL Server, and other JDBC-compliant databases. WebLogic Server supports WS-Security and is compliant with J2EE 1.3. Useful Links: 1, 2 125. Web Developer - is a broad term that incorporates all areas of developing a web site for the World Wide Web. This can include graphical web design, actual coding of pages, backend programming, and web server configuration. However, among web professionals, web development usually refers only to the non-design aspects of building web sites, e.g. writing markup and coding. Useful Links: 1, 2 126. Win32 API - The Windows API is the name given by Microsoft to the core set of application programming interfaces available in the Microsoft Windows operating systems. It is designed for usage by C/C++ programs and is the most direct way to interact with a Windows system for software applications. Lower level access to a Windows system, mostly required for device drivers, is provided by the Windows Driver Model in current versions of Windows. Useful Links: 1, 2

24 127. Web Services - is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface that is described in a machine-processible format such as WSDL. Other systems interact with the Web service in a manner prescribed by its interface using messages, which may be enclosed in a SOAP envelope, or follow a RESTful approach. These messages are typically conveyed using HTTP, and normally comprise XML in conjunction with other Web-related standards. Useful Links: 1, 2

X

128. XML - Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages, capable of describing many different kinds of data. In other words: XML is a way of describing data and an XML file can contain the data too, as in a database. It is a simplified subset of Standard Generalized Markup Language (SGML). Its primary purpose is to facilitate the sharing of data across different systems, particularly systems connected via the Internet. Useful Links: 1, 2 129. XSLT - Extensible Stylesheet Language Transformations, is an XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized (output) by the processor in standard XML syntax or in another format, such as HTML or plain text. XSLT is most often used to convert data between different XML schemas or to convert XML data into web pages or PDF documents. Useful Links: 1, 2

Y

Z

25