Documentation standards in the undergraduate computer science curriculum (original) (raw)

Computer Science Curriculum Guidelines

Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1

ACM/IEEE curriculum guidelines for computer science, such as CS2013 or the forthcoming CS2023, provide well-researched and detailed guidance about the content and skills that make up an undergraduate computer science (CS) program. Liberal arts CS programs often struggle to apply these guidelines within their institutional context and goals. Historically, this has been addressed through the development of model CS curricula tailored for the liberal arts context. We take a different position: that no single model curriculum can apply across the wide range of liberal arts institutions. Instead, we argue that liberal arts CS educators need best practices for using guidelines such as CS2023 to inform curriculum design. These practices must acknowledge the opportunities and priorities of a liberal arts philosophy as well as a program's mission and identity. This paper reviews the context and motivation behind computing in the liberal arts. We also review the history of liberal arts CS educators and ACM/IEEE curriculum guidelines. We present data and trends about liberal arts computing programs, discussing how this informs curriculum design. Finally, we propose a process that guides programs to work with curriculum guidelines through the lens of institutional and program missions and identities, goals, and situational factors. CCS CONCEPTS • Social and professional topics → Model curricula; Computing education programs.

A Close Reading and Analysis of the New York State Computer Science Learning Standards

International Journal on Integrating Technology in Education

In this paper, we perform a close reading of the New York State Computer Science/Digital Fluency Learning Standards document to determine its coherence and areas of incoherence and disconnection. This investigation, which utilizes content/discourse and textual analysis tools and methods from the tidytext tools developed for the R programming language, sought to understand the structure of the document itself, as well as the types and patterns of the language used in this document by analyzing word frequencies and networks of terms (engrams). The findings indicate a coherence across document in terms of its articulate of key ideas and principles of computer science and digital fluency. The findings describe an incoherence/disconnection between that the language used to articulate high level goals and objectives articulated in the executive summary of the standards document, such as interdisciplinarity, addressing the learning needs of all students, and equity of access, is mostly abs...

Improving the Requirements Inspection Abilities of Computer Science Students through Analysis of their Reading and Learning Styles

2017 ASEE Annual Conference & Exposition Proceedings

I am a research-oriented applications developer with more than ten years of professional programming experience primarily in the area of cognitive and vision research. I have been working at the Center for Visual and Cognitive Neuroscience at North Dakota State University since 2005. I have expertise in mathematics, software development, and hardware and software, trouble-shooting. I have had experience with computer programming from the time when FORTRAN was popular as a language and personal computers were just being introduced. As an undergraduate, programming was a tool to augment my interests in biology and psychology. In graduate school, I had the opportunity to hone my skills, and formalize my computer science and neuroscience education. Since then, I have had experience implementing experiments involving virtual immersion, EEG recording, gaze tracking, image processing, statistical analyses, and various types of computer modelling.

A 2007 Model Curriculum for a Liberal Arts Degree in Computer Science

2007

Abstract In 1986, guidelines for a computer science major degree program offered in the context of the liberal arts were developed by the Liberal Arts Computer Science Consortium (LACS)[4]. In 1996 the same group offered a revised curriculum reflecting advances in the discipline, the accompanying technology, and teaching pedagogy [6]. In each case, the LACS models represented, at least in part, a response to the recommendations of the ACM/IEEE-CS [1][2].

Undergraduate software engineering: Addressing the needs of professional software development

In the fall semester of 1996 RIT (Rochester Institute of Technology) launched the first undergraduate software engineering program in the United States. 9,10 The culmination of five years of planning, development, and review, the program was designed from the outset to prepare graduates for professional positions in commercial and industrial software development. From an initial class of 15, the ABET-accredited program has grown steadily. Today the student body numbers more than 400 undergraduates. Coop students and graduates are employed in organizations large and small, including Microsoft, Google, Apple, and United Technologies, as well as a variety of government agencies. Housed in a separate Department of Software Engineering at RIT, the program has the independence and flexibility necessary to ensure its integrity as it evolves. Its primary focus is on preparing professional, practicing software engineers. This is illustrated most directly by the required year of cooperative education following two years of foundational coursework. Students alternate terms of formal study with paid professional experience; at the end of the five-year program, they have both solid academic preparation and significant practical experience. These graduates are in high demand, as they are prepared to define, design, develop, and deliver quality software systems. The question remains, of course: Why a specialized software engineering degree? After all, the majority of new industrial hires come from traditional programs in computer science and engineering. The section that follows provides our rationale for striking out in a new direction-our strong belief that there is a need in industry for entry-level engineers of software, and our conviction that we could provide an educational experience that better prepared students for careers in the software field. Then the article looks at the differences between the RIT program and those typical of undergraduate computer science. This leads, in turn, to a presentation of our pedagogical approach and the state of software engineering in computer science curricula. The final sections discuss the RIT program's relationship with industry and the preparation of coop students and graduates. MOTIVATION In the late 1980s, one of this article's authors (Lutz) took a two-year industrial leave from RIT: first at GCA/Tropel, a manufacturer of optical metrology products; and later at Eastman Kodak, where he led teams developing embedded systems and application-level software. Part of his responsibilities included interviewing, hiring, and mentoring new college graduates, and what he observed during this time was unsettling. By and large these graduates had a solid background in basic computing theory and technology. Many had taken courses in algorithm analysis and theory of computation, and most had some exposure to operating systems, programming language concepts, artificial intelligence, graphics, and compiler design. What they lacked, however, was the background necessary to be effective when working on large, complex, industrial-quality systems.

Curriculum 2001 draft found lacking in programming languages

Sigplan Notices, 2000

In March, 2000, the ACM-IEEE CS Curriculum 2001 committee released a "strawman" version of their proposed curricular recommendations. Those recommendations give short shrift to programming languages compared to previous curricula, and the material on programming language is also significantly reduced from the Programming Languages Knowledge Area Fetus Group's recommendations. This document reports on the recommendations of the focus group and the curriculum committee's proposals on programming languages. We urge those interested in undergraduate computing curricula to write to us and the full Curriculum 2001 Committee to present their views on what programming languages material should be required of all undergraduates. The curriculum report will be finalized by the end of the year, so prompt action is necessary to have an impact on the process.