Danielle R. Bernstein, Bill Marion, C. Ricardo, Joy Teague, L. Wittenberg
{"title":"Every seventh year: sabbatical opportunities (abstract)","authors":"Danielle R. Bernstein, Bill Marion, C. Ricardo, Joy Teague, L. Wittenberg","doi":"10.1145/199691.199888","DOIUrl":"https://doi.org/10.1145/199691.199888","url":null,"abstract":"This paper reviews the dominant interpretations of the Hebrew sabbatical and jubilee laws that have been offered by theologians, social scientists and biblical scholars. In general, these authors believe that the laws imply such a massive, uncompensated redistribution of wealth that they could never have been practiced, and may not have been intended as practicable. After reviewing the contents of the laws (summarized in Leviticus 25), this paper offers an alternative interpretation. Drawing on contract theory, the paper argues that the laws would have been workable, would not necessarily require coerced participation, and would have a positive effect on commercial vitality. Possible challenges to this argument are considered and parallels are drawn to modern bankruptcy laws. JEL Codes: D86, P48, Z12.","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133575485","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A microprogram simulator and compiler for an enhanced version of Tanenbaum's MIC-1 machine","authors":"J. Donaldson","doi":"10.1145/199688.199797","DOIUrl":"https://doi.org/10.1145/199688.199797","url":null,"abstract":"One of the objectives of a course in computer organization is to show how the machine language of a computer (with which students are already familiar through an assembly language course) is actually implemented. This is normally accomplished by first gaining familiarity with digital logic (gates, flip-flops, registers, multiplexer, etc.) and then proceeding to design a simple machine. The last stage of this design process is to design the control unit, either by hardwired control or microprogramming. Thus, microprogramming is a central topic in the study of computer organization, tying together the study of digital logic with the implementation of the machine language of a computer. It follows that laboratory experience in microprogramming should be an important part of the computer organization course. In most cases, however, access to microprogrammable hardware is not available. Although some instructors have utilized commercially available microprogrammable processors [1] or actually built microprogrammable hardware for classroom use [2], the most common approach has been to rely on software simulation of hardware at the microprogramming level [3-12]. The simulation approach allows students to carry out a variety of exercises involving the implementation of a conventional machine language. The most popular target architecture for classroom simulators has been the Mic-1 machine described in the Computer Organization text of Tanenbaum [13]. The Mic-1 is a microprogrammable architecture which Tanenbaum uses to implement a simple machine instruction set for a single-accumulator machine called the Mac1.","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116754912","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Software engineering, C++, and Windows","authors":"Martin Osborne","doi":"10.1145/199688.199804","DOIUrl":"https://doi.org/10.1145/199688.199804","url":null,"abstract":"lNTRODUCTfON Our department of computer science has been wrestling with a difficult problem-how to graduate students who are ready to develop software in today's complex and sophisticated programming environments. The department has always prided itself on covering the fundamentals of computer science while preparing students who shine in their fwst programming job. However, in recent years our curriculum did not keep pace with changes in computing-changes from time-shared centralized systems to distributed desktop computers and from character based to graphical user interfaces. The chief factors contributing to this problem were a lack of up-to-date hardware, wide differences in philosophy within the department, lack of interest in teaching certain courses, and an already crowded curriculum. After our most recent accreditation review, we could no longer ignore our shortcomings. While praising the qualifications of our faculty and the fundamental strength of our curriculum, the review lamented the antiquated state of our hardware. For the most part faculty offices and student labs were equipped with dumb terminals and IBM XTs, and the manner in which we imparted the skills of software development reflected this fact. The industry member of the review committee told us informally that he would be reluctant to hire any of our graduates. They lacked software development expertise that he deemed essential. Clearly, we had been neglecting our responsibility to the students. Since then the university has upgraded our hardware. We now have the facilities to teach prevailing software development methods and have reaffirmed our commitment to doing so. With this in mind we have made several minor changes to our curriculum. For instance, students now use X-Windows in a graphics class and Microsoft Access as a prototyping tool in an information systems class. We have also made a major change. We have added a year long sequence on software engineering for juniors and seniors. This paper describes the sequence. Hopefully, others will Permission to co y wfthout fee all or part of this material is t! granted provided t at the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and Its date appear, and notice is given that copying is by permission of the Association of Computing Machtnery. To copy otherwise, or to republish, requires a fQe andors ecific permission. benefit from our experience. (For a discussion of the overall place and importance of software engineering in …","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":" 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115502501","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"TIC-TAC-TOE: introducing expert systems to middle school students","authors":"Robert A. Pilgrim","doi":"10.1145/199688.199853","DOIUrl":"https://doi.org/10.1145/199688.199853","url":null,"abstract":"Machines that play simple games have been a part of the development and promotion of computers for years. Charles Babbage conceived of a machine to play tic-tac-toe in an effort to obtain funding for his Analytical Engine. As part of the Summer Computer Science Workshop, participants design and implement a rule base for an expert system that plays the game of X's and O's (tic-tac-toe). This simple game was selected because most middle school age students are already domain experts. The participant has to select and order six or fewer rules with a seventh catch-all rule, “Take any available position.” The designers debug their own expert systems by playing the game and modifying their rule bases. Once they are satisfied with thier own design, they play against each other's expert systems in a round-robin tournament. The development environment, written in Pascal to run under MS-DOS, displays the current state of the game board and lists the rules with the most recently “fired” rule being highlighted. This program is far from a complete expert system, but it does illustrate a number of principles of expert systems design. Like most expert systems, a reasonable solution to the tic-tac-toe problem can be embodied in a surprisingly small rule base. No more than seven rules are needed to play a perfect game of tic-tac-toe, and the same rule base is valid whether the opponent or the computer makes the first move.","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114857876","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
M. R. Birch, Christopher M. Boroni, Frances W. Goosey, Samuel D. Patton, David K. Poole, Craig M. Pratt, R. J. Ross
{"title":"DYNALAB: a dynamic computer science laboratory infrastructure featuring program animation (abstract)","authors":"M. R. Birch, Christopher M. Boroni, Frances W. Goosey, Samuel D. Patton, David K. Poole, Craig M. Pratt, R. J. Ross","doi":"10.1145/199688.199706","DOIUrl":"https://doi.org/10.1145/199688.199706","url":null,"abstract":"DYNALAB, short for D YNAmic LABomtoTy, is a software system that supports interactive, highly visual, and motivating lecture demonstrations and laboratory experiments in computer science. In its current form— Version 1. O—DYNALAB consists of a virtual computer called the Education Machine (E-machine for short) [Pat89], an E-machine Emulator [Bir90], a Pascal compiler for the E-machine [Go093], an Ada subset compiler for the E-machine [Po094], comprehensive program animators for X-windows [Pra94] and MS-windows [Bor95], and an extensive library of programs. The rest of this paper describes DYNALAB in more detail.","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"123 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124400998","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A data-parallel programming library for education (DAPPLE)","authors":"D. Kotz","doi":"10.1145/199688.199730","DOIUrl":"https://doi.org/10.1145/199688.199730","url":null,"abstract":"In the context of our overall goal to bring the concepts of parallel computing into the undergraduate curriculum, we set out to find a parallel-programming language for student use. To make it accessible to students at all levels, and to be independent of any particular hardware platform, we chose to design our own language, based on a data-parallel model and on C++. The result, DAPPLE, is a C++ class library designed to provide the illusion of a data-parallel programming language on conventional hardware and with conventional compilers. DAPPLE defines Vectors and Matrices as basic classes, with all the usual C++ operators overloaded to provide elementwise arithmetic. In addition, DAPPLE provides typical data-parallel operations like scans, permutations, and reductions. Finally, DAPPLE provides a parallel if-then-else statement to restrict the scope of the above operations to partial vectors or matrices.","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128403409","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Removing implementation details from C++ class declarations","authors":"Mark R. Headington","doi":"10.1145/199688.199704","DOIUrl":"https://doi.org/10.1145/199688.199704","url":null,"abstract":"Data abstraction—a concept introduced at varying places in the CS1/CS2/CS7 sequence—separates the properties of a data type (its values and operations) from the implementation of that type. This separation of specification from implementation is achieved by encapsulating the implementation so that users of the type can neither access nor be influenced by the implementation details. Ideally, therefore, the specification should be implementation-independent. The C++ class mechanism compromises information hiding by requiring the interface to include information—the private part of the class declaration—that is needed only for implementation purposes. This paper describes two techniques for removing details of implementation structure from the C++ class declaration and discusses the advantages and disadvantages of each.","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128638096","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
M. Mulder, G. Davis, J. Gorgone, David L. Feinstein, D. Lidtke
{"title":"A proposed curriculum in information science (abstract)","authors":"M. Mulder, G. Davis, J. Gorgone, David L. Feinstein, D. Lidtke","doi":"10.1145/199691.199890","DOIUrl":"https://doi.org/10.1145/199691.199890","url":null,"abstract":"While the major Computing Sciences professional societies have updated the curriculum in Computer Science on a regular basis, most recently Curriculum ‘91, there has been virtually no attention to curricula in Information Science. Rapid change in the field, particularly in the area of large information systems requires that the professional societies expend the resources to enhance and promote quality programs in Information Science.","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"161 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125946000","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Ronald J. Classen, L. Hughes, Elizabeth Leboffe, W. Smith
{"title":"Data communications in the undergraduate computer science curriculum (abstract)","authors":"Ronald J. Classen, L. Hughes, Elizabeth Leboffe, W. Smith","doi":"10.1145/199691.199895","DOIUrl":"https://doi.org/10.1145/199691.199895","url":null,"abstract":"The Common Object Request Broker Architecture (CORBA) provides a middleware infrastructure that allows applications running on different hardware and operating systems, and developed in different languages to work together seamlessly. CORBA supplies high-level libraries and utilities that hide the details of message passing, making it relatively painless to develop distributed systems. We have used CORBA in two different undergraduate courses, CS1 and an advanced elective entitled Event Driven Programming. In CS1 students are presented with a CORBA based email server and develop a simple email client to communicate with it. In Event Driven Programming students use CORBA to develop client-server and peer to peer applications. We have found that CORBA is an ideal infrastructure for introducing distributed computing at both levels. Students are relieved of the necessity to learn low level communication primitives and can concentrate almost entirely on application design and development issues. This paper provides a brief high-level overview of CORBA and then discusses how we have used CORBA in our courses. We also include analysis of some preliminary data analysis on problems students encountered while developing CORBA based applications.","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121057023","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Scott Grissom, Thomas L. Naps, R. Ross, Dalton Hunkins, S. Rodger, D. Schweitzer
{"title":"Using visual demonstrations to teach computer science (abstract)","authors":"Scott Grissom, Thomas L. Naps, R. Ross, Dalton Hunkins, S. Rodger, D. Schweitzer","doi":"10.1145/199688.199885","DOIUrl":"https://doi.org/10.1145/199688.199885","url":null,"abstract":"Visual demonstrations and interactive visualization tools can be used in the classroom to convey complex ideas. This is especially true in computer science. For example, the short film Sorting Out Sorting and several algorithm animation systems have received a great deal of acclaim. However, this powerful educational tool is not used as often as it should. One reason maybe that existing demonstrations are not widely known or available within the community. Another problem is the lack of tools to create custom demonstrations. The objective of this tutorial is to encourage the use of visual demonstrations in the classroom for teaching computer science. This will be accomplished in two ways: 1) by showing examples of visual demonstrations currently used in classrooms, and 2) by providing access to demonstrations and visualization tools via Internet.","PeriodicalId":232532,"journal":{"name":"Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129279849","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}