- Sponsor:
- sigcse
No abstract available.
The trouble with for-loop invariants
In this paper we discuss some of the problems in constructing and utilizing loop invariants for For-loops. Another kind of assertion, the loop post-invariant, is offered as an alternative to the loop invariant in designing, documenting and proving the ...
File processing—a correctness approach
This paper describes an upper-division course in file processing which is intended to satisfy the requirements of both theoretical and applications-oriented curricula. It emphasizes file processing concepts from a software engineering perspective. ...
A phased programming paradigm
Correctness and efficiency are both legitimate concerns in program development. Through an extended example we present a multi-phase paradigm which encourages early algorithms to be abstract and maximally nondeterministic in the spirit of Dijkstra's ...
Requiring CS1 students to write requirements specifications: a rationale, implementation suggestions, and a case study
This paper offers arguments supporting the concept of requiring written requirements specifications for all programming assignments in the first Computer Science course. The term “requirements specifications” is used here to refer to a description of ...
Development and documentation of computer programs in undergraduate computer science programs
Until recently, introductory programming classes in the Department of Computer Science, University of Minnesota, Duluth, concentrated on writing code. Not until the junior or senior year were students required to adhere to basic principles of software ...
The effective use of undergraduates to staff large introductory CS courses
In the past few years many schools have tried to simultaneously achieve the following goals in their introductory CS courses:
Allow more students to enroll
Improve the quality of education
Keep spending at current levels
Everyone has discovered that the ...
Understanding concurrent programming through program animation
Program animation has mainly been developed for sequential programs. Animation of concurrent programs is much more uncommon, mainly because of the important technical problems. This paper presents a project whose objective is to animate any concurrent ...
Robots in the laboratory
A $70 toy robot has been successfully used in Computer Science undergraduate laboratory courses in real-time programming and advanced operating systems to provide students with hands on experience.
A custom designed interface card connects a Radio Shack ...
Computing as a discipline: preliminary report of the ACM task force on the core of computer science
- Peter Denning,
- Douglas E. Comer,
- David Gries,
- Michael C. Mulder,
- Allen B. Tucker,
- A. Joe Turner,
- Paul R. Young
It is ACM's 40th year and an old debate continues. Is computer science a science? An engineering discipline? Or merely a technology, an inventor and purveyor of computing commodities? What is the intellectual substance of the discipline? Is it lasting, ...
Concurrency in the undergraduate curriculum
Concurrency is a major trend in computer science; it can be taught from the point of view of operating systems, programming languages, algorithm design, database design, software engineering, systems engineering, and computer architecture. The panel ...
The case for Modula-2 in CS1 and CS2
During 1984 and 1985 I was part of an ACM Task Force to update the recommended curricula for CSI and CS2, the first two courses in programming methods for computer science majors. Our findings were reported in the communications of the ACM (Koffman, ...
Integrating software engineering into an intermediate programming class
The emphasis on software engineering topics in the newest report on the second computer science class will have considerable impact on computer science education. Teaching issues arising from the incorporation of software engineering topics are ...
An introduction to the parallel distributed processing model of cognition and some examples of how it is changing the teaching of artificial intelligence
Artificial Intelligence programming involves representing knowledge, using paradigms to manipulate the knowledge, and having a learning process modify both the knowledge and the paradigms. One could consider this process as building a model of how one ...
Introducing parallel processing at the undergraduate level
With multiprocessor computers becoming more readily available on college campuses and with the recent development of software tools to aid in the implementation of parallel algorithms, it is time for parallel processing to enter the undergraduate ...
An undergraduate parallel processing laboratory
We discuss possibilities for setting up an undergraduate laboratory for parallel processing and how such a laboratory, based on transputers, can be used in a course on parallel processing.
Program complexity: a tutorial
How does a programmer decide which of two different algorithms to use to solve a problem? This is a particularly difficult question because one finds that often one part of the solution of a problem “dominates” the running time of the solution, i.e. ...
Undergraduate theory of computation: an approach using simulation tools
Theory of computation courses have traditionally been taught at the advanced-undergraduate/graduate level, primarily due to the level of mathematical rigor associated with the topics involved. The topics covered include automata theory, formal languages,...
Algorithmic paradigms: examples in computational geometry
We present a collection of algorithms that solve problems from the realm of computational geometry to illustrate several basic notions in algorithm design and analysis. Computational geometry is a young discipline that has much to offer both as a field ...
Proposed criteria for accreditation of computer information systems programs
A working group, representing ACM, DPMA, and IEEE-CS, was formed to draft a set of guidelines, including criteria, for the accreditation of computer information systems' undergraduate programs. The guidelines and criteria are summarized below.
Faculty: ...
A major in computer applications for small liberal arts colleges
A major in computer applications for small, liberal arts colleges is proposed in this article. The proposed program has characteristics to allow students to engage in a breadth of study, to integrate knowledge from a variety of fields, and to apply what ...
Assembly language courses in transition
Although the CS 3 course of the ACM Curriculum '78 was defined almost a decade ago, the broader perspectives that are desired for that course have not been present in many undergraduate programs. Only recently has the pivotal role of this course begun ...
The role of mathematics in the computer science curriculum
There has been much debate in the past few years about the appropriate mathematics requirements for an undergraduate computer science major. The discussion has focused primarily on two issues: (1) the underlying mathematical content of computer science ...
A student system development diagrammer
New approaches to system development depend heavily on graphical methods for representation of system requirements and the depiction of final design configuration. Among various diagramming methods, Data Flow Diagrams, Entity-Relationship diagrams and ...
Choosing group projects for advanced systems courses
This paper addresses the selection of projects for advanced information systems and software engineering courses and proposes criteria for group projects which gives students genuine real-world experience in the classroom. A curriculum for an advanced ...
Introducing knowledge-based projects in a systems development course
Due to recent advances in knowledge-based systems technology it is suggested that students in a systems development course be given exposure to the concept of designing and implementing knowledge-based systems.
The purpose of this paper is to describe ...
A design tool used to quantitatively evaluate student projects
In the last decade, the field of Computer Science has undergone a revolution. It has started the move from a mysterious art form to a detailed science. The vehicle for this progress has been the rising popularity of the field of Software Engineering. ...
Index Terms
- Proceedings of the nineteenth SIGCSE technical symposium on Computer science education
Recommendations
Acceptance Rates
Year | Submitted | Accepted | Rate |
---|---|---|---|
SIGCSE '19 | 526 | 169 | 32% |
SIGCSE '18 | 459 | 161 | 35% |
SIGCSE '17 | 348 | 105 | 30% |
SIGCSE '16 | 297 | 105 | 35% |
SIGCSE '15 | 289 | 105 | 36% |
SIGCSE '14 | 274 | 108 | 39% |
SIGCSE '13 | 293 | 111 | 38% |
SIGCSE '12 | 289 | 100 | 35% |
SIGCSE '11 | 315 | 107 | 34% |
SIGCSE '02 | 234 | 73 | 31% |
SIGCSE '01 | 225 | 78 | 35% |
SIGCSE '00 | 220 | 78 | 35% |
SIGCSE '99 | 190 | 70 | 37% |
SIGCSE '98 | 201 | 72 | 36% |
SIGCSE '97 | 177 | 75 | 42% |
SIGCSE '96 | 205 | 78 | 38% |
Overall | 4,542 | 1,595 | 35% |