Computer Science Requirements
Communicating Plus: Computer Science. Students completing a Computer Science
major will develop skills in the four Communicating Plus skills areas—written communication, oral communication, critical thinking, and problem-solving. The introductory sequence of courses helps students develop and improve their abilities to communicate both with the computer and with each other. As students progress through the curriculum, they continue to develop communication skills and learn to solve more complex problems as their understanding of the computer deepens. They also gain experience in thinking critically about technology and its applications and in communicating with others about the workings of technology and its role in human affairs. The senior capstone experience requires groups of students to work together to learn something in Computer Science new to them. The group organizes presentations to teach the new concept to others in the seminar, and each individual prepares an expository paper addressing the same material. Thus, problem-solving and communication are at the heart of this capstone experience.
Requirements for a major in computer science: Thirty credits in Computer Science
courses numbered above 101, including 211-212, 248, 313, 336, 452, and 500. Only 248 may be counted toward both the computer science major and the mathematics
major.
Requirements for a minor in computer science: Eighteen credits plus a capstone experience. The 18 credits will include Computer Science 211, 248; and two of 313, 336 and 452. The capstone experience can be a course in any department, an independent study course or an internship. It must be approved by an adviser in the department, and the student will successfully present a talk based on the capstone experience to the senior seminar.
Requirements for a teaching minor in computer science: Twenty-two credits including Computer Science 211-212, 313, 336 and 452; and Educational Studies 540.
All majors and minors are required to take Computer Science 248, which has Mathematics 123, 130 or 133 as a prerequisite.
With the consent of the department, independent study or departmental studies in any department may be counted toward the major or minor.
The department conducts a colloquium series. These meetings are open to all students; majors are expected to attend.
All prerequisites for computer science courses must be passed with a grade of C- or better.
Courses
101. Introduction to Programming (Staff)
Four credits. Development and implementation of algorithms; structured program design; array manipulation; searching and sorting algorithms; sequential files.
207. Digital Electronics (Staff)
Four credits. Designed with computer science students in mind, this
course is entirely concerned with the utilization of small scale
integrated circuits for the transmission and processing of digital
information. No background in circuit theory is assumed, and the
linear aspects of circuits will be treated in a "black box" manner.
Two lectures and two laboratories per week. Prerequisite:
At least sophomore standing.
211-212. Computer Science I - II (Staff)
Four credits. Overview of computer science; development and implementation of elementary data structures; linked lists, queues, stacks, trees; data abstraction; searching and sorting algorithms; algorithm complexity; object oriented programming; software development. An extra credit is available in one of the semesters for those who compete in a national programming contest. Prerequisite for Computer Science 211: Computer Science 101, or its equivalent. For Computer Science 212: Computer Science 211, or its equivalent.
248.
Discrete Mathematics (Staff)
Four credits. Topics chosen from set theory, combinatorics, recurrence relations, graph theory, Boolean algebra, applications. Same as Mathematics 248. Familiarity with a programming language is desirable. Prerequisite: Mathematics 123, 130, or 133, or the consent of the department.
251. Systems Analysis and Design (Staff)
Four credits. Offered in unspecified rotation with Computer Science 353, 371, 421, 436.
Methods used in analyzing and designing information systems. Functional decomposition, data dictionary, process specification, structure chart, coupling, cohesion, transform analysis, transaction analysis, objected-oriented techniques. Prerequisites: Computer Science 148, 211.
Programming
Languages (Staff)
Two credits. The programming languages courses will concentrate on
those features of the language that differ from C. With permission
of the instructor, programming languages courses can be repeated for
credit at the 300 and 400 levels. Prerequisite:
Computer Science 211.
281. Visual BASIC
284. Java Prerequisites: Computer
Science 212
285. FORTRAN
286. Python
287. LISP
288. LOGO
300. Departmental Studies (Staff)
One to four credits. Special subjects in computer science not covered by regular courses. Topics are announced as courses are offered. This course may be repeated for credit when topics change. Prerequisite: Consent of the department.
313.
Computer Organization (Staff)
Four credits. Offered in 2007-08. An introduction to machine organization, machine language and assembly language programming. Prerequisites: Computer Science 211 and 248 or the consent of the department.
336. Data Structures
and Algorithms (Staff)
Four credits. Offered in 2008-09. Study of algorithms and their complexity; advanced data structures such as trees, graphs, hash tables; recursion; searching and sorting algorithms; NP-completeness. Prerequisites: Computer Science 212 and 248.
353. File and Data Base Systems (Staff)
Four credits. Offered
in unspecified rotation with Computer Science 251, 371, 421, 436. Techniques
for organizing, storing, accessing, and processing data, ranging from
simple file handling to the use of complete data base management systems.
Prerequisites: Computer Science 211 and 248.
371.
Artificial Intelligence (Staff)
Four credits. Offered in unspecified rotation
with Computer Science 251, 353, 421, 436. An introduction to the field
of artificial intelligence, including discussion of such topics as
game playing, automated reasoning, expert systems, and natural language.
Prerequisites: Computer Science 211 and 248.
421. Principles of Programming Languages (Staff)
Four credits.
Offered in unspecified rotation with Computer Science 251, 353, 371,
436. Principles of design and implementation of contemporary programming
languages. Language syntax (lexical properties, BNF, and parsing),
processors (compilers and interpreters), representations (data structures,
control structures, and binding), and styles (procedural, functional
programming, logic programming, modular programming). Prerequisites:
Computer Science 336 or consent of the department.
436. Algorithms (Staff)
Four credits. Offered in unspecified rotation with
Computer Science 251, 353, 371, 421. Further study of algorithms with
emphasis on creation, understanding, and analysis of algorithms, rather
than on their implementation. Prerequisite:
Computer Science 336.
452. Operating Systems (Staff)
Four credits. Offered
in 2007-8. An introduction to operating systems, emphasizing the interrelationships
between the subsystems that manage system resources and the cooperative
interactions between the operating system and hardware. Prerequisite:
Computer Science 313.
500. Senior Seminar (Staff)
One-year course. Two credits. Selected topics presented by students. Same as Mathematics 500. Required of senior majors; open to others by consent of the department. Prerequisite: senior standing and one course in the department at the 300 level or higher, or consent of the department.
540. Independent Study (Staff)
One to four credits. Supervised investigation of problems in computer
science of special interest to the student. Prerequisites:
Junior or senior standing, 12 credits toward the major and consent
of the department.
550.
Independent Study: Internship (Staff)
One to five credits. Supervised field work, normally involving part-time
employment as a computer programmer. The employment must be arranged
by the student. A paper or presentation is required. Prerequisites:
Two courses in the department at the 300 level or higher, or consent
of the department.

|