An Integrated Approach in Teaching Computing Courses

Benjamin Yu
Computer Systems Technology
British Columbia Institute of Technology
3700 Willingdon Avenue
Burnaby, B.C.
V5G 3H2



Traditionally, computer science topics are taught by a number of courses with each course focusing on one specific topic. Examples are courses on software engineering, database, operating systems, etc. The advantage of this type of course offering is that both students and faculty may concentrate on a specific topic for each course at one time, and in particular, faculty may concentrate their specialisation and research in a few selected areas. On the other hand, one disadvantage of this presentation style is that students do not have a cross-discipline perspective in computing but rather, a vertical one. A course in introductory programming is usually followed by a more sophisticated course on software development process, which is then followed by yet another course on the use of CASE tools, and perhaps finally, a course on the use of database in developing real business applications. Oftentimes, the material presented in each of the courses is disjointed, and at other times, material is duplicated in different courses. This paper proposes an integrated approach to teaching computer topics and reports the experience of teaching such a course at the British Columbia Institute of Technology.

Keywords: Computer studies, integration of topics

Section 1: Introduction and Background

At the British Columbia Institute of Technology (BCIT), one of the entry requirements to the Bachelor of Technology program in Computer Systems is a two-year diploma in Computer Systems Technology from BCIT. Traditionally, the courses for the diploma program are offered using a one-subject-per-course format, like most other courses offered at colleges and universities. Students take about thirty-three courses in a period of two years for the program. While not every applicant to the Bachelor program has a Computer Systems Technology diploma, the formal education background of each applicant is individually assessed and supplementary course work is assigned. These courses are called foundation courses. The number of foundation courses an applicant will have to complete prior to entry into the Bachelor program ranges from four to twenty. If one were to take three courses per year, (or one course per term), one can potentially take about six to seven years before course work on the Bachelor program can begin. This could significantly dampen the motivation and enthusiasm of some students. However, the situation also gives rise to new opportunities in delivering the same courses in a new fashion.

A number of foundation courses are packaged into one integrated course which is delivered in the same duration as other courses (i.e. twelve weeks). The material is reorganised, integrated, and presented in a unified format. Not only do these courses allow the students to complete the foundational studies more quickly, they also give the students a more comprehensive perspective of computer studies. These integrated courses were offered recently for the first time in January 1997 at BCIT. Students performance will be described in more detail later.

This paper is divided into the following sections: section 2 describes the contents of the integrated courses, section 3 describes how students are evaluated and their performance, section 4 discusses the advantages and disadvantages of the integrated courses, and section 5 is the conclusion.

Section 2: Integrated Courses

A set of core fundamental courses (about 20) must be completed by applicants to the Bachelor of Technology program in Computer Systems at BCIT. Among this set of core courses are the following:

Programming Languages

* C Programming Language I
* C Programming Language II
* C++ Programming Language

System Analysis and Design

* Computer Systems Development I
* Computer Systems Development II
* CASE Technology
* Relational Database Systems


* Exploring Technical Aspects
* Data Communication Concepts I
* Data Communication Concepts II
* Operating Systems

Traditionally, these courses are taught as individual units. Each course runs for about 12 weeks and each week, there are 3 hours of lecture and lab. Although sometimes, mention is made on how different topics from various courses are interrelated, due to the time and material devoted to each course, the interrelationship among the topics are not emphasised. Faculty also usually assume background information of topics presented in prerequisite courses and it is the student's responsibility to "fill in the gap". The courses above are packaged into three integrated courses as follows:

Integrated Course I

* C Programming Language I
* Exploring Technical Aspects
* Computer Systems Development I
* Data Communication Concepts I

Integrated Course II

* C Programming Language II
* Data Communication Concepts II
* Operating Systems

Integrated Course III

* C++ Programming Language
* Computer Systems Development II
* CASE Technology
* Relational Database Systems

These integrated courses are offered as three intensive courses. This is not a necessary criteria for the offering of these courses and the implication of offering them as such will be discussed later on. The format of the intensive course is as follows: students attend a 3 hour lecture every week for 12 weeks. There is no lab time on campus allocated. Each student is expected to have access to his / her own computer to complete the assignments each week. During the lecture, half of the time is devoted to review and consolidation of material which the students study and work on in their assignments in the previous week. During this portion of the class time, students exchange assignments for grading. This provides opportunities for students to review each other's work and to further understand the subject areas, but most importantly, they are given the opportunity to read each other's code. The ability to read code written by someone else is an important skill which has often been found lacking in junior programmers and the structure of these integrated courses provides an opportune venue to promote the development of this skill.

