Engineering Business Computing Systems:
A Position Paper

D. Cochrane, W. Hohman, D Roelants, P. Walsh
Computing Science Department, Malaspina University College

 

ABSTRACT

Malaspina University-College, as part of its mandate, seeks to offer programs that are innovative, unique, applied and for which there is a demand for graduates. Within this context, the Department of Computing Science at Malaspina has developed a proposal for a degree program in Computer Science. This paper is a position paper on the proposed Bachelor of Science in Computer Science at Malaspina University-College.

Traditional degree programs in computer science tend to focus on scientific applications and system applications. The business-application domain is largely ignored. The focus of the proposed program is the engineering of business computing systems. The proposal consists of a mix of technical and educational courses coupled with on-the-job training. The program is designed to train students in applied computing and educate them in the social, ethical and legal implications of computing.

 

 

1. Introduction

The proposed Bachelor of Computing Science degree program is designed to meet the training and educational requirements outlined by CIPS (Canadian Information Processing Society), ACM and IEEE. These requirements reflect the general wants and needs of the computing industry both nationally and internationally.

Many current degree programs in Computer Science focus on scientific applications and system applications. The business-application domain is largely ignored. The focus of our program is the engineering of business computing systems. In our view, the curriculum presented in this paper, is well suited to the needs of a student preparing for a career in business computing. It will train students in applied computing and educate them in the social, ethical and legal implications of computing. With an eye to the future and the legal certification of computing professionals, we believe that graduates of our program will be well positioned to seek and, with professional experience, attain certification.

 

2. Program Format and Requirements

The proposed degree is a five year Co-Operative Bachelor of Science in Computer Science. The requirements for the degree include prescribed courses, course electives and work experience.

A total of 120 units are required to complete the degree. Students will be required to take 63 units of computing courses. These courses will focus on specific technologies and their implications. A total of 12 units of social implications courses are required. These courses will focus on the human side of computing. Elective courses will account for the remaining units.

With regard to work experience, students are required to participate in two work placements. The first placement will occur after the completion of two full years (four academic terms) of course work and will be four months in duration. The second placement will occur between the third and fourth years of study and will be twelve months in duration.

Program requirements are as follows:

 
Term 1 CoursesUnit Value
CSCI 110Intro to Computers and Computing3
CSCI 160Computing Science I
(Fundamentals of Programming I)
3
ENGL 115College Composition3
MATH 121Calculus I3
 
Other course*3
 
Term 2 CoursesUnit Value
CSCI 161Computing Science II
(Fundamentals of Programming II)
3
CSCI 162Topics in Computer Science*3
MATH 122Calculus II3
MATH 210Discrete Math3
ENGL 116Introduction to Literature3
Total (Term 1 and Term 2)30
 
Term 3 CoursesUnit Value
CSCI 260Data Structures3
CSCI 265Software Engineering I
(Productivity Tools)
3
CSCI 297Technology and Society3
MATH 241Linear Algebra3
 
Other course*3
 
Term 4 CoursesUnit Value
CSCI 111Applications Programming*3
ENGL 225Business and Technical Writing3
CSCI 261Computer Architecture and Assembly Language*3
SOCI 111Introduction to Sociology*3
 
Other course*3
Total(Term 3 and Term 4)30

 
Courses for Years 3 and 4Unit Value
CSCI 300Co-op Placement0
CSCI 310Foundations of Computing3
CSCI 315Algorithms and Data Structures3
CSCI 350Computer Systems and Software3
CSCI 360Object Oriented Programming3
CSCI 365Software Engineering II)
(Software Development and Maintenance**)
3
CSCI 370Database Systems**3
CSCI 375Introduction to Systems Analysis**3
CSCI 380Logic and Programming3
CSCI 397Human Computer Interaction3
CSCI 400Co-op Placement II0
CSCI 406Topics Seminar3
CSCI 450Computer Communications and Networks3
CSCI 497Advanced Systems Analysis3
MATH 211Statistics I3
ACCT 293AFinancial Accounting for CSCI Students3
PSYC 334APersonnel and Organizational Psychology3
PSYC 334BWorkplace and Consumer Psychology3
SOCI 250Intro to Sociology Research Methods**3
 
Electives 9
Total
 
60

Notes:
* can be taken in first or second year.
** can be taken in second year leaving additional room for upper division Computing Science electives.

Many of the courses that are required in the proposed degree are offered at a number of institutions. In developing the degree proposal, we examined the established degree programs at the three major universities in British Columbia. For a B.Sc. in computing, students at each of the three major universities must take at least 10 one semester courses in computing at the 3rd and 4th year level. The universities vary in how many of those courses are required and how many can be chosen from a list of optional other courses.

