Real-life experiences in computing courses.
A constant in the advertisements for most entry-level information technology (IT) positions is the phrase "experience required or preferred." Obviously, it creates a dilemma for computer science and management information systems graduating students; they can't get the job for lack of experience, and can't acquire experience without landing a job first. Traditionally, practical assignments and individual/group projects are the approaches employed for this purpose. This paper presents strategies that go beyond the traditional approaches to provide real-life practical experiences to students in advanced computing courses.
Most academic program at a college or university strives to equip graduates with some practical experience before they enter the job market. A nursing student has to clock a minimum number of hours at one or more hospitals, a teacher certification student has to teach at a school for a fixed length of time, and a hairdressing student has to fix hair for a minimum number of people before graduating. This practical experience can prove vital in landing a job as well as in achieving professional success in future. Many academic programs however lack well-defined mechanisms to impart their graduates with the desired practical experience before entering the job market. Such programs then typically resort to course projects to provide their students some practical course-related experience that goes beyond course assignments and exercises.
Computer Science (CS) and Management Information Systems (MIS) graduates are no exception to the high expectations by their prospective employers about their computing knowledge and skills on graduation and entry into the job market (Lee 2003; Wagner, Shoop and Carlis 2003; Hill, et. al. 2001). The trend towards outsourcing of IT jobs has further underlined these expectations. Consequently, there is a growing recognition of the need to elevate students' hands-on experience, in advanced computing courses, above and beyond the requirements of traditional course assignments and projects (Moore 2002; Paxton, 2001). Specifically, these assignments and projects must impart some real-life experience to the students.
The goal of imparting this experience then raises an important question for the instructors: specifically, what additional hands-on assignments should one incorporate in a course? Needless to say, there is no "one-size-fit-all" answer to this question. It depends on the availability of the computing resources, faculty's own background and expertise, and the room available in the current course requirements (Berry, Miller and Wood, 2002). Nevertheless, based on the authors' own experience with teaching advanced computing courses, this paper presents ideas the MIS faculty have developed over time to enhance the computing experience in the advanced course of the MIS program at University of Houston-Clear Lake (UHCL). These ideas evolved from the faculty's industry experiences and input gathered from IT managers and professionals, and MIS alumni. The paper also presents an outline of a small, versatile and cost-effective, computing lab that can be designed to support multiple courses, instead of creating a dedicated lab for each course. Computer Science and Management Information Systems programs at most institutions bear considerable similarities in their coursework requirements. Therefore, the ideas and suggestions presented here should assist instructors of advanced computing courses at other institutions to develop and/or refine their own strategies to impart real-life experience to their students.
Categories of MIS courses at UHCL
This section briefly introduces the Management Information Systems program at University of Houston-Clear Lake (UHCL) and presents major categories of MIS courses. The graduate MIS computing courses can be grouped into the following three broad categories: (1) general computing courses, (2) advanced computing courses, and (3) special projects.
General Computing Courses category comprises of courses that introduce students to a specific skill, technology or subject area. Typically, these courses do not have pre-requisites in the same skill, technology or subject area; however, by themselves, directly or indirectly, they form prerequisites to one or more courses. This category includes courses such as Introduction to Management Information Systems, Introduction to Computer Networks, Fundamentals of Database Design and Development, and Introductions to Business Applications Programming. The application and programming software packages utilized in these courses are generally installed on servers that are networked with the general computing labs. The desktops in the labs are loaded with the client software to allow students to interact with servers. The students do not require any special software permissions or privileges to complete their assignments for these courses.
Advanced Computing Courses category includes courses such as System Administration, Network Security, Advanced Database Applications, Database Administration, and Advanced Business Applications Programming. Advanced computing course assignments require access to application and operating systems configuration files. Therefore, students in these courses require administrative access and privileges on the workstations and servers to complete course assignments and projects. The courses in this category include conceptual and hands-on components. Imparting real-life experiences to the hands-on components of these courses is the focus of this paper and is presented in the next section.
Special Projects category consists of courses such as thesis, independent studies and research projects. The requirements of a special project will vary according to the nature of the project and may be governed by some pre-defined guidelines or an understanding reached between the student who is working on the project and the instructor who is supervising the project.
Imparting real-life experiences in advanced computing courses
This section lists major advanced computing courses along with suggestions to incorporate real-life experiences to hands-on components of these courses. It should be noted that the projects suggested for various sections may be assigned as individual or group assignments to accommodated time and space constraints.
Database Application Development course is typically built around the Oracle database management system and involves creating database tables, views, sequences, triggers, functions, procedures, and packages. In addition, simple and complex queries and reports are created to retrieve information from the database. So all the object creation and information retrieval occurs within Oracle. Many organizations, however, access the Oracle database through an interface based on a business programming language such as Visual Basic, or some front-end application such as PeopleSoft. Consequently, incorporating a hands-on exposure to such front-ends, as well as embedded SQL, in the course will enhance the overall value of the course to the students.
Database Administration generally covers topics such as components of a database, creating a database, creating users and roles, granting privileges to users and roles, database backup and recovery, database performance tuning, data import and export, and database administration. While all these concepts may be covered in the course, the practical exposure may be limited. For instance, the students may not be able to install and configure a database if they can only access a pre-installed database on a server from client workstations. By using computers with removable hard disks students can be easily exposed to installing and configuring a database, even under different operating systems--one of the responsibilities of database administrators in organizations (Mata-Toledo, 2001). Furthermore, many organizations import and export data between Oracle and some other database. Consequently, exposing students to importing/exporting data between Oracle and some other database management systems such as SQL Server and Access (two database management systems that are readily available at just about every campus) would enrich the skills gained from the course.
Systems Administration covers topics such as installation, configuration and administration of UNIX- and/or NT-based client-server systems. Specific topics covered include hardware and software configuration of client/server systems, user and group administration, disk administration, network configuration and administration, back-ups, security administration, file system configuration and administration, kernel configuration, remote file systems, network domains, printing, etc. Hands-on component of the course is built around these topics. In the absence of dedicated labs for the course, topics such as system software installation, software configuration, application of security and other patches, kernel configuration may get overlooked (Wooley, 2002). However, by using computers with the removable hard disk approach mentioned above, the students can gain this experience. Furthermore, working even with a small isolated network of computers allows students to capture traffic from the laboratory network to perform protocol analyses. This exposure can significantly strengthen students' practical knowledge and understanding of system administration.
Computer Network Security course typically covers fundamental computer network security concepts, secure network implementation, security threats to computers and computer networks, methods to encounter security threats, concepts of firewalls, their design and implementation, pre-emptive hacking tools, intrusion detection systems, host security, etc. While some of these concepts can be practiced in an open computing lab, others require a dedicated network lab. In absence of a dedicated lab, a small network of computers can be created to practice installation of security patches, disabling or reconfiguring services and processes, capturing traffic with protocol analyzer tools, installing firewalls and experimenting with "hacking tools", working with concepts of encryption, VPNs, PKI servers and advanced firewall designs. With such practical experience, the students will gain a better understanding of network security requirements and tools to ensure this security (Hill et. al. 200t; Berry, Miller and Wood, 2002).
Advanced Business Applications Programming course covers business applications development using programming languages such as Visual Basic, C#, ASP and Java. The students learn tools, techniques and methodologies used in development of business applications, graphical user interfaces, business reports, and design and programming of web applications. Students can gain considerable programming expertise in these languages on a stand-alone or a networked workstation. However, learning contemporary programming tools and techniques is critical for fresh graduates (Bailey and Stefaniak, 2001; Paxton 2001). Consequently, knowing how to program web service applications, i.e. create and store server-based programs that can be accessed from the Internet is a skill that is highly desired in the industry. Importantly, however, acquiring this skill requires "very wide", administrative access to a server platform with, MicroSoft's Internet Information Services (IIS) installed on the server. This type of access is incompatible with open computing labs. Consequently, a computer with swappable hard drive and Internet access can be utilized to gain this skill. Such an experience will indeed make students more competitive in the job market.
Creating a small, versatile computing lab to support multiple advanced courses
A dedicated computing lab uniquely configured for a specific course is the best, albeit an expensive solution, to support an advanced computing course. While some institutions of higher education do enjoy such a luxury, most institutions have to come up with cost-effective, flexible computing lab configurations that can support multiple advanced computing courses simultaneously. This section presents outline of a small computing tab that should meet this goal.
This laboratory comprises multiple rows of networked computers with removable hard drives that are not loaded with any operating system per-se. Each row of computers is configured as a separate network where one of the computers can be configured as a server for that network. The rows are interconnected to other rows via routers to create a small Internet within the laboratory. The end computer in each row is furnished with two network cards for firewall experiments. In real life scenarios, a firewall computer is used to protect a network such as a business LAN from unauthorized access. For this purpose firewall computers interface two networks at a time. On one side, they interface the subnet to be protected via one network card, and, on the other side, they interface with the unprotected network and Internet via another network card. Straddling two networks, firewalls inspect incoming and outgoing traffic for malicious intent and allow or disallow traffic based on the way it is configured.
At the beginning of each semester, students are loaned a removable hard drive with/without an operating system on it. The students are asked to load the hard drives with the necessary operating system and/or application software. Along with the removable hard drives, students are also loaned the CD media for installing the operating system, application programs and the necessary utilities. With some minor configuration modifications, the computer network in the lab can be sub-divided into multiple, smaller networks of computers, and then integrated back into a single network. Consequently, this lab configuration can efficiently support multiple advanced computing courses.
Given the current job market environment for the fresh graduates from computer science and management information systems programs, it is of paramount significance that the hands-on components of advanced computing courses impart real-life experiences to students enrolled in these courses. Based on their own industry and academic experience, and input from IT managers, IT professionals and alumni, the MIS faculty at UHCL have developed some ideas and strategies to impart real-life experiences to students in their advanced computing courses. These ideas and strategies are shared in this paper. The authors recognize that some of the suggestions might be infeasible to implement in a fixed-configuration general lab environment.
Therefore, the paper also suggests outline of a small, versatile and cost-effective, computing lab that can be designed to support multiple courses, instead of a dedicated lab for each course. The recommendations in the paper should be particularly valuable for small academic institutions of higher education that lack computing labs dedicated to specific courses, but want to impart real-life experiences to students in advanced computing courses.
Bailey, J. L. and G. Stefaniak, "Industry Perceptions of the Knowledge, Skills, and Abilities Needed by Computer Programmers," SIGCPR, San Diego, CA, 2001,93-99.
Berry, R., R. S. Miller, J. and T. Wood, "Challenges and Obstacles of Being on the Technology Forefront: Development of an Advanced Networking Course," Journal of Computing in Small Colleges, 18(3), 2003, 82-90.
Hill, J. D., C. A. Carver, J. W. Humphries, and U. W. Pooch, "Using An Isolated Network Laboratory to Teach Advanced Network and Security," SIGCSE, Charlotte, NC, 2001, 36-40. Lee, A., "A Manageable Web Software Architecture: Searching for Simplicity," SIGCSE, Reno, Nevada, 2003, 229-233.
Mata-Toledo, R. A., "A Model Course For Teaching Database Administration with Personal Oracle8i," Journal of Computing in Small Colleges, 17(3), 2002,125-130.
Moore, T. K., "Bringing The Enterprise Into A Database Systems Course," SIGCSE, Covington, Kentucky, February 2002, 262-265.
Paxton, J. and B. Mumey, "Teaching Advanced Problem Solving: Implications For The CS Curriculum," Journal of Computing in Small Colleges, 16(2), 2001, 58-63.
Wagner, P. J., E. Shoop, and J. V. Carlis, "Using Scientific Data To Teach A Database Systems Course," SIGCSE, Covington, Kentucky, February 2002, 224-228.
Wooley, B. A., "Utilizing A Computer Lab To Improve Retention And Recruiting of Computer Science and Computer Information Science Students," Journal of Computing in Small Colleges, 18(3), 2003, 228-234.
Gokhan Gercek, University Houston-Clear Lake
Naveed Saleem, University Houston-Clear Lake
Gercek, Ph.D. is Assistant Professor of Management Information Systems. Saleem, Ph.D. is Professor of Management Information Systems.
|Printer friendly Cite/link Email Feedback|
|Publication:||Academic Exchange Quarterly|
|Date:||Dec 22, 2004|
|Previous Article:||Impacting distance learning success rates.|
|Next Article:||Online teaching: a framework for success.|