The second portion of the lecture is devoted to an introduction of new material which the students are supposed to learn in the coming week. Also, difficult concepts are explained in detail at this point to ensure that the students have a good background to continue in their learning outside class. Students are given both programming assignments and non-programming assignments each week.

2.1 Subsection: Motivation for Intensive Courses

Given the context in which these courses are offered at BCIT, one of the primary objectives of these courses is to fast track the students to complete them so that they may continue in the Bachelor level courses. Since the program is catered towards working professionals, accessibility to campus and scheduling of the courses to fit a working schedule are issues to be considered. The courses are offered in intensive format so that a student, instead of having to schedule three to four courses each term, can allocate just one evening to attend the lecture on campus, and work around his/her schedule for the readings and assignments.

Examples of Integrated Topics:

The first integrated course contains material from C, computer system development, computer architecture, and data communication. One of the programming assignments is to write a C program to simulate a computer. Students learn about the CPU architecture, how data and machine instructions are stored in memory and how programs are executed. The C implementation of a computer simulator requires the students to understand these concepts, as well as using C pointers (especially) in the development. Software specification using decision tables is reinforced as the assignment requires documentation of the entire development process.

Another example is drawn from the third foundation course where students learn ER modelling techniques and use ERwin (CASE tool from LogicWorks Inc.) to diagram the model and automatically generate the database. Object oriented technologies are introduced and applied both in a programming language C++ as well as in a visual oriented database application development environment called Powerbuilder. Concepts in the software development cycle, such as the use of other CASE tools like rcs, make, etc., as well as formal software testing as applied to database applications are emphasised throughout the course.

A summary of integrated topics for the first foundation course is included as Appendix A.

Section 3: Student Evaluation and Performance

Like any other course, a good grasp of prerequisites is essential in the successful completion of the integrated course. Availability of resources for supplemental reading and the instructor's guidance throughout the week is also important. Students have access to the teaching faculty throughout the week via email, phone, or fax. Students are evaluated by weekly assignments which include programming and non-programming problems, a midterm every 4 weeks, and a comprehensive final exam at the end of the course. Students may co-operate in deriving solutions of homework assignments but final submission of the assignment must be done on an individual basis. All midterms and the final exam are closed book except for the text book on C.

Overall the student performance is comparable to those who take the equivalent courses individually. Since the integrated courses were delivered in an intensive format, the pressure on the students comes mostly from the limited time allocated to each topic. In general the students do appreciate how one topic is complemented by understanding of a related topic. The students are also motivated to excel in each area in the integrated course since deficiency of one area may affect the overall performance of the entire course. Also since the cost of the integrated courses is much higher than a normal single course (as much as four times), the number of students dropping out after the courses have started is much lower.

Section 4: Disadvantages

Much have been said in this paper about the advantages of the integrated approach to teaching computer topics. This section focuses on the disadvantages associated with this style of presentation.

Students find it difficult to catch up once s/he is falling behind. This is even more emphasised in the integrated course than other regular courses since understanding of one topic usually depends on another. On the other hand, one of the advantages is that once a topic is understood, the student can confirm his/her understanding with related topics.

Students receive a final grade in this course much like the other courses. However, the students' strengths and weaknesses in different areas are not adequately reflected in this one grade. An anecdotal attachment to the final grade may be more appropriate for the integrated course.

Section 5: Conclusion

This paper presented how integrated courses have been taught at BCIT and specific examples of integrated topics taught in various integrated course are also described. Perhaps it is best not to teach these courses in an intensive format. However, experience confirms that an integrated approach to teaching and understanding of computer topics is definitely a viable and advantageous format from a pedagogical point of view, and is welcomed both by the students and the faculty.

Appendix A: Integrated Topics for Foundation Course I

1 Introduction, C programming, Software life cycle
2 C Programming, Generations of hardware / software systems
3 CPU, Memory, I/O Devices, Functions in C
4 Review / Midterm I
5 Software Specification, Pointers in C, Building a Computer Simulator
6 Digital Logic
7 C Features: Characters and strings, structures, Microprogramming
8 Midterm II
9 Abstract Data Type
10 Machine Language, Assembler Language
11 Modern Machine Architecture, Network Operating Systems
12 Final Exam


Name: Benjamin Yu
Department: Computing Systems Technology
Institution: British Columbia Institute of Technology
Postal: 3700 Willingdon Ave, Burnaby, B.C., Canada, V5G 3H2

Questions may be addressed to: Benjamin Yu