The required courses in the B.Sc. degrees offered by Simon Fraser University (SFU), the University of British Columbia (UBC) and the University of Victoria (UVic) include software engineering, advanced data structures, a project course, the theory of computing, database, and operating systems, and all require at least one third year mathematics course or a third year course in numerical analysis.

Our degree proposal is focussed on producing graduates that will work in a business environment. Many of our courses are in common with the courses required at the major B.C. universities. We feel however that graduates that will work in a business environment do not need to know numerical analysis and will probably not need to take third year mathematics courses. In fact we have chosen to have only five mathematics courses in the whole degree, the minimum required for C.I.P.S. accreditation.

There are two other major differences between our proposed program and the degrees offered at UVic, UBC and SFU. The first is the fact that we propose that very few courses in the student's degree program be optional. In fact, in third and fourth year combined there are only 3 optional courses and all of the computing courses are required.

The second, and more significant difference is in the types of courses we propose be required. We propose that students be required to take specific courses outside of the traditional areas of mathematics and computing, and since we do not expect to be educating systems programmers we require that students take a single survey course that is designed to introduce students to the concepts but not to make them proficient system programmers.

We do, however, require a number of courses that are designed to ensure that the students get a good understanding of the social factors and business factors that we expect will affect their future and a number of courses that will teach them the skills they are more likely going to need in a business environment. Courses such as Human Computer Interaction, Systems Analysis, Database, Object Oriented Programming all will be necessary in business computing.

And with the potential for computing to become a profession it is important that students learn some of the ethical and social issues in computing. That goal is achieved by both a specific course taught at year 2, and by integrating the material from that course into the work in upper division courses.

 

3. Calendar Descriptions

