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.
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.
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 Courses||Unit Value|
|CSCI 110||Intro to Computers and Computing||3|
|CSCI 160||Computing Science I |
(Fundamentals of Programming I)
|ENGL 115||College Composition||3|
|MATH 121||Calculus I||3|
|Term 2 Courses||Unit Value|
|CSCI 161||Computing Science II|
(Fundamentals of Programming II)
|CSCI 162||Topics in Computer Science*||3|
|MATH 122||Calculus II||3|
|MATH 210||Discrete Math||3|
|ENGL 116||Introduction to Literature||3|
|Total||(Term 1 and Term 2)||30|
|Term 3 Courses||Unit Value|
|CSCI 260||Data Structures||3|
|CSCI 265||Software Engineering I|
|CSCI 297||Technology and Society||3|
|MATH 241||Linear Algebra||3|
|Term 4 Courses||Unit Value|
|CSCI 111||Applications Programming*||3|
|ENGL 225||Business and Technical Writing||3|
|CSCI 261||Computer Architecture and Assembly Language*||3|
|SOCI 111||Introduction to Sociology*||3|
|Total||(Term 3 and Term 4)||30|
|Courses for Years 3 and 4||Unit Value|
|CSCI 300||Co-op Placement||0|
|CSCI 310||Foundations of Computing||3|
|CSCI 315||Algorithms and Data Structures||3|
|CSCI 350||Computer Systems and Software||3|
|CSCI 360||Object Oriented Programming||3|
|CSCI 365||Software Engineering II) |
(Software Development and Maintenance**)
|CSCI 370||Database Systems**||3|
|CSCI 375||Introduction to Systems Analysis**||3|
|CSCI 380||Logic and Programming||3|
|CSCI 397||Human Computer Interaction||3|
|CSCI 400||Co-op Placement II||0|
|CSCI 406||Topics Seminar||3|
|CSCI 450||Computer Communications and Networks||3|
|CSCI 497||Advanced Systems Analysis||3|
|MATH 211||Statistics I||3|
|ACCT 293A||Financial Accounting for CSCI Students||3|
|PSYC 334A||Personnel and Organizational Psychology||3|
|PSYC 334B||Workplace and Consumer Psychology||3|
|SOCI 250||Intro to Sociology Research Methods**||3|
* 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.
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.
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)
| Object Oriented Programming
| Systems Analysis and Design
| Software Engineering
| Systems Organization and Networking
| Business Organization and, the Ethical and Legal Implications of Computing
| Off-Campus Work Experience
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.