Version User Scope of changes
Jan 11 2009, 3:27 PM EST (current) Rick_Mathieu 22 words deleted
Jan 11 2008, 9:21 PM EST Rick_Mathieu 1 word added, 1 word deleted

Changes

Key:  Additions   Deletions

The modern computer information systems (CIS) professional requires hands-on server administration skills to complement traditional skills in software design and development. As the CIS profession moves into an era of enterprise computing, there is a demand for system developers that understand the operational and security demands of the code that they create. An estimated sixty percent of the overall IT budget is still devoted to the operations and maintenance of existing software applications, yet little is done in the typical university computing curriculum to prepare students to effectively install, operate and maintain a software application in a working environment. In addition, many universities are facing heightened concerns over computer security on the college campus. In particular, computing facilities for advanced security and server administration instruction can face quite a bit of scrutiny. There is a great need for software developers to understand the challenges with application deployment within the organization.

At James Madison University, the CIS faculty have worked to create a 24x7 remotely accessible ‘computer laboratory’, where students receive full server administration privileges in order to develop their server, networking, security and database administration skills using the Linux operating system.

a. System Administration Skills

Teaching server side development and administration presents some unique challenges. First, it is necessary to develop student proficiency in setting up the Linux operating system and needed technologies before any applications can be installed. This typically requires several weeks for the students to understand how operating systems are configured while becoming skilled with the ongoing maintenance activities such as updating the operating system and related packages as updates and bug fixes are released. All activities for maintaining the server operating systems are conducted using a command line interface requiring students to understand file structures and the commands needed to conduct routine administrative activities. Only after the student had become skilled with these routine activities of operating and maintaining the operating system, installing other programming technologies (such as a MySQL database, the PHP programming environment and the Apache web server) and understanding the variety of services that makeup the operating environment on the server were they ready to address software applications.

The LAMP (Linux, Apache, MySQL, PHP) environment provides an ideal platform for teaching server-side development and administration. LAMP is typically considered the platform of choice for the development and deployment of high performance web applications. By default, the student learns the roles of system administrator and application developer when working with web-based software applications. After learning how to install and configure the Apache web server, students learned how to analyze traffic logs, set up a firewall and virtual hosting, create password-protected web pages and configure server side scripting. In addition, students were asked to register a domain name for their server, set pointers to the name server and set up an account on name server. In regard to database administration, students learned the basics of securing MySQL against attackers, defining access privileges, user account management, database backup and recovery and working with MySQL log files. No longer was it possible for the student software developer to “throw the application over the wall” to the system administrator for deployment. Rather, the student had to learn both roles and as a result developed a working knowledge of the interconnections between the ‘two sides of the house’.

Many courses teach only server side programming which only exposes students to one part of the server side environment. With each student having ownership over their own server, each is faced with the total set of issues and skills for doing server-side work. Those activities include experience with operating systems, programming environments, web servers, secured terminal emulation, and networking and firewall configuration. Without each student having administrative server access none of these essential elements to computing would be possible. After students become knowledgeable with maintaining the server environment then they begin application installation and configuration as well as server side programming.

b. Understanding Open Source Software
Open-source software is computer software whose source code is available under a copyright license that permits users to study, change, and improve the software, and to redistribute it in modified or unmodified form.
Open source advocates point out that as of the early 2000s, at least 90 percent of computer programmers are employed not to produce software for direct sale, but rather to design and customize software for other purposes, such as in-house applications. According to advocates, this statistic implies that the value of software lies primarily in its usefulness to the developer or developing organization, rather than in its potential sale value—consequently, there is usually no compelling economic reason to keep source code secret from competitors. Open-source advocates further argue that corporations frequently over-protect software in ways actually damaging to their own interests, for reasons ranging from mere institutional habit through reflexive territoriality to a rational but incorrect evaluation of the tradeoffs between collecting secrecy rent and the quality and market payoff of openness.

The 2001 film Antitrust portrayed the struggle of a small-time group of open source programmers against a large Microsoft-like closed-source corporation.Open source is a term that is applied to the entire concept that the creation and organization of knowledge is best created through open and cooperative efforts—this movement, variously called "open content" or "free culture," has been expressly endorsed by advocates of OSS, including Linus Torvalds who said "The future is 'open source everything.'"

See the following list of open source software packages. In addition Sourceforge and Freshmeat are two open source software repositories for open source software.