The following are the proposed calendar descriptions of courses not listed in the Malaspina University College Calendar: (see http://www.mala.bc.ca/www/crsinfo/calendar/crscsci.htm)

Computing Science

     CSCI 300 (0)   Co-op placement I 
     First co-op workterm placement.  Gives the students the
     opportunity to combine course material and practical work
     experience. A report will be required that discusses both the work
     that the student did and the social issues related to that work.
     Prerequisites: CSCI 365 or permission of the coordinator

     CSCI 315 (3)   Algorithms and Data Structures
     Amortised time complexity, lower bound arguments, matrix
     operations, string matching, graph algorithms: shortest path,
     minimum spanning tree, network flow will all be discussed. The
     student will also be introduced to data structures for disjoint
     sets, priority queues and balanced trees. Programming techniques
     including divide and conquer, dynamic programming, greedy
     algorithms and branch and bound will be covered.  
     Prerequisite: CSCI 260, MATH 210 and MATH 241

     CSCI 350 (3)   Computer Systems and Software 
     An introduction to operating systems and the architecture of
     computer systems. Topics include operating system structures and
     problems such as deadlock, memory management, file systems and
     protection, as well as other topics such as digital logic, buses,
     memory management, virtual memory, lookahead, compilers and
     interpreters and the impact of machine architecture on them.
     Prerequisites: MATH 210, CSCI 260 and CSCI 261

     CSCI 360 (3)   Object Oriented Programming 
     An introduction to the design techniques and concepts of object
     oriented programming. The course will cover concepts such as
     dynamic dispatching and inheritance. Students will work with
     languages such as Smalltalk, C++ and Java.  
     Prerequisites: CSCI
     260 and CSCI 265

     CSCI 375 (3) Introduction to Systems Analysis 
     This course introduces the student to many of the techniques used
     in analyzing a business data processing system.  Topics include:
     project definition, preliminary design, human-computer interface,
     data gathering and analysis, database design, system controls,
     hardware selection, system testing, implementation and operation.
     Students will be assigned to a project team involved in a system
     study as part of the course.  
     Prerequisites: CSCI 162, 265.

     CSCI 380 (3)   Logic and Programming 
     This course concentrates on the practical applications of logic in
     computer science and its relevance in such areas as software
     engineering, artificial intelligence and circuit design theory.
     Topics discussed will include the following:  propositional
     expressions and circuits, reading and writing first order logic,
     predicate logic as a relational query language, knowledge
     representation, PROLOG, and other related topics. Some
     philosophical issues such as free will also be discussed.
     Prerequisites: CSCI 161 and either MATH 210 or PHIL 101

     CSCI 397 (3)   Human Computer Interaction 
     An introduction to issues related to human-computer interaction.
     Topics include:  graphical user interfaces and client server
     systems. Interface design issues such as ergonomics, graphical
     issues and interface evaluation. Social issues will also be
     discussed such as the computer as authority, administrative and
     management implications, computers and social control, computer
     surveillance, machine and human responsibility.
     Prerequisite: CSCI 265, CSCI 297 and PSYC 334B.

     CSCI 400 (0)   Co-op placement II 
     Second co-op placement. The duration of the placement will be for
     one year. The student will combine course material and practical
     work experience. A report will be required that discusses both the
     work and the social issues related to that work.

     CSCI 405 (3)   Directed Studies 
     Individual research directed by a faculty member. May be repeated
     for a maximum of 6 units of credit.

     CSCI 406 (3)   Topics in Computing
     Topics will vary from year to year and will be on emerging topics
     in Computer Science. May be taken more than once for credit.
     Prerequisite: dependent upon topic

     CSCI 450 (3)   Computer Communication and Networks
     An introduction to concepts in computer communication and
     networks. Topics will include layered network architectures,
     packet switching networks, local area networks, protocol design
     and verification, error detection, network testing and analysis,
     network security and applications in distributed computing. The
     internet and social implications of the large scale networks.
     Prerequisites: CSCI 350

     CSCI 465 (3)   Software Engineering III - Software 
                    Development Process
     This course is concerned with improving  software quality by
     improving the process by which software is developed. Topics
     include:  Capability Maturity Model (CMM) from the Software
     Engineering Instutite (SEI); ISO-9000 from the International
     Standards Organization (ISO).
     Prerequisite:  CSCI 365

     CSCI 470 (3)   Advanced Database Systems 
     An advanced course on the use and operating principles of database
     management systems.  Topics include: distributed databases,
     concurrency control, object oriented databases.  Social
     implications material such as data security and integrity, data
     access, freedom of information and protection of privacy will also
     be cilling, deprofessionalization and the difference between human
     and machine reasoning.  
     Prerequisite:  CSCI 370 and CSCI 380

     CSCI 490 (3)   Computer Graphics
     Fundamental algorithms and data structures used in generative
     computer graphics are presented. Topics include the structure of
     interactive graphics programs, raster algorithms, colour, two and
     three dimensional geometric transformations, animation, parallel
     and perspective projections, hidden line and hidden surface
     algorithms, cubic curves and surfaces, and shading models.
     Prerequisites: CSCI 165, CSCI 225 and MATH 241

     CSCI 497 (3)  Advanced Systems Analysis
     This is a project course where students will experience project
     definition, preliminary design, data gathering and analysis,
     system controls, hardware selection and software testing.
     Students will also learn about cost benefit analysis and project
     budgeting. As part of the course, the students will have to
     undertake a major project that will include a thorough analysis of
     the social, ethical and legal implications of the system that they
     design and to make recommendations about how to deal with problems
     that they identify.
     Prerequisite: CSCI 265, CSCI 375, CSCI 397 and SOCI 375B.

Psychology

     PSYC 334A (3) Personnel and Organizational Psychology
     This course covers research and theory in personnel selection,
     placement, training, motivation, satisfaction, leadership,
     productivity, and communication.

     PSYC 334B (3)  Workplace and Consumer Psychology
     This course covers research and theory on the relationship between
     employees and the work setting; it also introduces consumer
     psychology. The impact of workplace technology, stress, noise,
     light and office design on productivity, alcohol and drug abuse
     and safety behaviour is considered.  Research in and methods of
     investigating consumer behaviour and advertising are surveyed.

 

4. Summary and Conclusions

The proposed program is in keeping with Malaspina'a mandate of offering programs that are innovative, unique, applied and for which there is a demand for graduates. The program is designed to meet the training and educational requirements outlined by CIPS (Canadian Information Processing Society), ACM and IEEE. The focus of the program is the engineering of business computing systems.

The program will employ a hybrid computing environment consisting of Microsoft Windows and Unix. Our courses will train students in applied business computing. To this end, our primary platform will be Microsoft Windows (Windows NT). The required-course-concentrations in business computing are shown below:

 
Windows Programming (Databases and Human Computer Interaction)
CSCI 110, CSCI 111, CSCI 370, CSCI 375, CSCI 397, CSCI 497
Object Oriented Programming
CSCI 160, CSCI 161, CSCI 265, CSCI 360, CSCI 365
Systems Analysis and Design
CSCI 375, CSCI 397, CSCI 497
Software Engineering
CSCI 265, CSCI 365, CSCI 397
Systems Organization and Networking
CSCI 162, CSCI 261, CSCI 350, CSCI 450
Business Organization and, the Ethical and Legal Implications of Computing
CSCI 297, ENGL 225, SOCI 111, ACCT 293A,
PSYC 334A, PSYC 334B SOCI 250
Off-Campus Work Experience
CSCI 300, CSCI 400

We believe that our proposed program is sound both from an academic perspective and from the perspective of the needs of the business community. We conclude that the program can produce quality graduates trained and educated in the engineering of business computing systems. With an eye to the future and the legal certification of computing professionals, we believe that graduates of our program will be well positioned to seek and, with professional experience, attain certification.