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
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.
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
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.
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.
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.
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.
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.
WEEK | TOPICS |
---|---|
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
E-mail: byu@bcit.bc.ca
Questions may be addressed to: Benjamin Yu