Next: Economics and Business (ECB)
Up: Courses of Instruction
Previous: Classical Studies (CLS)
Computer Science (CSC)
Tony deLaubenfels (chair), Leon Tabak
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,
144,
151,
213,
218,
and at least three 300-level courses, excluding Internships, Individual Projects, and Group Projects. The faculty strongly recommends additional study of mathematics and statistics, to include INT 201 (Statistical Methods) 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: MAT 141 and a minimum of six course credits in Computer Science which
include
CSC 140,
144,
151,
213,
218,
and at least one 300-level course, excluding Internships, Individual Projects, and Group Projects.
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
Principal challenges in computer science and computer scientists' methods for solving problems. Structure of object-oriented programs, syntax of a programming language, and practice writing programs.
144. Software Architecture
Disciplined design, coding, and testing of substantial programs. Specification of relationships among components of a program using composition and inheritance. Discernment of a client's requirements. Evaluation of the communication between a computer program and its human user. Prerequisite: CSC 140.
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)
213. Algorithms and Data Structures
Measurements of complexity. Comparison of methods for searching and sorting data. Alternative ways of organizing data in lists, tables, and trees. Prerequisites: CSC 140, 144, 151, and MAT 141.
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. Electronics
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 213. Alternate years. TABAK
314. Data Management Systems
Concepts and structures necessary to design and implement a database
management system. Relational and object database models.
Prerequisite: CSC 213. Alternate years. deLAUBENFELS
315. Programming Language
Concepts
Principles of design and implementation of
high-level programming languages. Language definition structure,
run-time behavior. Alternative programming paradigms, including
functional languages. Programming examples from selected languages.
Prerequisites: CSC 213 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 213, 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)
|
|
 |
|
 |
|
600 First Street West, Mt. Vernon, Iowa, 52314 |
©2003 Cornell College; All Rights Reserved |
|
 |
|
 |
|
|