|
 |
| Computer Science (CSci) |
 |
Engel,
Grant, Hu, Kim, Liu, Mahalko, Marsh,
O’Neil (Chair), Reza, Stokke and Wiggen
The underlying goal of the Department of Computer
Science is to provide up-to-date, quality instruction
in its undergraduate and graduate programs. In
support of this goal, a curriculum has been developed
which encourages a formal, abstract, theoretical
approach to the study of computer science while
providing students with experience on state-of-the-art
equipment. The degree programs are designed to
provide a background of professional education
for careers in business, science, government,
and industry, and to furnish a strong foundation
for graduate study in computer science.
The department offers a Bachelor of Science in
Computer Science through the John D. Odegard School
of Aerospace Sciences and a Bachelor of Arts with
a Major in Computer Science through the College
of Arts and Sciences. A minor in computer science
is also available.
The B.S. program provides the strongest mathematical
and scientific background. It is recommended for
students who intend to pursue graduate studies
or to seek employment involving technical or scientific
applications of computing. The B.S. degree is accredited
by the Computing Accreditation Commission of ABET,
111 Market Place, Suite 1050, Baltimore, MD 21202-4012,
telephone: 410-347-7700.
The B.A. program offers more flexibility with fewer
requirements relating to science and mathematics,
but with additional requirements for courses in
the humanities. This degree program is recommended
for students pursuing a broader-based liberal arts
education.
Optional specializations in Network and Operating
Systems Analysis, Software Engineering, Game Development
and Computer Animation, and Information Technology
are available in conjunction with the B.S. degree
programs.
In addition to the majors and minors, several courses
are offered to provide basic knowledge of computer
technology and programming for students wishing
to use the computer as a tool in other disciplines.
John D. Odegard School of Aerospace Sciences |
B.S. IN COMPUTER SCIENCE |
| Required 125 credits (36 of which must
be numbered 300 or above, and 60 of which
must be from a 4-year institution) including: |
| |
I. |
General Education Requirements (see University
GER listing). |
| |
II. |
Requirements of the Odegard School of Aerospace
Sciences. See College listing. |
| |
III. |
Courses from computer science as follows: |
| |
|
CSci 160 |
Computer Science I |
(4)
|
| |
|
CSci 161 |
Computer Science II |
(4) |
| |
|
CSci 242 |
Algorithms and Data Structures |
(3) |
| |
|
CSci 250 |
Assembly Language Programming |
(4) |
| |
|
CSci 289 |
Social Implications of Computer Technology |
(3) |
| |
|
CSci363 |
User
Interface Design |
(3) |
| |
|
CSci 365 |
Organization of Programming Languages |
(3) |
| |
|
CSci 370 |
Computer Architecture |
(3) |
| |
|
CSci 435 |
Formal Languages and Automata |
(3) |
| |
|
CSci 451 |
Operating Systems I |
(3) |
| |
|
CSci Electives* |
|
(12) |
| |
|
* |
All Computer Science electives must be
at or above the 200 level. A combined
total of at most 6 credits from Csci
260, 297, 397 or 494 may be applied
toward these electives. |
|
| |
IV. |
Courses from other departments as follows: |
| |
|
Comm 110 |
Fundamentals of Public Speaking |
(3)
|
| |
|
EE 201 |
Introduction to Digital Electronics |
(2) |
| |
|
EE 202 |
Electrical Engineering Laboratory |
(1) |
| |
|
Math 208 |
Discrete Mathematics |
(3) |
| |
|
Math 165, 166 |
Calculus I and II |
(8) |
| |
|
Approved math elective |
(3) |
| |
|
Approved probability/statistics elective |
(3) |
| |
|
Approved 2-semester laboratory science
sequence |
(8) |
| |
|
2 approved courses in science or quantitative
methods |
(6-8) |
College of Arts and Sciences
|
B.A. WITH MAJOR IN COMPUTER SCIENCE |
| Required 125 hours (36 of which must be
numbered 300 or above, and 60 of which must
be from a 4-year institution) including: |
| |
I. |
General Education Requirements (see University
GER listing). |
| |
II. |
College of Arts and Sciences Requirements.
See College listing. |
| |
III. |
Courses from Computer Science as follows: |
| |
|
CSci 160 |
Computer Science I |
(4)
|
| |
|
CSci 161 |
Computer Science II |
(4) |
| |
|
CSci 242 |
Algorithms and Data Structures |
(3) |
| |
|
CSci 250 |
Assembly Language Programming |
(4) |
| |
|
CSci 365 |
Organiztion of Programming Languages |
(3) |
| |
|
CSci 370 |
Computer Architecture |
(3) |
| |
|
CSci 435 |
Formal Languages and Automata |
(3) |
| |
|
CSci
451 |
Operating
Systems I |
(3) |
| |
|
CSci
465 |
Principles
of Translation |
(3) |
| |
|
CSci Electives* |
(12) |
| |
|
* |
Electives
may be selected from CSci 260 (at most
3 hours), CSci 289, CSci 397 (at most
3 hours) and any other Computer Science
courses numbered
300 or above. |
|
| |
IV. |
Courses from other departments as follows: |
| |
|
Level IV proficiency in a language other
than English |
| |
|
A minor or a second major |
| |
|
EE 201 |
Introduction to Digital Electronics |
(2) |
| |
|
EE 202 |
Electrical Engineering Laboratory |
(1) |
| |
|
Math 208 |
Discrete Mathematics |
(3) |
| |
|
Phil
350 |
Symbolic
Logic |
(3) |
| |
|
Approved probability/statistics elective |
(3) |
MINOR IN COMPUTER SCIENCE |
| Courses from Computer Science as follows: |
| |
|
CSci 160 |
Computer Science I |
(4) |
| |
|
CSci 161 |
Computer Science II |
(4) |
| |
|
CSci 250 |
Assembly Language Programming |
(4) |
| |
|
CSci electives* |
(9) |
| |
|
* |
All
9 credits hours of Computer Science
electives must be 200 level or above. |
|
OPTIONAL
SPECIALIZATIONS
A
student’s coursework in either the B.S.
program, the B.A. program, or the Minor program
above may be designed to complete one or more
of the following three specializations. Each
specialization completed will be noted on the
student’s academic record.
| |
I. |
Network and Operatin Systems
Analysis |
|
| |
|
Coursework must Include: |
|
| |
|
CSci 327 |
Data Communications |
(3) |
| |
|
CSci 370 |
Computer Architecture |
(3) |
| |
|
CSci 389 |
Computer Security |
(3) |
| |
|
CSci 451 |
Operating Systems I |
(3) |
| |
|
and two courses from the following list: |
|
| |
|
CSci 260 |
Advanced Programming Languages: C++ or
PERL |
(3) |
| |
|
CSci 427 |
Advanced Data Commujnications |
(3) |
| |
|
CSci 452 |
Operatin Systems II |
(3) |
| |
|
CSci 551 |
Distributed Operating Systems |
(3) |
| |
|
CSci 555 |
Computer Networks |
(3) |
| |
II. |
Softwar Engineering |
|
| |
|
Coursework must Include: |
|
| |
|
CSci 242 |
Algorithms and Data Structures |
(3) |
| |
|
CSci 365 |
Organization of Programming Languages |
(3) |
| |
|
CSci 463 |
Software Engineering |
(3) |
| |
|
and three from the following list: |
|
| |
|
CSci 260 |
Advanced Programming Languages: C++ |
(3) |
| |
|
CSci 363 |
User Interface Design |
(3) |
| |
|
CSci 465 |
Principles of Translation |
(3) |
| |
|
CSci 562 |
Formal Specification Methods |
(3) |
| |
|
CSci 565 |
Avanced Software Engineering |
(3) |
| |
III. |
Information Technology |
|
| |
|
Coursework must include: |
|
| |
|
CSci 351 |
File Structures |
(3) |
| |
|
CSci 389 |
Computer and Network Security |
(3) |
| |
|
CSci 455 |
Database Management Systems |
(3) |
| |
|
CSci 457 |
E-Commerce Systems |
(3) |
| |
|
and two courses from the following list: |
|
| |
|
CSci 260 |
Advanced Programming Languages: PERL |
(3) |
| |
|
CSci 237 |
Data Communications |
(3) |
| |
|
CSci 363 |
User Interface Design |
(3) |
| |
|
CSci 399 |
Handheld Computing |
(3) |
| |
|
CSci 513 |
Advanced Datatbase Systems |
(3) |
| |
A
student’s coursework
in the B.S. program may be designed to
complete the following specialization.
This specialization will be noted on the
student’s academic record. |
| |
IV. |
Game Development and Computer Animation |
|
| |
|
Elective coursework must include: |
|
| |
|
CSci 384 |
Artificial Intelligence |
(3) |
| |
|
CSci 463 |
Software Engineering |
(3) |
| |
|
CSci 446 |
Computer Graphics I |
(3) |
| |
|
CSci 448 |
Computer Graphics II |
(3) |
| |
|
Art 110 |
Introduction to the Visual Arts |
(3) |
| |
|
Art 112 |
Basic Design |
(3) |
| |
|
Approved 2-semester laboratory science
sequence must include: |
|
| |
|
Phys 251 |
Univeristy Physics I |
(4) |
| |
|
Phys 252 |
University Physics II |
(4) |
| |
|
Approved math elective must include: |
|
| |
|
Math 327 |
Linear Algebra |
(3) |
Courses
101. Introduction to Computers. 3 credits.
Recommended corequisite: CSci 101T. An overview
of the fundamental concepts and applications
of computer science. Topics include data storage,
hardware, operating systems, and programming
principles. F,S,SS
101T. Software Applications Tutorial. 1
credit. Recommended corequisite: CSci 101. An
introductory tutorial course to complement CSci
101. Activities will include hands-on experience
with operating systems and application software
(including word processors, spreadsheets, and
databases). S/U grading only. F,S,SS
120. Computer Programming I. 4 credits.
An introduction to computer programming in a
high-level language, with emphasis on problem
solving and logical thinking. Students learn
to design, implement, test, and debug programs
for small-scale problems using elementary data
types and control structures. Includes laboratory.
F,S,SS
160. Computer Science I. 4 credits. An introduction
to computer science, with problem solving, algorithm
development, and structured programming in a
high-level language. Emphasis on learning how
to design, code, debug, and document programs,
using techniques of good programming style. Includes
laboratory. F,S,SS
161. Computer Science II. 4 credits. Prerequisites:
CSci 160 and either Math 103 or Math 107. Concurrent
enrollment in Math 208 is recommended. A broadening
of foundations for computer science with advanced
concepts in computer programming. Includes an
introduction to data structures, analysis of
algorithms, and the theory of computation. Includes
laboratory. F,S,SS
170. Computer Programming II. 4 credits.
Prerequisite: CSci 120. Advanced techniques in
computer programming using a high-level language.
Topics include the use of recursion, pointers,
and fundamental data structures in developing
small to medium-scale programs. Includes laboratory.
S
242. Algorithms and Data Structures. 3 credits.
Prerequisites: CSci 161 and Math 208. Object-oriented
implementations of complex data structures including
lists, sets, trees, and graphs. Time and space
analysis and classification of algorithms using
upper bounds (big Oh), lower bounds (big Omega),
and exact bounds (big Theta). Techniques for
analysis of recursive algorithms including use
of the “Master Theorem” for divide-and-conquer
recurrences. S
250. Assembly Language Programming. 4 credits.
Prerequisite: CSci 160 or knowledge of one high-level
language. Computer structure, machine representation
of numbers and characters, instruction codes
and assembly systems. Includes laboratory. F
260. Advanced Programming Languages. 1-3
credits. Prerequisite: CSci 161 or consent of
instructor. Programming in a specific high-level
language for students who are already proficient
at programming in another high-level language.
Course may be repeated for different languages.
A student may not receive credit for both CSci
260 and a 100-level programming course in the
same language. F,S
289. Social Implications of Computer Technology. 3 credits. Prerequisite: CSci 120 or 160. An
introduction to the effects of computer technology
on society and individuals and to ethical problems
faced by computer professionals. Topics covered
include privacy, the nature of work, centralization
versus decentralization and the need for human
factors analysis in the development of a new
computer system. S
297. Experiential Learning. 1-3 credits, repeatable
to 6. Prerequisite: CSci 242. A practical experience
in which students offer their proficiency in
computing as a resource or service for others.
The experience may involve software development,
software consulting and assistance, system administration,
or instruction. S/U grading only. F,S, SS
327. Data Communications. 3 credits. Prerequisites:
CSci 250 and Math 208. An introduction to the
concepts of data transmission, communication
hardware and protocols, communication software
and the design, performance and management of
computer networks. F
351. Introduction to File Processing. 3
credits. Prerequisite: CSci 242. Techniques of
using mass storage devices. Sequential, random
and key-accessed files. B-trees and inverted
file structures. S/2
363. User Interface Design. 3 credits. Prerequisite:
CSci 161. A study of the design and implementation
of user interfaces for software applications.
Students will apply principles of interface design
to build applications using a toolkit of graphical
interface components. Required coursework includes
a team project. F
365. Organization of Programming Languages.
3 credits. Prerequisite: CSci 242 & 250.
Compile and run time requirements of programming
languages, parameter passing and value binding
techniques. Vector and stack processing. S
370. Computer Architecture. 3 credits. Prerequisite:
CSci 250, EE 201, 202. Introduction to hardware
methodologies and software extensions to hardware
in computers. Some topics on hardware and software
selection will be discussed. S
384. Artificial Intelligence. 3 credits.
Prerequisite: CSci 242. A survey of the applications
and techniques of artificial intelligence. Topics
include problem solving paradigms, tree searching,
rule-based systems, theorem proving, knowledge
representation, natural language processing,
image processing, and computer learning. S
389. Computer and Network Security. 3 credits.
Prerequisite: CSci 161. This course introduces
techniques for achieving security in multi-user
standalone computer systems and distributed computer
systems. Coverage includes host-based security
topics (cryptography, instrusion detection, secure
operating systems), network-based security topics
(authentication and identification schemes, denial-of-service
attacks, worms, firewalls), risk assessment and
security policies. S
397. Cooperative Education. 1-3 credits
repeatable to 6. Prerequisite: 15 completed credits
in CSci including CSci 363. A practical work
experience with an employer closely associated
with the student’s academic area. Arranged
by mutual agreement among student, department,
and employer. S-U grading only. F,S,SS
399. Topics in Computer Science. 1-3 credits,
repeatable to 12. Prerequisite: Consent of instructor.
Selected topics in Computer Science which allow
students to study specialized subjects. F,S
427. Advanced Data Communications. 3 credits.
Prerequisite: CSci 327. Analysis of existing
and future data communications technologies and
protocols, including the modeling of realistic
networked environments and the analysis of their
performance. S/2
435. Formal Languages and Automata. 3 credits.
Prerequisite: CSci 242. An introduction to the
Chomsky formal language hierarchy and the automata
which correspond to each of the language classes.
F
445. Mathematical Modeling and Simulation.
3 credits. Prerequisites: CSci 161 or 170, Math
166 and a statistics course. A study of various
mathematical applications for digital computers,
including the modeling, simulation and interpretation
of the solution of complex systems. S/2
446. Computer Graphics I. 3 credits. Prerequisites:
CSci 242, CSci 363, and Math 166. Introduction
to computer graphics. Topics include display
technology, light and color, 2D and 3D representations,
image processing, ray-tracing, and computer animation.
S/2
448. Computer Graphics II. 3 credits. Prerequisite:
CSci 446. A continuation of CSci 446, topics
covered include: image compression, spatial-frequency
transformations, sampling theory, and computer
game development. F/2
451. Operating Systems I. 3 credits. Prerequisite:
CSci 242 and 370. Introduction to operating system
theory and fundamentals. Topics include: multiprogramming,
CPU scheduling, memory management methods, file
systems, interprocess communication, and a survey
of modern operating systems. F
452. Operating Systems II. 3 credits. Prerequisite:
CSci 451. A study of the implementation of operating
systems and parts of operating systems, and development
of system software. S/2
455. Database Management Systems. 3 credits.
Prerequisite: CSci 242. Database concepts, database
administration, database design, and database
performance, including the partial design of
a DBMS application. F
457. Electronic Commerce Systems. 3 credits.
Prerequisite: CSci 351. A study of electronic
commerce system architecture and electronic commerce
content design and implementation. Topics include
Internet basics, business issues, Web markup
languages, static and dynamic Web programming,
e-commerce content design and construction, and
databases and host languages with embedded SQL
such as JDBC. On demand
463. Software Engineering. 3 credits. Prerequisites:
CSci 242 and CSci 363. This course teaches software
engineering principles and techniques used in
the specification, design, implementation, verification
and maintenance of large-scale software systems.
Major software development methodologies are
reviewed. As development team members, students
participate in a group project involving the
production or revision of a complex software
product. F
465. Principles of Translation. 3 credits.
Prerequisite: CSci 365. Techniques for automatic
translation of high-level languages to executable
code. F/2
491. Seminars in Computer Science. 1 credit.
May be repeated (3 credits maximum). Prerequisite:
consent of instructor. A course for advanced
students. S-U grading only. F,S
494. Special Projects in Computer Science.
1-3 credits varying with the choice of project.
May be repeated (6 credits maximum). Prerequisite:
consent of instructor. A course for advanced
students. F,S
|
|
|
|