An Implementation of a Software Development Track in an Information Technology Degree Program Hazem Said
Soleda Leung
Mark Stockman
University of Cincinnati 2220 Victory Parkway Cincinnati, OH 45209 513 556 6565
University of Cincinnati 2220 Victory Parkway Cincinnati, OH 45209 513 556 6565
University of Cincinnati 2220 Victory Parkway Cincinnati, OH 45209 513 556 6565
[email protected]
[email protected] Annu Prabhakar
[email protected]
University of Cincinnati 2220 Victory Parkway Cincinnati, OH 45209 513 556 6565
University of Cincinnati 2220 Victory Parkway Cincinnati, OH 45209 513 556 6565
University of Cincinnati 2220 Victory Parkway Cincinnati, OH 45209 513 556 6565
[email protected]
[email protected]
[email protected]
Russ McMahon
Tom Wulf
Tamisra Sanyal University of Cincinnati 2220 Victory Parkway Cincinnati, OH 45209 513 556 6565
[email protected] ABSTRACT
Keywords
This paper will layout the University of Cincinnati's efforts in creating a software development track specialization for an information technology (IT) degree program to be started in the autumn quarter of 2004. The work done creating such an academic specialization for students is based on ACM SIGITE's initial implementation of IT curriculum guidelines. Input for the IT software development specialty was also obtained from faculty, students, and industry partners. Processes by which specific course offerings were chosen will be detailed; objectives of the track and courses, desired outcomes for students, content, and associated hands-on activities. In all, the paper will present a means by which a software development track can be successfully implemented in information technology programs at other universities that are interested in such an endeavor.
Information Technology, Curriculum, software, networking, database, web technologies.
1. INTRODUCTION 1.1 Background The University of Cincinnati is a public institution with an annual student enrollment of approximately 34,000. There are 15 colleges offering higher education pathways from 2-year associate to baccalaureate, master, PhD, JD and MD degrees. Currently, the Computer Science program is located within the College of Engineering while the Information Systems program is housed in the College of Business. In the past decade, numerous computer technology and information processing related programs sprouted up from different colleges to meet the public demands for more “applied” technology. This included both associate degree and baccalaureate degree programs from University College, College of Evening and Continuing Education and College of Applied Science (CAS). About 18 months ago the Provost mandated the Collegiate Structures Initiative (CSI) in an effort to combine and relocate university resources. As a result, CAS inherited all these programs and has been given the responsibility to administrate the variety.
Categories and Subject Descriptors H.3.2 [Computers and Education]: Computer and Information Science Education – curriculum, accreditation.
General Terms: Documentation and Standardization Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SIGITE'04, October 28-30, 2004, Salt Lake City, Utah, USA. Copyright 2004 ACM 1-58113-936-5/04/0010...$5.00.
At approximately the same time as CSI, the CAS computer technology faculty began a comprehensive re-evaluation of the programs’ curriculum. Although the timing coincided with the university-wide effort, the process was initiated independently from CSI. The curriculum revision was propelled mainly by the
206
emergence of new technology and the formation of the new IT discipline.
The program requires five quarters of cooperative education starting after the fall quarter of the second year. The percentage of technical courses in the program is 63%. The remaining courses are dedicated for general education, mathematics and science.
The external involvement began back in 1996 when a group of faculty participated in the documentation of the first volume of the State’s itWorks, which was a statewide effort to standardize the State’s IT competency profile for high school, associate, and baccalaureate education.[5] In April 2002 several faculty members attended CITC2 held in Savannah, Georgia. Since then, SITE was born and now it is known as SIGITE. These faculty members have become active participants within SIGITE. In spring 2003 they initiated the dialog within the university over the need to design an IT program that conformed to the national standard. The incentive to achieve program accreditation has been foremost in everyone’s mind. Comments and suggestions from industry, the programs’ advisory board, as well as alumni, were sought for the new curriculum design. Input from the current students was also weighed. Based on all the input the first faculty retreat in spring 2003 helped shape the directions of the new curriculum to be.
Figure 1: Structure of the new IT program at UC
1.2 SIGITE Model Curriculum In September 2001, a group of national IT educators formed the Society of Information Technology Education (SITE). The charges to the Society included establishing accreditation guidelines as well as a curriculum model to oversee national as well as global IT education. Since then, the Society has successfully applied to the Association for Computing Machinery (ACM) and been accepted as a Special Interest Group for Information Technology Education (SIGITE). Since April 2002, several CAS IT faculty members have actively participated in ACM-SIGITE, attending conferences, presenting papers and serving on committees. The definition of Information Technology (IT) as a discipline as well as goals, outcomes and curriculum guidelines were shared with members of SIGITE in CITC III and IV. [2,8,9] The IT program at University of Cincinnati (UC) abides by these requirements for both the associate (AS) as well as the baccalaureate programs (BS).
The structure of the program is flexible and allows multiple tracks to be offered as primary and as secondary. The IT program at UC currently offers three tracks as primary and five tracks as secondary as listed in table 1. Table 1: Specialty areas available for primary and secondary tracks Area Availability Software Development
Primary & Secondary
Web Technologies
Primary & Secondary
Networking
Primary & Secondary
Database
Secondary Only
Digital Media
Secondary Only
3. OVERVIEW OF THE CURRICULUM
2. PROGRAM STRUCTURE
Following the general guidelines of ABET, the curriculum is divided into technical component and non-technical component. The technical component is IT-related courses and it constitutes 63% of the curriculum. The non-technical courses are non-IT courses and are generally taught by other units in the University.
The courses in the IT program at CAS consists of core courses plus specialty courses offered through tracks. Core courses are courses required to be taken by all students in the program. This includes courses in the general education, mathematics, science and foundation courses that provide breadth of knowledge in all of the IT areas. The diagram in figure 1 outlines the structure of the program.
The curriculum is made of five main modules: the IT core module (35%), the non-IT core module (25%), the electives module (19%), the primary track module (16%) and the secondary track module (5%). [8]
The program is structured such that the first two-and-a-half years of the BS degree are the requirements for the AS degree. This structure has the advantage of smooth transition between AS and BS levels.
This structure of the curriculum satisfies the general requirement for accreditation as well as the general requirements for the University. This modular design allows easy maintainability of the curriculum. The changes in the IT industry are very frequent and the structure of the curriculum needs to adapt to these changes.
Students are required to declare a primary track after their freshman year. Students finish the requirements of the AS degree after the fall quarter of their third year. They can continue on to receive the BS degree or graduate with an AS degree. Students who continue to the BS degree are required to declare a secondary track. Table 1 shows the choices available for both primary and secondary tracks.
4. THE SOFTWARE DEVELOPMENT TRACK Software is an essential element of any computer system. The development of software started with the beginning of computers.
207
The curriculum requirement for developers in each one of these layers should be different and there is a continued need in the industry for developers in each one of these layers.
Advances in software development accelerated the use of computers by all segments of the society. All computer-related disciplines require elements of software development and debates sometimes arise as to whether software development belongs to computer science, information systems or software engineering. In fact, a question sometimes arises as to whether IT has anything to do with software development. Software elements have been a tradition in all the previous computer technology and information processing programs at CAS. It was not a surprise that our faculty decided that one of the primary tracks should be software. However, it is necessary to discuss the value of software development in an IT curriculum. The SIGITE curriculum model recommended software development as one of the core areas of IT. It is called programming in the curriculum draft.[2,9] One can recognize different layers of software development with respect to the user and computer system. For example, software is needed for the drivers of the different peripherals and hardware components. Software is essential in the development of operation systems, protocols, servers and database systems to mention a few. Development environments and frameworks are also a different layer of software. For instance compilers, linkers and virtual machines and integrated development environments. Software applications are software that targets users, whether individuals, organizations or communities. For example, course management systems, office applications, airlines reservation systems, banking systems, government systems, games, and many others. These applications are written directly for users and organizations. One can identify at least three layers of software as explained in table 2.
Figure 2: Layers of software components in current development environments Computer science programs historically have been preparing graduates for developing Layer 1 and Layer 2 applications. Software engineering programs are similar in that respect to computer science programs, although it is moving with the needs of the industry to prepare students more for developing in Layers 2 and 3, see figure 2. Information Technology degree programs (IT) have been defined by SIGITE to prepare graduates to meet the needs of users through the selection, creation, application, integration and administration of computing technologies.[2,9] In other words, IT graduates will create mostly Layer 3 applications and maybe some high level Layer 2 applications. Software development in IT programs is essential. However, requirements for software development in IT programs should be different from requirements for software development in computer science or software engineering programs.
Table 2: The different layers of software applications Software Layer
Description
Layer 1
Low level software that is written to manage hardware components. Generally written in assembly language or low level language such as C. For example, drivers, protocols and operating systems.
Layer 2
Layer 3
Information Technology students with software focus need to focus on understanding the users and how software can be designed and developed to meet users’ needs. They also need to be proficient in using development tools (Layer 2) to meet the needs of the customers. The software component in the IT program at CAS was developed to achieve this goal as detailed in the following sections.
Middleware applications that talk with the operating system and provide support for Layer 3 applications. For example, servers, development environments such as .NET, Java, C++, office suite, Macromedia suite and others. This layer of software is usually used by developers to create software applications.
4.1 Software Components in the Core Curriculum
Applications written using the Layer 2 software provide service to users and organizations. For example, web applications, reservation systems, banking systems, voting systems, and the like.
The IT core module represents 39% of curriculum and Software components constitute 23% of this technical core. [8] There are five courses that are required for all students. Four of these courses are taken in the freshman year and the fifth is taken in the third year. The first course is a course in programming logic that is followed by a sequence of three courses in computer programming. The first course in that sequence is a co-requisite for the logic course. The last software course is a course in system analysis and design that introduces students to the development life cycle and the unified modeling language (UML). The programming logic course is a typical course that focuses in the different elements of a program, algorithms, problem solving techniques and introduces students to object oriented concepts.
The requirement for developers is different for each one of the layers. Developers for Layer 1 need to be familiar with the low level operation of the hardware, algorithms, computer organization and so on. Layer 3 developers need not be familiar with low level programming but they need to be familiar with the middleware (Layer 2) tools and with user-related issues.
208
who start this sequence have already finished the first programming sequence in the core. The first programming sequence is an introduction to computer programming and Object Oriented Programming (OOP) and gives students a strong foundation to writing, compiling and testing programs. In this second sequence, students focus more on enterprise systems and the application of OOP concepts. The Description of each of the three courses is listed in table 3.
The system analysis and design course focuses on the life cycle and the use of UML. The three quarters programming sequence introduces students to computer programming starting with the fundamentals and moving to object oriented concepts and advanced applications. The sequence uses an object oriented language such as Java. The choice of the technology or programming language to use in this first programming sequence was the subject of a long debate. While, the .NET framework settled to be the technology choice for the second sequence as discussed in Section 4.2.1.1 below, the faculty debated different options for the first sequence. C++ and Java were the two rivals in that discussion. The Java programming language has became the language of use in many universities and high schools. Different web technologies are based on the Java programming language and its use supports future courses. The following section discusses components in the primary track.
the
different
Table 3: Description of the contemporary programming sequence
software
Course
Description
Contemporary Programming I
This course deals with advanced programming techniques and design issues relating to enterprise software development with concentration on the presentation-tier development.
Contemporary Programming II
Topics include database processing and database interfaces using current enterprise application development tools and development and design methodologies. The concentration will be on the middle-tier development.
Contemporary Programming III
Topics include optimization techniques, multithreading, remote method invocation, system services, security techniques and how to use attributes, metadata, and reflection.
4.2 Components of the Software Primary Track The primary module constitute 19% of the IT curriculum.[8] This is fulfilled through ten courses. These courses are grouped in three categories as shown in figure 3. The first is advanced courses in software. The second is a flexible course that offers new technologies, the special topics course and the third is the senior design project sequence.
4.2.1.2 Systems Analysis & Design and Software Engineering These two courses are a continuation of the Systems Analysis and Design course that is required in the core module. A description of these two courses is listed in table 4. Table 4: Description of Systems Analysis and Software Engineering courses
Figure 3: Components of the software primary track The following sections explain the details of each of these components.
Course
Description
Systems Analysis & Design II
The design phase of the system development lifecycle
Software Engineering
Software engineering processes, methods, tools and techniques are introduced in a framework of requirements gathering, problem definition, analysis, design, software architecture, testing and quality assurance.
4.2.1 Advanced Courses Students who chose software as their primary module are required to take seven advanced courses that amount to 21 quarter credit hours. The choice of these courses was based on several factors. The first is to give the students strong hands-on experience using current development environments. The second is to give students strong understanding of the software components, design process and software engineering and the third is to utilize existing courses in the previous curriculum as much as possible. The following subsections explain the details of each one of these courses.
4.2.1.3 Data Structures The goal of a data structure course in an IT curriculum is different that its goal for a computer science curriculum. In a computer science curriculum, the course focuses on algorithms analysis and development and low level development of data structure elements. In our software primary track, this course focuses on the selection and integration of different algorithms and data
4.2.1.1 Contemporary Programming Sequence This is a sequence of three quarter courses that are offered at the beginning of the primary track in the sophomore year. Students
209
structures in an application and the use of different library modules that implement data structure components.
5. Conclusion A software development track is developed to be a primary module in the new IT program and fulfill the requirement of the SIGITE curriculum model. The track consists of three components: intermediate and advanced courses, senior design project and special topics course. The courses are described in general in the college bulletin to allow flexibility in adapting new technologies. The track introduces students to the current technologies in software development, the Java and open source development environment and the Microsoft .NET development environment. The software track builds on the software components in the core curriculum. Forty-two percent of students transferring to the new program selected software as either a primary or secondary track.
4.2.1.4 Programming for Mobile Devices This course introduces students to the development and deployment of applications for consumer and embedded devices and it surveys the available technologies. This is a senior level course and students are expected to have gained good experience through their coursework and their co-op experience.
4.2.2 Special Topics in Software Development The special topics course is a course that has a different focus every time it is taught. This course has been a successful tradition of the previous computer technology programs at UC CAS and is adapted in the new curriculum. The course is an opportunity for faculty members to offer advanced topics and is also an opportunity to invite lecturers and qualified professionals to introduce new topics to students.
6. REFERENCES [1] Information Technology Curriculum at UC CAS, http://it.cas.uc.edu
4.2.3 Senior Design Project in Software Development
[2] Leung, S., Said, H., Stockman, M., Enroute to Making an IT Baccalaureate Program, submitted for publication at the 2004 SIGITE Conference, UT, October 2004
Every primary track culminates with a two-quarter senior design project in that particular track. This senior design sequence has a pre-requisite of the Senior Design I course in the core. In the core course, students define their senior design in their primary area of specialization. The sequence is a co-requisite for the senior design project management sequence in the core. Students use the core course to learn and develop their project management plan and use the primary track sequence to develop the application. The requirement for the senior design project is to be a professional real-life project. Students generally utilize their co-op experience and in many cases their co-op company sponsors the project. The project is not required to be sponsored by an industrial partner, however. Students can do a project for their own community, their hobby or their personal interest.
[3] Lunt, B.M., Ekstrom, J.J., Lawson, E.A., Kamali, R., Miller, J., Gorka, S., and Reichgelt, H. Defining the IT Curriculum: The Results of the Past 21/2 Years. Proceedings of the American Society for Engineering Education Annual Conference and Exposition (Salt Lake City, US, June 21-23, 2004) [4] Lunt, B.M., Lawson, E.A., Goodman, G., Helps, C.G.R, Designing an IT Curriculum: The Results of the First CITC Conference. Proceedings of the 2002 American Society for Engineering Education Annual Conference and Exposition. [5] Ohio itWorks (http://www.itworks-ohio.org/) [6] Reichgelt, H., Zhang, A., Price, B. Designing an Information Technology Curriculum: The Georgia Southern University Experience., Journal of Information Technology Education, Volume 1, No. 4, 2002
4.3 Students’ Feedback The new IT program will start in the fall of 2004 and as it is replacing several existing related programs, the issue of legacy students is important. What options do students in the discontinued programs have? Can they transfer to the new program? Leung et al discusses the transition process for the legacy students.[2] Students were given the option to transfer to the new program. The process required existing students to submit a transition request form and to indicate if they will transfer to the new program or if they will stay in their old program. About 357 students responded at the time of the writing of this paper and 48% of them indicated that they want to transfer to the new program. These students were required to choose a primary and a secondary track.
[7] Said, H., et al, An Implementation of Secondary Tracks in an Information Technology Degree Program, submitted for publication at the 2004 SIGITE Conference, UT, October 2004 [8] Said, H., et al, An Implementation of a Core Curriculum in an Information Technology Degree Program, submitted for publication at the 2004 SIGITE Conference, UT, October 2004 [9] SIGITE curriculum guidelines: http://www.sigite.org [10] Stockman, M., et al, An Implementation of a Networking Track in an Information Technology Degree Program, submitted for publication at the 2004 SIGITE Conference, UT, October 2004
The most popular track was networking with more than 47% of the students selecting networking as their primary module. Stockman et al discusses the details of the networking track as a primary module.
[11] Unified Modeling Language: http://www.uml.org/
The software track was selected by more than 30% of the students as a primary module and more than 12% selected software as their secondary module.
210