next up previous contents index
Next: Economics and Business (ECB) Up: Courses of Instruction Previous: Classical Studies (CLS)


Computer Science (CSC)

Tony deLaubenfels, Leon Tabak (chair)

The technology of computing has developed with unprecedented speed and offers the prospect of continued rapid advance. Few technologies have so quickly become so pervasive. Few have so profoundly changed science, business and industry, and government. Some understanding of the potential and limitations of computing is essential to anyone who wishes to understand modern society.

Design, experiment, and analysis: these skills make the computer scientist part engineer, part scientist, and part mathematician. The student of computer science learns how to effectively communicate with teammates and clients to define problems and their solutions. Students learn how to divide a complex problem into pieces of manageable size, to organize and relate the pieces of information that describe the problem, and to order the steps of the solution. The study of computer science serves to increase a student's awareness of the necessity of constructing a hierarchy of abstractions as a means of building and understanding complex machines, the designer's need to give balanced consideration to competing goals, e.g., minimizing cost while maximizing computational speed, and the relationship between software and hardware.

Major: A minimum of nine course credits, including eight in Computer Science; also MAT 141 (Calculus I). The courses in Computer Science must include CSC 140, 151, 216, 218, and at least four 300-level courses, excluding Internships, Individual Projects, and Group Projects. The faculty strongly recommends additional study of mathematics and statistics, to include INT 211 (Fundamentals of Statistics) and MAT 221 (Linear Algebra), for those students who intend to pursue software engineering careers or continue their study of computer science at the graduate level.

Minor: A minimum of six course credits in Computer Science which include CSC 140, 151, 216, 218, and at least two 300-level courses, excluding Internships, Individual Projects, and Group Projects; also MAT 141.

131. Computing Practice and Perspectives
Discussions of responsible uses of software. Readings about the expanding variety of applications for computers, the technology's complexity, the industry's unique rate of innovation, and projections of the likely future of computing. Experience with a variety of software tools, with an emphasis on group work and learning how to learn software. Experience locating, retrieving, and publishing information on the World Wide Web.

140. Foundations of Computer Science
Theory and practice of computing. Problem-solving methods. Program design, coding, debugging, testing, and documentation using an object-oriented language. Evolution of computer hardware and software  technology.

151. Discrete Mathematics for Computer Science
Logic, algorithms, combinatorics, trees, graphs, and other topics from discrete mathematics used in computer science. Prerequisite: MAT 112 or three and one-half years of high school mathematics. (Mathematics)

216. Software Design
Disciplined approach to designing, testing, and coding of programs written in an object-oriented language; composition and inheritance of classes. Searching and sorting algorithms, and their analysis. Prerequisites: MAT 141 and CSC 140 and 151.

218. Computer Organization
A view of the layers in the design of modern computers that begins at the level of individual logic gates, and progresses upward through elementary circuits, microprogramming, and assembly languages. An examination of costs and advantages gained by shifting functions from hardware to software, or vice versa. Prerequisites: CSC 140 and 151. TABAK

255 through 260. Topics in Computer Science
A focus on some part of the social context in which computer scientists work: professional ethics, leadership, and creativity in the technical professions; the software engineer's opportunities and responsibilities for helping to solve pressing social problems; or how innovations in the technology of computing are changing the way ordinary people live, work, and learn.

280/380. Internship in Computer Science
Participation in a computer-related area such as working with a business, government, or other appropriate institution under the direction of the organization's leaders and a faculty supervisor. Prerequisites: junior or senior standing; at least two 300-level Computer Science courses; approval by the faculty supervisor, the participating institution, and the Department. The maximum credit that may be earned in a Computer Science internship is two term credits. See Courses 280/380. (CR)

290/390. Individual Project: see Courses 290/390.

302. Electronic Instrumentation for Scientific Research
Same course as PHY 302 (see for course description). Prerequisites: PHY 102 or 112 and CSC 140 or knowledge of a programming language. Alternate years. (Laboratory Science) LICHTY

306. Numerical Analysis
Same course as MAT 306 (see for course description). Prerequisites: MAT 143, 221, and CSC 140 or equivalent. Alternate years. deLAUBENFELS

311. Systems Software
Process scheduling and synchronization, interprocess communication, allocation of memory and disk space. Creation and use of software, libraries, tools and methods for the production of efficient, reliable software. Prerequisite: CSC 216. Alternate years. TABAK

313. Data Structures
Data structures (including arrays, strings, stacks, queues, lists, and trees) and programming techniques, emphasizing the development and analysis of effective computer implementations. Prerequisites: CSC 216 and 218. Alternate years. deLAUBENFELS or TABAK

314. Data Management Systems
Concepts and structures necessary to design and implement a database management system. Relational and object database models. Prerequisite: CSC 216. Alternate years. deLAUBENFELS

315. Programming Language Concepts
Principles of design and implementation of high-level programming lan-guages. Language definition structure, run-time behavior. Alternative programming paradigms, including functional languages. Programming examples from selected languages. Prerequisites: CSC 216 and 218. Alternate years. deLAUBENFELS or TABAK

321. Computer Graphics
Introduction to the concepts and algorithms of computer graphics. Architecture of display systems, 2D and 3D geometry and algorithms, viewing transformations, interactive techniques, color concepts. Prerequisites: CSC 216, 218, and MAT 221. Alternate years. TABAK

355 through 360. Advanced Topics in Computer Science
A study in greater depth of a topic covered in the core curriculum, an introduction to an area of specialization within computer science, or readings in the research literature. Intended to broaden students' perspectives on the range of opportunities that will be available to them in professional practice and graduate-level study. Recent topics have included Algorithms, Parallel Programming, Artificial Intelligence, Computer Networks, and Models of Computation. Prerequisites: CSC 140 and 151.

511. Extended Research in Computer Science (1/4)
Reading coupled with research on a specialized topic. This adjunct course must be taken over four successive terms. Prerequisites: departmental gpa of 3.0 or higher, prior completion of one course in the Department at or above the 200 level, and permission of instructor. (CR)

next up previous contents index
Next: Economics and Business (ECB) Up: Courses of Instruction Previous: Classical Studies (CLS)

 
Last Update: 20 September 2000
Site Maintainer: registrar@cornellcollege.edu
Athletics Library Catalogue Cornell College Home Page About Cornell Admissions Academics Alumni Campus Life Offices News Home Search Site Map Directory