A first computing course based on curricula 1991
A two semester first year course is proposed that provides an introduction to algorithmic problem solving and programming, human-computer communication, file and database systems, and software engineering. The goals of this course coincide and expand ...
A balanced approach to first-year computer science
We describe a first-year course sequence for computer science majors that covers most of the traditional first-year concepts, providing a balance between formal analysis and software synthesis, with examples and assignments in three high-level ...
The practical need for fourth normal form
Many practitioners and academicians believe that data violating fourth normal form is rarely encountered. We report upon a study of forty organizational databases; nine of them contained data violating fourth normal form. Consequently, the need to ...
The documentation and evaluation of team-oriented database projects
This paper focuses on documentation and evaluation techniques for monitoring and assessing team oriented database projects in a senior level database course in computer science. Instead of effecting documentation as the last phase in traditional ...
Building an infrastructure to support writing across the computer science curriculum
This paper describes an infrastructure to support efforts to improve communications skills. This infrastructure is designed to support writing throughout the computer science curriculum and the typical deficiencies and attitudes of computer science ...
An integrating pedagogical tool based on writing articles
This article describes a teaching method based on the writing of review or vulgarization articles by the students in their fields of study. The best articles are published in a magazine distributed to data processing managers and practitioners. The ...
Teaching concurrency with Joyce and Linda
To overcome the difficulty of demonstrating the principles of concurrency with limited parallel computing resources, a concurrent programming language has been designed and implemented which uses the Linda parallel programming paradigm. The language ...
A course in software portability
This paper describes an experimental course on the topic of software portability, and initial experience in teaching this course. With the continuing proliferation of both applications and computing environments, the need for portability is being ...
Undergraduate software engineering laboratories: a progress report from two universities
Recently, both Miami University of Ohio and the Rochester Institute of Technology received NSF grants to develop undergraduate software engineering laboratories. While the general goals of the labs are similar, specific hardware and software selections ...
Men supporting women computer science students
It has become clear that, for a variety of reasons, women CS enrollments are declining at a disproportionate rate and that the number of women “in the pipeline” is insufficient to mentor and otherwise support the development of CS interests among ...
Raising the self confidence and self esteem of final year female students prior to job interviews
Published research and anecdotal evidence suggest that women may be disadvantaged when seeking employment. This paper describes a one day seminar on handling job interviews, conducted for female computer science students at the beginning of the final ...
The effects of an introductory computer course on the attitudes of older adults towards computers
An introductory computer course was offered to adults 60 years and older. A computer attitude survey was administered before and after the course in order to uncover preexisting concerns and reveal those attitudes most affected by the course. Attitudes ...
Designing laboratory modules for novices in an undergraduate AI course track: artificial intelligence
A current joint project between three institutions in Switzerland has as its goal to create Artificial Intelligence (AI) software in teaching principles of AI at the University level. The modules of this project, the Portable AI Lab (PAIL), illustrate ...
Developing expertise in expert system development by developing prototypes for actual commercial applications
We designed and executed a course to develop expert system expertise in a classroom environment. It taught both the theory and practice of knowledge-based systems. Teams consisted of knowledge domain experts and computer experienced people. The interest ...
Biologically based machine learning paradigms: an introductory course
This paper describes an introductory course on biologically based sub-symbolic machine learning paradigms. Specifically, this paper covers Artificial Neural Networks, Genetic Algorithms and Genetics-Based Machine Learning. It provides the structure, ...
Teaching loop invariants to beginners by examples
Since the concept of a loop invariant has long been recognized as the correct way to design and analyse loops, it is important that its application to programming be introduced to students and programmers as early as possible. This paper describes how ...
Using scientific experiments in early computer science laboratories
Computer science is an experimental science, in the same sense that biology or physics are experimental sciences. Nonetheless, lab exercises for CS1 and CS2 courses are almost never formal “experiments” as the term would be understood in any other ...
On finding a stable roommate, job, or spouse: a case study crossing the boundaries of computer science courses
The use of real world problems as the basis for assignments in Computer Science courses is attractive for many reasons. At the same time it is difficult to find such a problem that offers the same richness that is found, for example, in sorting or ...
Management information systems curricula in the United States and the Republic of China: a comparative study
The purpose of this study was to investigate and compare the Management Information Systems (MIS) curricula in higher education in the United States (U.S.) and the Republic of China (R.O.C.). Several factors that affect the MIS curricula and its ...
A CPU scheduling simulation from structured programming to object-oriented design
Object-oriented programming has become increasingly popular in the past few years. This paper presents a cpu scheduling simulation project that we feel can convince students of the benefits of object-oriented design and spur their interest. We will ...
A seminar course in object oriented programming
The emerging technology of object oriented programming is just beginning to be introduced into the computer science curriculum. In most schools, it will be introduced first at the more advanced levels, prior to inclusion in introductory courses, even ...
A compiler construction project for an object-oriented language
A non-traditional compiler construction project is described for an object-oriented language modeled after Smalltalk. Central issues include implementation of message sending and inheritance and the relationship with the run-time environment. The ...
Good pedagogical random number generators
A CACM by Park and Miller [6] advocated a standard for random number generators based on the Lehmer generator [5] and criticised a number of computer science textbooks for presenting bad random number generators. This paper advocates the proposed ...
Introducing functional programming in discrete mathematics
Programming assignments in my discrete mathematics course have changed recently due to an influx of non-computer science students with little or no programming experience. Programming problems are now assigned in a simple to learn, easy to write, ...