Overview of BS Requirements from Cross-Section of Peer and ...

brewerobstructionΤεχνίτη Νοημοσύνη και Ρομποτική

7 Νοε 2013 (πριν από 3 χρόνια και 7 μήνες)

247 εμφανίσεις

Overview of
BS
Requirements from
Cross
-
Section of
Peer and Aspirant Institutions


All are semester
-
hours. The CS total hours do not include Discrete, even if it has CS prefix.


Name
-

rank

CS+
Math
total

CS
hrs
total

Core
CS

Elective
CS

Quasi
-
core CS

Disc
-
rete

Calc

Stat or
Linear

other

Creighton
-

1

36

33

21

12


3




Elon
-

2

6
0

44

32

12


4

8

4


Xavier
-

2

51

3
7

3
1

6


3

8

3


Butler
-

4

4
4

3
5

23

6

6


9



Drake
-

4

4
0

3
0

1
5

9

6

3

4

3


Bradley
-

6

59

45

35

10


3

8


3

Mercer
-

7

58

4
3

31

3

9

4

8

3


Dru
ry
-

10

35

24

18

6


3

8



Evansville
-

10

63

48

3
6

12


3

12



N. Central
-

19

5
2

37

19

9

9

3

6

3

3

AVGS

50

38


Xavier:

Overview: 30 hours core CSC, 6 hours elective CSC, 3 hours discrete, calc I&II, either stats or
linear. About 50 hours total.


Creigh
ton

Overview:
24

hours required CSC, 12 hours elective CSC


Drury:

Overview: 35 hours (18 core CS, 3 discrete, 8 calculus, 6 elective CSC)


Evansville (ABET accredited)

Overview: 39 hours CSC core, 12 hours CSC electives, 3 hours discrete, 9 hours Calculu
s. Since
it is accredited, there has to be other sciences in there too.


Mercer (ABET accredited)

Overview: 41 hours CSC. 204 and 205 are 4 hours, others are 3. Must require science
sequence too, since accredited.


Butler

Overview: 37 hours CSC (22 cor
e, 6 from OS/Lang/Theory, 6 electives, 1
-
3 methods)
,

12 hours
math (Discrete, calc I, calc II)


Bradley

Overview: 35
-
38 hrs CSC requirements plus 7
-
10 hrs CSC electives to total 45, plus 14 hours
math (discre
te, calc I, calc II, elective)


Drake

Overview
: 25 hour core that includes 18 hours (6 courses) CSC and 10 hours Math (discrete,
calc I, linear). Additional 9 hours elective CSC (3 courses), plus 6 more hours (2 courses)
elective CSC/Math/Stats/ActSci, plus “culminating project” which can be part of
another
course. 27
-
33 hours CSC courses.


North Central College

Overview: BA/BS in Computer Science. The Computer Science course requirements are
identical for both BA and BS. They are on quarters. The CS 1 and CS 2 courses are 3.5 credits
and all oth
er CSC courses are 3.0 credits. 22 hours CSC core

(includes discrete structs)
, 9
hours application electives, 9 hours other CSC electives. Total of 40 CSC credit hours in the
major
, includes discrete
.

BS requires Calc 2, Stats, one add’l math.

BA requir
es minor.


Elon University

Overview: BS requires 64 semester hours (32 hours core CSC, 12 hours elective CSC, 4 hours
discrete, 8 hours add’l math, 8 hours science), BA is 52 semester hours (8 hours elective CSC,
no science)


======================= DETAI
LS ==============================


Xavier:

Overview: 30 hours core CSC, 6 hours elective CSC, 3 hours discrete, calc
I&II, either stats or linear. About 50 hours total.

Within mathematics, CS majors must take Math 170 and171 (Calculus I and II), 180 (Disc
rete Math), and
either156 (General Statistics) or 210 (Elem. Linear Algebra).

The major requires 36 hours of computer science courses,including those numbered 170, 180 (Computer
Science I, II), 181 (CS Lab), 210 (Machine Org. & Assembly Lang.), 220 (Data S
tructures & Algorithms),
250(Languages & Automata), 260 (Software Engineering),300 (Programming Languages), 310 (Compiler
Construction),320 (Operating Systems), 390 (Senior Seminar & Project),and six hours of elective courses
from those numbered200
-

397.

CSCI 170
-

Computer Science I

This course is an overview of computer science. Topics include problem solving and
algorith
ms, machine architecture, operating systems, assembly language, higher
level programming languages, compilers, limits of computation, networking,
applications, and social/ethical issues.

3.000 Credit Hours


CSCI 180
-

Computer Science II

Program design: advanced syntax of a programming language; dynamic memory;
recursion; sorting; searching; stacks; queues; social and eth
ical issues related to
software design and reliability. Pre
-
requisite: CSCI 170.

3.000 Credit Hours


CSCI 181
-

Computer

Science Lab

Introduction to the syntax of a programming language and to program design
techniques. Co
-
requisite: CSCI 180.

1.000 Credit Hours

1.000 Lab hours


CSCI 210
-

Machine Organization & Assembly Language

Machine level representation of data, assembly level machine organization, memory
system organization and architecture, number representation and errors, assem
bly
language. Pre
-
requisite: CSCI 170.

3.000 Credit Hours


CSCI 220
-

Data Structures & Algorithms

Trees, hashing, adv
anced sorts, numerical algorithms, algorithm analysis, algorithm
design and problem solving strategies. Pre
-
requisite: CSCI 180, MATH 180.

3.000 Credit Hours


CSCI 250
-

Languages & Automata

Finite
-
state
-
automata and regular expressions, context
-
free grammars, pushdown
automata. Turing machines, computability and undecidability, complexity classes.
Pre
-
requisite: MATH 180
, CSCI 170; CSCI 180 is also recommended.

3.000 Credit Hours



CSCI 260
-

Software Engineering

Software development pr
ocess; software requirements and specifications; software
design and implementation; verification and validation. Pre
-
requisite: CSCI 220.

3.000 Credit Hours


CSCI 300
-

Programming Languages

History of programming languages; virtual machines; sequence control; data
control; scoping; parameter passing; sharing and type checking; run
-
time storage
management; programming la
nguage semantics; programming paradigms.
Includes a brief introduction to several different languages as examples of
paradigms. Pre
-
requisite: CSCI 220, CSCI 250.

3.000 Credit Hours


CSCI 310
-

Compiler Construction

Study of grammars, syntax, semantics, interpreters, and compilers. Including the
construction of a simple language and a compiler/interpreter. Pre
-
requisite:
CSCI
220, CSCI 250; CSCI 260 is also recommended.

3.000 Credit Hours


CSCI 320
-

Operating Systems

Operating system so
ftware and hardware design and implementation; tasks and
processes; process coordination, synchronization, and scheduling; physical and
virtual memory organization; file systems and naming; security and protection. Pre
-
requisite: CSCI 210, CSCI 220; CSCI 2
60 is also recommended.

3.000 Credit Hours


CSCI 390
-

Senior Seminar & Project

Design, implementation, documentation,

and presentation of a significant computer
science project. Pre
-
requisite: Senior Computer Science major

2.000 OR 3.000 Credit Hours


The following are electives, students are required to take two:


CSCI 321
-

Numerical Analysis

Accuracy; function evaluation and approximation; systems of linear equations;
nonlinear equations; numerical differentiation and integration; so
lutions to
differential equations. Pre
-
requisite: CSCI 180, MATH 171

3.000 Credit Hours


CSCI 335
-

Databases

Database

systems are the software systems used to manage large volumes of data.
The principles of database systems, hardware characteristics, file organization and
evaluation, data models, database schemas, etc., are studied from both a
theoretical and practical v
iewpoint. The emphasis will be on solving the problems
encountered in designing and using a database system, regardless of the
underlying hardware and operating system on which the database system will run.
Pre
-
requisites: CSCI 210, CSCI 220, MATH 180.

3.
000 Credit Hours


CSCI 340
-

Networking

Principles of abstraction underlying modern networks with an emphasis on the
te
chnologies underlying the Internet. Applications, transport protocols, routing
protocols, network protocols and link protocols will be covered. Problem solving,
including programming, at all layers of the networking model will be emphasized.
Pre
-
requisites
: CSCI 220

3.000 Credit Hours


CSCI 350
-

Advanced Algorithms & Theory

Advanced algorithm design and analysis of algor
ithms; NP
-
Completeness, parallel
algorithms; heuristic techniques for intractable problems. Pre
-
requisite: CSCI 220;
CSCI 250 is also recommended.

3.000 Credit Hours


CSCI 370
-

Artificial Intelligence

Methods of problem solving in artificial intelligence. Heuristics, evaluation functions,
search strategies, and a survey of AI projects. Introduction to LISP or other
langu
age used for AI programming. Pre
-
requisite: CSCI 220.

3.000 Credit Hours


CSCI 380
-

Topics in Computer Science

Advanc
ed computer science topics, specified by instructor.

1.000 TO 3.000 Credit Hours




Creighton

Overview:
24

hours required CSC, 12 hours elective CSC


B.S.C.S. with concentration in Computer

Science

Required courses (36 hours)

CSC 221 Computer Programmin
g I

CSC 222 Computer Programming II

CSC 309 Discrete Structures

CSC 414 Introduction to Computer Organization

CSC 427 Data Structure and Algorithm Analysis

CSC 533 Organization of Programming Languages

CSC 539 Operating Systems Structure and Design

CSC 548

Object Oriented Design

Four additional 400
-
level
-
or
-
above CSC courses

(no more than 6 credits of CSC 493 or 495)


CSC 121 Computers and Scientific Thinking
(F,S)

CSC 221 Computer Programming I
(F,S)

CSC 222 Computer Programming II
(F,S)

CSC 309 Discrete S
tructures
(S)

CSC 414 Introduction to Computer Organization
(F)

CSC 426 Website Administration
(Alt
-
S)

CSC 427 Data Structures and Algorithm Analysis
(F)

CSC 444 Human Computer Interaction
(S)

CSC 452 Windows Programming
(Alt
-
F)

CSC 462 Oracle Programming
(OD)

CSC 493 Directed Independent Readings
(OD)

CSC 495 Directed Independent Study
(OD)

CSC 497 Directed Independent Research
(OD)

CSC 499 Directed Internship
(OD)

CSC 515 Computer Architecture
(OD)

CSC 525 Automata, Computability & Formal Lang.
(Alt
-
F)

CSC

528 Advanced Electronic Commerce
(Alt
-
S)

CSC 533 Organization of Programming Languages
(S)

CSC 535 Introduction to Compiler Design
(OD)

CSC 538 Networks LAN & NOS
(Alt
-
S)

CSC 539 Operating Systems Structure and Design
(S)

CSC 542 Relational Database Desig
n
(F)

CSC 543 Numerical Analysis
(OD)

CSC 548 Object Oriented Design
(S)

CSC 550 Introduction to Artificial Intelligence
(Alt
-
S)

CSC 551 Web Programming
(F)

CSC 555 Computer Graphics
(F)



Drury:


Overview: 35 hours (18 core CS, 3 discrete, 8 calculus, 6 e
lective CSC)

Require Core Courses (29 hours):

CSCI 241: Discrete Mathematics

CSCI 2
51: Introduction to Computer Science

CSCI 261: Data Structures

CSCI 262: Algorithms

CSCI 351: Programming Languages

CSCI 371: Software Engineering

CSCI 493: Research and Development

MATH 231: Calculus I

MATH 232: Calculus II

Choose one of the following (3 hours):

CSCI 331: Operating Systems

CSCI 361: Computer Organization


Choose one of the following (3 hours):


CSCI 453: Formal Language Theory

CSCI 454: Compiler Theory

CSCI 241: Discrete Mathematics. 3 hours.


This course includes propositional logic, induction and recursion, number theory, set theory,
relations and functions, graphs and trees an
d permutations and combinations. Same as
MATH
241
.
Prerequisite:
Two years of high school algebra.

CSCI 251: Introduction to Computer Science. 3 hours.


An introduction of various ar
eas of computer science. A major component is programming
design and development using a high level language such as C++. A disciplined approach to
problem solving methods and algorithm development will be stressed using top
-
down design and
stepwise refine
ment. Topics included are syntax and semantics, I/O, control structures,
subroutines and modularity, data types, and fundamental algorithms. Also discussed are the
ethics of computing. Two hours lecture, two hours lab. Recommended
CSCI 241
.

CSCI 261: Data Structures. 3 hours.

This course provides an in
-
depth study of data structures, including arrays, records, stacks,
queues, lists, trees, heaps and hash tables. The study

includes the definition, specification and
implementation of these structures, as well as examples of their uses. Also included is an
introduction to the internal representation of information. Prerequisite:
CSCI 241
,
CSCI 251
,
MATH 231
. It is recommended that studen
ts receive a grade of C or better in these prerequisites
to be successful in this course.

CSCI 262: Algorithms. 3 hours.

This course examines the design and efficiency of sequential and parallel algorithms. Problem
-
solving strategies and techniques are ce
ntral. The algorithms studied include sorting and
searching, pattern matching, graph algorithms and numerical algorithms. Standard algorithmic
paradigms are studied: divide and conquer, greedy methods and dynamic programming. We will
consider the time and
space complexity analysis of sequential and parallel algorithms and proofs
of algorithm correctness.
Prerequisite:
CSCI 261
. Recommend
MATH 234

or
MATH 235
. It is
also recommended that students receive a grade of C or better in
CSCI 261

to be successful in
this course.

CSCI 331: Operating Systems. 3 hours.


The concepts underlying operating systems are studied. Topics include file systems, CPS
scheduling, memory management, deadlocks, concurrent
processes, and protection.
Prerequisite:
CSCI 261
.

CSCI 340: Numerical Analysis. 3 hours.


Numerical techniques for finding mathematical solutions are studied. These alg
orithms are
implemented in computer systems for solving mathematical problems. Included are
approximating solutions of equations and numerical differentiation and integration. Numerical
solutions for differential equations and linear systems also may be st
udied. Same as
MATH 340
.

Prerequisite:

MATH 231
,
MATH 232
.

CSCI 351: Programming Languages. 3 hours.

This course includes the history, design, and implementation of various programming languages.
The strengths and weaknesses of each language will be studied and the comparisons among the
languages wil
l be highlighted. The specific languages studied may include a scientific language
such as Fortran, an object oriented language such as JAVA, a functional language such as LISP,
and a database query language such as SQL. Also included will be brief introdu
ctions to
compiler design and to automata and formal language theory.
Prerequisite:
CSCI 262
.

CSCI 361: Computer Organization. 3 hours.

A detailed study designed to tea
ch the building blocks of a computer system and basic computer
organization concepts. Subjects include hardware, machine code, assembly language, compilers,
operating systems, and high
-
level languages, as well as digital logic, performance issues, and
bina
ry arithmetic.
Prerequisite:

CSCI 262
.

CSCI 371: Software Engineering. 3 hours.


Systems Engineering concepts for the design and implementation of computing projects. P
roject
life cycle studies include rapid prototyping paradigms as well as the classical cycle of
requirements, design and implementation phases. Project management is discussed, including
considerations in selecting hardware platforms. The methodologies are

reinforced through a
group project.
Prerequisite:
CSCI 262
.

CSCI 453: Formal Language Theory. 3 hours.

A formal study of the mathematical basis for computer software.
The following topics are
included: finite automata, regular expressions, context
-
free languages, pushdown automata,
Turing machines, decidability, and computability.
Prerequisite:

CSCI 351
;
MATH 234

or
MATH 235
.

CSCI 454: Compiler Theory. 3 hours.


The translation of high
-
level l
anguages into low
-
level languages is studied, including syntax
definition, lexical analysis, syntax analysis, and the role of the parser. Other topics include type
checking, run
-
time environments, code generation, and code optimization.
Prerequisite:

CSCI
351
. Recommend
CSCI 453
.

CSCI 461: Artificial Intelligence. 3 hours.

A survey of t
he main applications of artificial intelligence includes natural language processing,
robotics and expert systems. The principles of artificial intelligence are studied, including such
topics as search strategies, deduction systems and plan generation syst
ems. Labs use a version of
the LISP language.
Prerequisite:
CSCI 351
.

CSCI 493: Research and Development. 3 hours.

Experience in research and development of computer so
ftware in a topic such as automated
scheduling. Requires team development and delivery of an application and participation in
departmental assessment activities.
Prerequisite:
CSCI 351
,
CSCI 361
,
CSCI 371
.


Evansville (ABET accredited)

Overview: 39 hour
s CSC core, 12 hours CSC electives, 3 hours discrete, 9 hours
Calculus. Since it is accredited, there has to be other sciences in there too.


CS 101 Introduction to Computer Science 3

CS 210 Fundamentals of Programming I 3

CS 215 Fundamentals of Program
ming II 3

CS 220 Logic Design and Machine Organization 3

CS 290 Object
-
Oriented Design 3

MATH 370 Discrete and Combinatorial Mathematics 3

CS 380 Programming Languages 3

CS 381 Formal Languages 3

CS 390 Software Engineering 3

CS 315 Algorithms and Dat
a
Structures

3

CS 320 Computer Architecture 3

CS 470 Operating Systems 3

CS 495 Senior Project Phase I 3

CS 495 Senior Project Phase II 3

4 electives @ 3 hrs

3 semesters of calculus


CS

101
Introduction to Computer Science

(3 credits)

Introduction to th
e University and departmental computing environments, and some
simple programming concepts. Topics include ethics and current events in technology.
Culminates in a multidisciplinary team project with electrical and computer engineering.
Restricted to compu
ter science majors and minors. Fall.

CS

105
Survey of Computer Science

(3 credits)

CS

205
Programming for the Sciences

(3 credits)

CS

210
Fundamentals of Programming I

(3 credits)

Emphasizes problem
-
solving techniques used in the analysis and design of

software
solutions, including structured top
-
down design, abstraction, good programming style,
debugging and testing. Programming constructs covered include control structures,
functions, and basic, aggregate and user
-
defined data types. Introduction to o
bject
-
oriented design and recursion. Fall, spring.

CS

215
Fundamentals of Programming II

(3 credits)

Project and problem
-
solving course emphasizes the use of classes for encapsulation of
abstract data types and abstract data structures. Topics include cl
asses, templates,
dynamic allocation, searching and sorting, recursion and exception handling.
Prerequisite: Computer Science 210. Fall, spring.

CS

220
Logic Design and Machine Organization

(3 credits)

Introduction to logic design and computer hardware c
oncepts. Topics include Boolean
algebra, number representations, sequential logic, counters and registers, microcomputer
architecture and assembly language programming. Spring.

CS

290
Object Oriented Design

(3 credits)

In
-
depth study of abstract data typ
es and objects, including inheritance and
polymorphism, frameworks and design patterns, and the use of these principles in
problem solving and program design. Prerequisite: Computer Science 215. Spring.

CS

310
Puzzle Programming

(1 credit)

Study of probl
em solving under time pressure. Simulation of the programming contest
environment. All problems considered come from past programming contests. Highly
recommended for any student interested in programming competitions. Prerequisite:
Computer Science 215 or

permission of the instructor. May be repeated for up to three
credit hours. Fall.

CS

315
Data Structures and Algorithms

(3 credits)

Design and implementation of data structures and algorithms with attention to complexity
and space analysis. Problem
-
solv
ing strategies including greedy and divide
-
andconquer
algorithms as well as dynamic programming techniques. Prerequisites: Computer Science
215, Mathematics 370. Spring.

CS

320
Computer Architecture

(3 credits)

Studies the architecture of computer system
s from four
-
bit machines to supercomputers.
Memory systems, I/O processors, and multi
-
computer systems are studied in detail.
RISC, CISC and Neural Nets are introduced. Establishes the relationship of hardware and
software. Includes hands
-
on projects deali
ng with graphical user interfaces and their
implementation. Prerequisite: Computer Science 215

CS

350
Computer/Human Interaction

(3 credits)

Study of user interface design, including ergonomic factors. Includes hands
-
on projects
dealing with graphical us
er interfaces and their implementation. Prerequisite: Computer
Science 215.

CS

355
Computer Graphics

(3 credits)

Fundamental course in computer graphics. Topics include rendering two and three
-
dimensional images, two and three
-
dimensional transformations
, line clipping, hidden
lines, shading and perspective projections.

CS

375
Unix System Programming

(3 credits)

Coverage of UNIX software development and UNIX administration. Includes discussion
of common shells and scripting languages, X Windows and inte
rprocess communication.

CS

376
Small Computer Software

(3 credits)

Introduction to graphical user interface provided by Windows153 operating system.
Topics include the Win32 API, timers, basic graphics, controls, dynamic
-
link libraries
(DLLs) and an intr
oduction to device drivers.

CS

380
Programming Languages

(3 credits)

Comparative analysis of selected high
-
level languages. Covers virtual computers
represented by various programming languages, representation of data types, sequence
control constructs,
data access, scoping, typing systems, runtime storage management,
languages semantics, alternative, programming paradigms and parallel language
constructs.

CS

381
Formal Languages

(3 credits)

Models of computation including finite automata, regular gramm
ars, regular expressions,
pushdown automata, context
-
free grammars, Turing machines, computability and
undecidability.

CS

390
Software Engineering

(3 credits)

Study of the software design and development process in the context of a large group
-
programmin
g project. Topics covered include: project management, software
management, requirements and specifications methods, software design and
implementation, verification and validation, aspects of software testing and
documentation standards, technical documen
ts, contracts, risks and liabilities.

CS

415
Cryptography

(3 credits)

Introduces conventional and public
-
key cryptography, cryptosystems such as DES and
RSA, and applications of cryptography to network and system security.

CS

430
Artificial Intelligence

(3 credits)

Basic ideas and techniques underlying the design of intelligent computer systems. Topics
include heuristic search, problem solving, game playing, knowledge representation,
logical inference and planning. Advanced topics such as robotics, expe
rt systems,
learning and language understanding as time allows.

CS

440
Databases

(3 credits)

Presents database concepts and architectures. Topics include basic file structures, data
dictionaries, data models, languages for data definition and queries, an
d transaction
management for data security, concurrency control and reliability. Hands
-
on experience
with database and query systems.

CS

470
Operating Systems

(3 credits)

Components of operating systems. Tasking and processing; process coordination and
s
cheduling; memory organization and management; device management; security;
networks; distributed and real
-
time systems.

CS

475
Networks

(3 credits)

Digital data communication systems in hardware and software, synchronous and
asynchronous communication,
standards, protocols, network configurations, network
applications.

CS

478
Embedded Systems and Real
-
Time Programming

(3 credits)

Covers real
-
time programming techniques that are commonly used on embedded
systems. Topics include real
-
time operating syste
m concepts, concurrent programming
and task scheduling algorithms, mutual exclusion and synchronization methods, and
interprocess communication. Students gain real
-
world experience by writing applications
for two popular embedded operating systems. Spring.


CS

480
Compilers Programming

(3 credits)

Theoretical and practical aspects of compiler construction. Covers lexical analysis,
parsing, code generation and code optimization. Includes implementation of a usable
compiler.

CS

494
Senior Project Seminar Pr
ogramming


Provides guidance for the selection of a topic for the senior design project. Projects (some
industry
-
sponsored) are presented for student selection. An outline and short presentation
of the project selected is required.

CS

495
Senior Project P
hase I Programming

(3 credits)

Plan the computer science project and formulate the preliminary design under the
guidance of faculty and industrial advisors. Discussion of the relationship of computer
science as a discipline to the humanities and social sc
iences. Preparation of a written
formal proposal and an oral presentation of the proposal. Seminar session addresses
ethical, environmental, economic, safety and ergonomic aspects of computer science.
Written reaction to seminar topics. Fall.

CS

497
Senio
r Project Phase II Programming

(3 credits)

Student completes and builds the design proposed in Computer Science 495. A formal
design review is conducted early in the semester. A practice oral report, a written final
report, a final oral report and a demon
stration of the completed project are required.

CS

498
Independent Study in Computer Science Programming

(1
-
3 credits)

Independent study of a topic of interest to the student. Requires faculty sponsor and
approved detailed study plan.

CS

499
Special Top
ics in Computer Science Programming

(1
-
3 credits)

Study of topics of special interest. Topics will be announced. May be repeated.
Prerequisites will be announced when scheduled.

CS

515
Cryptography

(4 credits)

Introduces conventional and public
-
key cryp
tography, cryptosystems such as DES and
RSA, and applications of cryptography to network and system security.

CS

520
Computer Architecture

(4 credits)

Studies the architecture of computer systems from four
-
bit machines to supercomputers.
Memory systems,
I/O processors, and multi
-
computer systems are studied in detail.
RISC, CISC and Neural Nets are introduced. Establishes the relationship of hardware and
software. Includes hands
-
on projects dealing with graphical user interfaces and their
implementation.
Prerequisite: Computer Science 215

CS

530
Artificial Intelligence

(4 credits)

Basic ideas and techniques underlying the design of intelligent computer systems. Topics
include heuristic search, problem solving, game playing, knowledge representation,
logi
cal inference and planning. Advanced topics such as robotics, expert systems,
learning and language understanding as time allows.

CS

555
Computer Graphics

(4 credits)

Fundamental course in computer graphics. Topics include rendering two and three
-
dimensi
onal images, two and three
-
dimensional transformations, line clipping, hidden
lines, shading and perspective projections.

CS

570
Operating Systems

(4 credits)

Components of operating systems. Tasking and processing; process coordination and
scheduling; m
emory organization and management; device management; security;
networks; distributed and real
-
time systems.

CS

574
UNIX System Programming Programming

(4 credits)

CS

575
Networks

(4 credits)

Digital data communication systems in hardware and software,
synchronous and
asynchronous communication, standards, protocols, network configurations, network
applications.

CS

580
Compilers Programming

(4 credits)

Theoretical and practical aspects of compiler construction. Covers lexical analysis,
parsing, code ge
neration and code optimization. Includes implementation of a usable
compiler.

CS

590
Software Engineering

(4 credits)

Study of the software design and development process in the context of a large group
-
programming project. Topics covered include: projec
t management, software
management, requirements and specifications methods, software design and
implementation, verification and validation, aspects of software testing and
documentation standards, technical documents, contracts, risks and liabilities.

CS

597
Thesis Programming

(1
-
4 credits)

CS

598
Independent Study in Computer Science Programming

(1
-
4 credits)

Independent study of a topic of interest to the student. Requires faculty sponsor and
approved detailed study plan.

CS

599
Indep Study Programmi
ng

(1
-
4 credits)

Study of topics of special interest. Topics will be announced. May be repeated.
Prerequisites will be announced when scheduled.





Mercer (ABET accredited)


Overview: 4
3 hours CSC. 204,
205
,322,323

are 4 hours, others are 3.



MAT 191

Calc I 4 hrs

MAT 192

Calc II 4 hrs

MAT 225

Discrete 4 hrs

MAT 320

Stats 3 hrs

CSC 204

prog 1

CSC 205

prog 2

CSC 245

data struct + algor

CSC 322

org & asm lang

CSC 323

org & design

CSC 330

prog lang

CSC 340

theory computing

CSC 460

OS

CSC 4
80

SE

CSC 310 or 312

file structures or DB

CSC 324 or 360

digital desgn or data comm

CSC 380 or 450

AI or Compiler

One additional course 310 or above



CSC 204. Programming I

(4

hours)

Prerequisite:

mathematics

competency.

Students

will

gain

an

unders
tanding

of

computer

science

foundations

by

learning

how

to

program

in

a

modern

object
-
oriented

language.

The

basic

topics

to

be

covered

include

structured

and

object
-
oriented

programming,

basic

syntax

and

semantics,

simple

data

types,

control

structures,

c
lasses,

arrays,

and

graphics.

Students

will

also

“experiment”

with

the

computer,

and

learn

how

to

design,

test,

and

debug

programs.



CSC 205. Programming II

(4

hours)

Prerequisite:

CSC

204

A

continuation

of

CSC

204

with

an

emphasis

on

advance

object
-
orien
ted

principles.

Topics

include

inheritance,

polymorphism,

graphical

user

interfaces,

eventdriven

programming,

recursion,

and

simple

data

structures

(lists,

stacks,

queues,

and

binary

search

trees).



CSC 245. Data Structures and Algorithm Analysis

(3

hours
)

Prerequisites:

CSC

205,

and

MAT

141

or

191

A

rigorous

study

of

the

implementation

of

different

data

structures,

and

an

analysis

of

the

time

and

space

complexity

of

their

associated

algorithms.

Topics

will

include

dynamic

memory,

trees,

hashing,

heaps,

so
rting,

and

graphs.


CSC 310. Introduction to File Structures

(3

hours)

Prerequisite:

CSC

245

A

study

of

the

different

data

structures

and

algorithms

that

are

appropriate

for

the

placement

and

organization

of

data

on

secondary

storage.

Physical

characterist
ics

of

files

on

different

large

storage

devices

are

discussed.

Concepts

studied

include

indexing,

external

sorting,

B
-
trees,

and

extendible

hashing.

Programming

projects

related

to

file

processing

are

required.



CSC 312. Database Systems

(3

hours)

Prerequ
isite:

CSC

245

A

study

of

both

logical

and

physical

organization

of

computer

database

systems,

including

DBMS

languages,

architecture,

and

interfaces,

data

modeling,

integrity,

and

security.

Emphasis

will

be

placed

on

relational

models,

languages,

and

syst
ems.



CSC 315. Introduction to Computer Graphics

(3

hours)

Prerequisite:

CSC

205

Corequisite:

CSC

245

A

survey

of

the

basic

hardware

components

and

the

software

techniques

used

in

the

discipline

of

computer

graphics.

Topics

to

be

covered

will

include

two

and

three
-
dimensional

geometry,

matrix

representations

of

transformations,

clipping,

perspective,

stereoscopic

views,

viewing

in

three

dimensions,

and

device

interaction.

Visual

realism

and

animation

using

color,

shading,

lighting,

and

texturing

will

also

be

introduced.

Each

student

will

be

required

to

complete

a

project

utilizing

a

graphics

workstation.



CSC 322. Computer Organization and Assembly Language

(4

hours)

Prerequisite:

CSC

204

Designed

to

provide

an

introduction

to

fundamental

concepts

of

the

o
rganization

and

operation

of

a

computer

and

to

the

study

of

assembly

language

programming.

Included

will

be

the

study

of

register

sets,

symbolic

addresses,

addressing

techniques,

parameter
-
passing

techniques,

and

data

representation.



CSC 323. Computer Or
ganization and Logic Design

(4

hours)

Prerequisite:

CSC

322

An

introduction

to

the

basic

organization

of

a

digital

computer.

Topics

will

include

basic

logic

design

at

the

circuit

level,

data

coding

and

representations,

functions

of

large
-
scale

components

o
f

a

computer

system,

and

the

mechanics

of

information

transfer

and

control

within

a

digital

system.

Students

are

introduced

to

practical

design,

breadboarding,

and

testing

of

digital

circuits

in

the

Hardware

Laboratory.



CSC 324. Digital System Design

(3

hours)

Prerequisite:

CSC

323

Corequisite:

CSC

322

A

continuation

of

the

hardware

design

process

begun

in

CSC

323.



CSC 330. Organization of Programming Languages

(3

hours)

Prerequisite:

CSC

205

A

study

of

the

concepts

and

issues

underlying

the

design

and

implementation

of

programming

languages.

Topics

considered

will

be

the

objects

of

computation,

grammars,

ambiguity,

control

structures,

scope

and

typing

of

variables,

blockstructured

languages,

precedence,

recursion,

and

input/output

facilities.

Examples

w
ill

be

drawn

from

a

high
-
level

language.




CSC 335. Numerical Methods

(3

hours)

Prerequisites:

MAT

192

and

ability

to

write

programs

in

a

high
-
level

computer

language.

A

study

of

numerical

methods

for

the

solution

of

mathematical

problems

and

computer

app
lication

of

those

methods.

Topics

will

include:

methods

such

as

the

bisection

algorithm

and

fixed

point

iteration

for

the

solution

of

equations

with

a

single

variable,

interpolation

and

polynomial

approximation,

numerical

differentiation

and

integration,

s
olution

of

systems

of

linear

equations,

and

least

squares

approximation.



CSC 340. Introduction to the Theory of Computing

(3

hours)

Prerequisites:

MAT

225

and

the

ability

to

write

programs

in

a

high
-
level

computer

language.

Fundamentals

of

computing

theo
ry

are

developed

on

an

intuitive

level.

Topics

studied

include

finite

automata,

context
-
free

grammars,

Turing

machines,

and

recursive

functions.

The

notion

of

undecidable

or

noncomputable

problems

based

on

the

Turing

machine

model

is

discussed

briefly.



C
SC 360. Theory of Data Communications

(3

hours)

Prerequisite:

CSC

205

Consideration

of

the

design

of

communication

line

characteristics,

modems,

synchronous

and

asynchronous

line

protocols,

error

detection

and

correction

schemes

including

polynomial

codes,

basic

multiplexing,

and

concentration.



CSC 380. Artificial Intelligence

(3

hours)

Prerequisites:

CSC

245,

MAT

225

An

introduction

to

the

problem

domains

of

artificial

intelligence

and

to

the

principles

and

techniques

used

to

design

systems

that

acquire

knowledge

and

demonstrate

intelligent

responses.

Particular

areas

studied

include

deterministic

and

heuristic

search

techniques

appropriate

for

large

problem

spaces,

formal

methods

of

knowledge

representation

and

logical

reasoning,

natural

language

underst
anding,

and

neutral

nets.



CSC 415. Graphics Simulation and Visualization

(3

hours)

Prerequisite:

CSC

315

Advanced

topics

in

computer

graphics

such

as

viewing

in

three

dimensions,

representation

of

three
-
dimensional

surfaces

and

shapes,

texture

mapping,

h
ierarchical

kinematic

and

solid

modeling,

rendering

and

animation

of

articulated

objects,

scientific

visualization,

and

physical

aspects

of

simulation

such

as

collision

detection

and

gravity

will

be

covered.

The

design

and

implementation

of

a

graphics

proj
ect

focusing

on

real
-
time

simulation

will

be

required.



CSC 435. High Performance Scientific Computing

(3

hours)

Prerequisite:

CSC

335

An

introduction

to

modern

methods

in

large
-
scale

scientific

computing.

Topics

will

include

architectures

for

high

perfor
mance

and

parallel

computing

utilizing

both

shared

memory

and

distributed

memory

hierarchies.

Algorithms

for

parallel

computing,

as

well

as

parallel

implementations

of

codes

used

in

numerical

methods,

will

be

studied

and

their

performance

enhancements

exam
ined.

Emphasis

will

be

placed

on

code

development,

debugging,

testing,

and

optimization

on

high

performance

systems.

Students

will

complete

projects

related

to

current

computational

problem

in

science

and/or

engineering.



CSC 450. Compiler Construction

(3

hours)

Prerequisites:

CSC

245,

322,

and

MAT

225.

A

study

of

basic

techniques

of

compiler

design

and

implementation

including

formal

description

of

syntax

and

semantics,

lexical

analysis,

grammars,

syntax

analysis,

intermediate

code,

generation

of

object

c
ode,

relocation,

symbol

tables,

error

detection,

and

optimization.

Students

will

be

engaged

in

a

compiler

writing

project.



CSC 460. Operating Systems

(3

hours)

Prerequisites:

CSC

245,

322,

and

MAT

225

A

survey

of

functions

of

an

operating

system

and

the

algorithms

used

in

its

implementation.

Input/output

programming,

interrupt

processing,

memory

management,

demand

paging,

segmentation,

processor

management,

scheduling,

synchronization,

multiprocessing,

device

management,

dead
-
lock

avoidance,

information

m
anagement,

and

interdependencies.



CSC 480. Software Engineering

(3

hours)

Prerequisite:

CSC

245

A

study

of

current

techniques

used

in

the

development

of

large
-
scale

software

projects.

Topics

include

requirements

analysis,

functional

specification,

system
s

design,

implementation,

testing,

and

maintenance.




Bradley


Overview:
35
-
38 hrs

CSC requirements plus 7
-
10 hrs CSC electives to total 45,
plus 14 hours math (discre
te, calc I, calc II, elective)



45 semester hours including CS 101, CS 102, CS 140, CS 21
0, CS 215, CS 220, CS 321, CS
330, CS 370, CS 390, CS 480, CS 490, CS 491;




Mathematics

-

MTH 120, MTH 121, MTH122, math elective



CS 101


Introduction to Programming



4 s.h.



Introduces the fundamental concepts of programm
ing from an object
-
oriented perspective. Topics
include simple data types, control structures (if
-
else, loops, switch statements), introduction to
array and string data structures, algorithms, debugging and testing techniques, and social
implications of co
mputing.


The course emphasizes good software engineering principles and
practices, breaking the programming process into analysis, design, implementation, and testing,
with primary focus on implementation and development of fundamental programming skills.

Prerequisite: MTH 109 or MTH 112 or equivalent.



CS 102


Data Structures





3 hrs.

Introduction to concepts of object
-
oriented programming with review of control structures and
data types and array pr
ocessing. Introduction to the object
-
oriented programming paradigm,
focusing on the definition and use of classes along with the fundamentals of object
-
oriented
design. Overview of programming principles, simple analysis of algorithms, searching and sortin
g
techniques, and an introduction to software engineering issues.
Prerequisite: a grade of C or
better in CS 101 Introduction to Programming


or equivalent.



CS 140


Programming in C++







1 s.h.

Introduction to

C++ programming for students who are knowledgeable in an object
-
oriented
language (most likely Java).
Prerequisite: CS 102 Data Structures



CS 210


Data Structures and Algorithms




3 hrs.

Builds on the introduction to object
-
orie
nted programming begun in CS101 and CS102 (and
CS140) with an emphasis on algorithms, data structures, and software engineering.
Prerequisite:
a grade of C or better in CS 102 Data Structures or equivalent, MTH120 Discrete Math or
equivalent.



CS 215





Computability, Formal Languages and Heuristics


3 hrs.

Theory of computation and formal languages, grammars, computability, complexity, algorithms,
heuristics and foundations of intelligent systems.
Prerequisite: CS210 Data Structures and
Algori
thms, MTH122 Calculus II.



CS 220




Computer Architecture





3 hrs.

Basics of logic circuit design, modern processor architecture and assembly language. Overview
of principle issues of internal system architecture,

including memory, buses, and peripherals.
Prerequisite: CS210 Data Structures and Algorithms.



CS 321




Operating Systems





3 hrs.

Fundamentals of operating systems concepts, design and implementation. Topi
cs include
operating systems components and structures, process and thread model, mutual exclusion and
synchronization, scheduling algorithms, memory management, I/O controls, file systems, and
security.
Prerequisite: CS220 Computer Architecture.



CS 330





Net
-
Centric Computing





3 hrs.

Fundamentals of data communications: data transmission, data encoding, digital data
communication techniques, data link control, and multiplexing. The web as a client
-
server system,

building web applications, network management and security, compression and decompression.
Multi
-
media technologies, wireless and mobile computing, and event
-
driven programming.
Prerequisite: CS210 Data Structures and Algorithms.



CS 370




Databa
se Management Systems





3 hrs.

Relational database design, including entity relationship modeling and normalization. Structured
query language (SQL) for creating and querying databases. Other topics include the theory of
relational data
bases, including relational algebra, various loading and reporting utilities, and the
implementation of database management systems, e.g. how query optimization works.
Prerequisite: CS102 Data Structures.



CS 390




Software Development






3 hrs.

Introduction to Software Development. Emphasis on software design, software tools and
environments, software evolution, software project management, software processes, software
testing and validation, software life cycle an
d its phases, basics of human computer interaction
and graphic user interface.
Prerequisite: CS210 Data Structures and Algorithms.



CS 480




Social and Professional Issues





2 hrs.

Introduction to the social and professional
issues and practices that arise in the context of
computing.
Prerequisite: CS210 Data Structures and Algorithms.



CS 412


Topics in Computer Science





3 hrs. *)

Topics of special interest which may vary each time course
is offered. Repeatable under a
different topic for a maximum of six hours.
Prerequisites: consent of instructor.



*) The following elective courses are planned to be offered during 2009
-
2010 academic year as
CS412 or CS610 courses (please contact CS/IS Depa
rtment Chair for details):



1) “Computer Game Programming and Modification” (from Fall
-
2010: CIS451/651);



2) “Computer Game Design” (from Fall
-
2010: CIS452/652);



3) “Software and Web Applications Security” (from Fall
-
2010: CIS495/695);



4) “Computer Network
and System Security” (from Fall
-
2010: CIS435/695);



4) “Applied Cryptology” (from Fall
-
2010: CIS415/615);



5) “Robotics”.



CS 490


Capstone Project I





3 hrs.

Applies the concepts and skills learned by under
graduate computer science majors at Bradley
University. Students are required to work on a team on a significant software project.

Prerequisites: CS 370


or CS 390 or equivalents, or consent of instructor.



CS 491


Capstone Project II






1
-
3 hrs.

Applies the concepts and skills learned by undergraduate computer science majors at Bradley
University. Students are required to work on a team on a significant software project.
Prerequisites: CS 490.



CS 502



Advanced Programming





3 hrs.

Introduces the fundamental concepts of programming from an object
-
oriented perspective with
emphasis on advanced programming skills and good software development principles in a closed
labo
ratory setting. Covers topics including object
-
oriented paradigm, design and programming,
fundamental data structures and computing algorithms, and software development principles
Prerequisites: consent of graduate program coordinator; at least two semeste
rs of programming
experience.



CS 503


Programming Methodology



3 hrs.

Predicate calculus, Dijkstra’s methodology of algorithm development. Algorithm development.
Algorithmic language characteristics; syntax, semantics
. Postconditions and preconditions.
Verification of postcondition states satisfied by algorithmic programs executed from preconditions.
Problems.
Prerequisites: a grade of C or better in both MTH 120 and CS 102.



CS 510


Numerical Methods I




3 hrs.

Introduction to numerical and computational aspects of various mathematical topics: finite
precision, solutions to nonlinear equations, and interpolation, approximation, linear systems of
equations, and integration
. Cross listed as MTH 510.
Prerequisites: CS 101; MTH 207 and 223.



CS 511


Numerical Methods II



3 hrs.

Continuation of CS/MTH 510: further techniques of integration, ordinary differential equations,
numeric
al linear algebra, nonlinear systems of equations, boundary value problems, and
optimization. Cross listed as MTH 511.
Prerequisites: MTH 224 or 345; CS/MTH 510.



CS 514


Algorithms



3 hrs.

De
sign and analysis of algorithms. Dynamic structures maintenance and hashing. Searching,
sorting, and traversal. Time and space requirements; simplification; computational complexity;
proof theory and testing; NP
-
hard and NP
-
complete problems
. Prerequisites
: CS210 or
equivalent; one semester of Statistics..



CS 516


Programming Languages



3 hrs.

Design concepts of high
-
level languages. Description languages; grammars and syntax;
expressions and data structures;

select
ion and control structures; constructs for input and output; subprograms and parameter
communications.
Prerequisite: CS 210 or 310.



CS 518


Programming Language Translation



3 hrs.

Overview of programming language translation with
emphasis on modern compiler construction.
Lexical analysis, parsing, syntax and semantic analysis, code generation, garbage collection, and
optimization.
Prerequisite: grade of C or better in CS 210.

Co
-
requisite: CS 516.



CS 520


Advanced Comput
er Architecture



3 hrs.

Fundamental computer sub
-
systems: central processing unit; memory systems; control and
input/output units. General purpose computing systems design. Examples from existing typical
computers.
Prerequisite: CS 220 o
r equivalent.



CS 531


Web Development Technologies



3 hrs.

Introduction to PERL/CGI, XHTML, XML, JavaScript and scripting languages. Web page design
and layout. Client and server side development of web applications. Database

connectivity, Java
Database Connectivity (JDBC).
Prerequisite: CS102 or equivalent.



CS 532




Advanced Java Computing



3 hrs.

Developing Web
-
based systems using J2EE Java technologies. Topics include Java Security,
Ja
va GUI development using IDE, Java Servlets and JavaServer Pages, Java Enterprise
JavaBeans, XML and Java Web Services, and Java Transaction Service and Java Message
service.
Prerequisite: CS531 or equivalent.



CS 535


Introduction to Computer Gr
aphics



3 hrs.

Mathematics and algorithms of computer graphics. Device differences, lines, arcs, curves,
transformations, input and output primitives. Data structures for geometric entities.
Prerequisites:
CS 210 or equivalent, or consent
of instructor. Recommended: MTH 207, 223.



CS 561




Introduction to Artificial Intelligence





3 hrs.

Advanced


topics in artificial intelligence; pattern recognition, search strategies, game playing,
knowledge representation, logic pr
ogramming, uncertainty, vision, natural language processing,
robotics, programming in LISP and PROLOG.
Prerequisite: CS210

or equivalent.



CS 562




Intelligent Systems and Applications





3 hrs.

Gives the necessary background and prac
tice for building intelligent systems using three of the
most commercially successful applications of AI: the logical approach (expert systems, fuzzy logic
and fuzzy expert systems), the biological approach (neural networks, evolutionary programming
and ge
netic algorithms), and the statistical approach (Bayesian networks, belief networks, Markov
chain, Hidden Markov models, and statistical and neural based clustering). Students will have an
opportunity to build integrated, hybrid


intelligent systems to sol
ve problems in a variety of
applications including the medical domain, financial domain and stock market, and autonomous
robotics systems.
Prerequisite: CS210


or equivalent; one course in Statistics.



CS 563




Knowledge Discovery and Data Mining




3 hrs.

Brings together the latest research in statistics, databases, machine learning, and artificial
intelligence that are part of the rapidly growing field of the knowledge discovery and data mining.
Topics covered include fundamental issues,
classification and clustering, machine learning
algorithms, trend and deviation analysis, dependency modeling, integrated discovery systems,
next generation database systems, data warehousing and OLAP and application case studies.
Prerequisite: CS210

or e
quivalent; one course in Statistics.



CS 570




Advanced Topics in Databases



3 hrs.

Designing and building enterprise
-
wide data warehouses. Techniques for analyzing data in data
warehouses. Study different types of data mode
ls including logic and object
-
oriented databases.
Advanced topics in relational databases such as multimedia databases, distributed databases,
concurrency, security, etc.
Prerequisite: CS370 or equivalent.



CS 590




Fundamentals of Software Engine
ering



3 hrs.

Software engineering: software product; prescriptive process models; system engineering;
analysis modeling; design engineering; architectural design; user interface design; testing
strategies and techniques; software systems’ impleme
ntation; software systems’ maintenance.
Prerequisite: CS390 or equivalent.



CS 591




Software Project Management



3 hrs.

Software Project Management: large software systems’ projects; project planning; project
management con
cepts; managerial skills; software project metrics and estimates; software
process metrics; software product metrics; project scheduling; CASE tools for software project
management; software documentation.
Prerequisite: CS390 or equivalent.



CS 592





Requirements Engineering



3 hrs.

Covers topics including basic concepts and principles of software requirements engineering, the
requirements engineering process


requirements elicitation, requirements analysis, requiremen
ts
specification, system modeling, requirements validation and requirements management, and
techniques, methods & tools for requirements engineering and software systems requirmenets
modeling (including structured, object
-
oriented and formal approaches to
requirements modeling
and analysis).
Prerequisite: CS 102 or equivalent.



CS 593




Software Engineering of Web
-
Based Applications


3 hrs.

Software engineering of Web
-
based applications: Web engineering; formulation and planning of
Web
-
based ap
plications; analysis modeling; design modeling for Web
-
based applications; testing
Web
-
based applications; security of Web
-
based applications; implementation and maintenance of
Web
-
based applications.
Prerequisite: CS390 or equivalent.



MTH 120 Discrete Mat
hematics 3 hrs.



Introduction to graph theory, Boolean algebra, mathematical induction, and elementary combinatorics.
Prerequisites: qualifying entrance and/or math precalculus placement scores as for MTH 121; or grade of C
or better in MTH 112.



MTH 121 Cal
culus I 4 hrs. (Gen. Ed. MA)



Topics in analytic geometry; limits; continuity; differentiation; introduction to integration; applications.
Prerequisites: qualifying entrance and/or math precalculus placement scores; or grade of C or better in
MTH 112.



MTH 1
22 Calculus II 4 hrs. (Gen. Ed. MA)



Topics in calculus of logarithmic, exponential, and trigonometric functions; techniques of integration;
analytic geometry; indeterminate forms; improper integrals; infinite series. Prerequisite: grade of C or
better in M
TH 119 or MTH 121 or its equivalent.



Butler

Overview: 37 hours CSC (22 core, 6 from OS/Lang/Theory, 6 electiv
es, 1
-
3
methods) 9 hours math (
calc I, calc II)




All of the following courses:

o

MA 106 Calculus & Analytic Geometry 1


o

MA 107 Calculus & Analytic Geometry 2


MA 315

(? No course description for it in Math dept site)

o

CS 151 Foundations of Computing 1

(4)

o

CS 252 Foundatio
ns of Computing 2

(3)

o

CS 248 Object
-
Oriented Programming an

(5)

o

CS 321 Computer Organization

(3)

o

CS 351 Algorithms

(3)

o

CS 485 Computer Ethics

(1)

o

SE

361 Object
-
Oriented Design

(3)



One of the following:

o

CS

473 Topics in Computer Science

(3)

o

CS 490

Research Methods

(2)

o

CS 491 Senior Seminar

(1)



Two of the following three courses:

o

CS 431 Theory of Operating Systems

(3)

o

CS 441 Organization of Prog Lang

(3)

o

CS 451 Theory of Computation

(3)

Six additional credit hours of CS or SE electives numbered 270 or above

Total Credits: 37 computer science and 12 mathematics.






Drake

Overview:
25 hour core that includes 18 hours (6 courses) CSC and 1
0 hours Math
(discrete, calc I, linear). Additional 9 hours elective CSC (3 courses), plus 6 more
ho
urs (2 courses) elective CSC/Math/Stats/ActSci, plus “culminating project” which
can be part of another course. 27
-
33 hours CSC courses.

Requirements for a

major in Computer Science fall into four categories. They can be satisfied with work in computer
science and mathematics totaling 40
-
50 hours, depending upon the specific courses chosen.

CORE (25 Hours)

Title

Number


Hours

Prerequisites

Discrete Mathem
atics

MATH 54

3 hours

Four years of high school math or MATH 20

Calculus I

MATH 5
0

4 hours

MATH 20 or equivalent and trigonometry

Linear Algebra

MATH 80

3 hours

MATH 50

Introduction to Computer Science I

CS 65

3 hours

Four years of high school math or MATH 20

Introduction to Computer Science II

CS 66

3 hours

CS 65

Computer Organization and

Assembly Language
Programming

CS 130

3 hours

CS 65

Programming Languages

CS 135

3 hours

CS

130

One of the following courses:




Data Structures and Algorithm Analysis

CS 137

3 hours

CS 66, MATH 54 or 50

Theory of Computation

CS 139

3 hours

CS 66, MATH 54 or 50

UPPER
-
DIVISION COMPONENT (15 Hours)

A
. At least nine hours (chosen with the approval of the advisor) from:


1.

Other
computer science courses

numbered 100 or above (excluding CS 140, the Tutoring course, and the Capstone
course)


2.

Information Systems (IS) courses numbered 145 or higher



B
. The balance
(6 typical)
(chosen with the approval of the advisor) fr
om:


1.

Other
computer science courses

numbered 100 or above (excluding CS 140, the Tutoring course, and the Capstone
course)


2.

Information Systems courses numbered 145 or higher


3.

MATH 70

(Calculus II) STAT 71 (Statistics I); STAT 72 (Statistics II)


4.

ECON 107 (Introduction to Econometrics); ECON 176 (Mathematical Economics)


5.

Mathematics courses
, statistics, actuarial science, or quantitative methods numbered 100 or above (MATH 101 and
CS 114 cannot both be counted, MATH 140 and the Capstone course cannot be counted)


6.

Other courses chosen

with the approval of the department advisor


CULMINATING PROJECT

A culminating project, usually completed during the student's senior year, will demonstrate mastery of concepts from the
core curriculum. The project will be chosen by the student with advi
sor approval and should contain a significant design,
implementation, or research component and include at least one public presentation of the work and its results. The
project may be completed either as part of other course work or as an independent stud
y.

65. INTRODUCTION TO COMPUTER SCIENCE I
-

3 hrs.

An introduction to the field of computer science is provided emphasizing problem solving
using a high
-
level programming language. Algorithms, basic data representation, language
control structures, debugg
ing, and program verification will be discussed. Objects will be
introduced, used, and created.

Prereq
.: Four years of high school mathematics or MATH 20.


66. INTRODUCTION TO COMPUTER SCIENCE II
-

3 hrs.

This course extends the work of CS 065. This objec
t of the course is to understand data
abstraction in computer science and to learn how to implement user
-
defined data types in
an object
-
oriented language. Sorting, searching and tree traversal algorithms are used and
analyzed. Preparation for further stud
y in computer science.

Prereq
.: CS 65 or equivalent.

130. COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING
-

3
hrs.

Computer organization and architecture; internal representation of programs and data;
assembly language programming; addressing techn
iques; macros; assemblers; linking;
input/output concepts.

Prereq
.: CS 65 or equivalent.


135. PROGRAMMING LANGUAGES
-

3 hrs.

Principles of programming languages are studied from the perspectives of design and
implementation. Syntactic and semantic feature
s are examined in a variety of languages.
Run
-
time structures for handling both data and control structures are introduced. The
course concentrates on imperative and object
-
oriented paradigms, but also covers
functional and logic languages.

Prereq
.: CS 130
.


137. DATA STRUCTURES AND ALGORITHM ANALYSIS
-

3 hrs.

Formal and informal methods for analyzing the correctness and efficiency of algorithms.
Implementation and analysis of advanced algorithms and data structures such as AVL trees,
B
-
trees, hash
-
tables,
heaps, and graph algorithms. Introduction to complexity theory and
NP
-
Completeness.

Prereq
.: MATH 54, CS 66.


139. THEORY OF COMPUTATION
-

3 hrs.

Theoretical foundations of computing. Introduction to formal grammars, languages and
automata theory. Mathemat
ical analysis of the fundamental power and limitations of
computing devices. Applications to pattern matching, problem specification, programming
languages and compilers.

Prereq
.: MATH 54, CS 66.


140. COOPERATIVE EDUCATION
-

1
-
3 hrs.

Students who are in a

work environment related to the major field of study may receive
credit for applications of classroom knowledge to their job. The student meets regularly with
the adviser to determine appropriate assignments. May be repeated up to a maximum of
eight hours

of credit. (Graded on a credit/no credit basis.)

Prereq
.: At least junior standing or consent of instructor.


143. ARTIFICIAL INTELLIGENCE
-

3 hrs.

Introduction to the theory, tools and methods of artificial intelligence. Topics include
knowledge represen
tation, predicate calculus, basic data structures, and problem solving
strategies. A symbol manipulation language is used. Computer science aspects of artificial
intelligence are emphasized. Applications from areas such as natural language
understanding, v
ision or expert systems are examined.

Prereq
.: CS 66, 130.


146. OBJECT
-
ORIENTED SOFTWARE / UML
-

3 hrs.

Practical experience in state
-
of
-
the
-
art techniques for object
-
oriented software
development, especially the use of "Unified Modeling Language (UML)."
UML is now the de
facto standard for expressing the intricate static and dynamic details of today's complex
software products. The course focuses on learning to develop highly organized and
maintainable programs, and on using UML and "Design Patterns" as a

means for expressing
their features and guiding their design. Team work is also stressed.

Prereq
.: CS 66


147. COMPUTER GRAPHICS
-

3 hrs.

Introduction to the drawing methods, geometrical transforms, and illumination models that
are fundamental to compute
r graphics programming. The course is designed to be hands on
in which students will implement several of the algorithms discussed in class using C/C++
and the OpenGL toolkit.

Prereq
.: Knowledge of C and MATH 80 or consent of instructor.


150. DISCRETE STR
UCTURES (MATHEMATICS 150)
-

3 hrs.

Foundations of discrete mathematics and the problems that can be solved using finite
processes and sets of elements that can be listed. Topics covered will include algorithms,
graph theory, and combinatorics.

Prereq
.: CS

65 and MATH 101.


160. OPERATING SYSTEMS
-

3 hrs.

Introduction to the design, development and implementation of operating systems.
Problems of resource allocation, concurrency, file system design, networking and the
interface between hardware and software
. Examination of actual operating system source
code.

Prereq
.: CS 130.


161. COMPILER CONSTRUCTION
-

3 hrs.

This course provides an understanding of the various phases of the programming language
translation process. Compiler principles and tools are exami
ned, and applied to the
development and implementation of a working language processor. Various parsing
techniques are compared.

Prereq
.: CS 66.


165. INTRODUCTION TO NUMERICAL ANALYSIS (MATHEMATICS 165)
-

3 hrs.

A practical introduction to numerical compu
ting. The primary focus is the concepts and tools
involved in modeling real continuous mathematical or engineering problems on the digital
computer. The effects of using floating point arithmetic, error analysis, iterative methods for
solving equations, an
d numerical integration and differentiation will be studied.

Prereq
.: CS 65, MATH 80 and 100.


172. DIGITAL COMPUTER ORGANIZATION
-

3 hrs.

Exploration of how computers are constructed. Topics include the components of modern
computer organization: the set
of instructions, processor design and layout, clock speed,
pipelining, access to cache, and virtual memory. Each one of these components will be
studied in depth, in addition to basic digital circuits and combinational logic, with a focus on
the decisions
the must be made in order to develop an efficient computer.

Prereq
.: CS 130.



North Central College


Overview: BA/BS in Computer Science. The Computer Science course requirements are
identical for both BA and BS. They are on quarters. The CS 1 and CS

2 courses are 3.5 credits
and all other CSC courses are 3.0 credits. 22 hours CSC core

(includes discrete structs)
, 9
hours application electives, 9 hours other CSC electives. Total of 40 CSC credit hours in the
major
, includes discrete
.

BS requires Ca
lc 2, Stats, one add’l math.

BA requires minor.

Core Courses

The core courses provide a strong foundation for understanding all facets of the field of
computer science. The core consists of the following
seven

courses:



CSC 160 Computer Science I



CSC 161
Computer Science II



CSC 210 Data Structures and Algorithms



CSC 220 Computer Systems Concepts



CSC 230 Discrete Structures



CSC 306 Software Development in C++



CSC 495 Capstone Seminar

Application Electives

In addition to the core, each student selects
three
application electives from the list of
computer science courses below:



CSC 420 Operating Systems (recommended)



CSC 453 Systems Analysis



CSC 454 Object
-
Oriented Analysis and Design



CSC 460 Database Management Systems



CSC 465 Principles of Program
ming Languages (recommended)



CSC 469 Data Communications and Networking


Three

additional computer science electives are required. Students may choose from any
computer science course to fulfill this elective requirement.




CSC

160

Computer

Science

I




CSC

161

Computer

Science

II




CSC

171

Elements

of

Java

I




CSC

172

Elements

of

Java

II




CSC

210

Data

Structures

&

Algorithms




CSC

215

Introduction

to

Web

Programming




CSC

220

Computer

Systems

Concepts




CSC

225

Web

Programming

with

Flash




CSC

230

Discrete

Structures




CSC

242

Introduction

to

Bioinformatics




CSC

255

In
troduction

to

Windows

Programming




CSC

297

Internship




CSC

299

Independent

Study




CSC

306

Software

Development

in

C++




CSC

330

Discrete

Structures

II




CSC

397

Internship




CSC

399

Independent

Study




CSC

415

Web

Programming




CSC

420

Operating

Systems

I




CSC

425

Computer

Graphics




CSC

427

Linux

Programming




CSC

43
1

Advanced

Windows

and

.NET

Programming




CSC

435

Windows

Game

Programming




CSC

4
36

Human

Computer

Interaction




CSC

440

Algorithms




CSC

453

Systems

Analysis




CSC

454

Object
-
Oriented

Analysis

and

Design




CSC

455

Project

Management




CSC

460

Database

Management

Systems




CSC

464

Data

Mining




CSC

465

Principles

of

Programming

Languages




CSC

469

Data

Communication

and

Networking




CSC

479

Computer

and

Network

Security




CSC

487

Parallel

Processing

and

Concurrent

Programming




CSC

490

Special

Topics




CSC

497

Internship




CSC

499

Independent

Study




Elon University


Overview:
BS requires 6
0

semester hours

(32 hours core CSC, 12 hours elective CSC, 4 hours
discrete,
12

hours add’l math
)
, BA is 52 semester hours

(8 hours elective C
SC, no science)


A Bachelor of Science degree in Computer Science
requires the following courses:

CSC 130 Computer Science I 4 sh

CSC 230 Computer Science II 4 sh

CSC 330 Computer Science III 4 sh

CSC 331 Algorithm Analysis 4 sh

CSC 335 Programming Languag
es 4 sh

CSC 342 Computer Systems 4 sh

CSC 442 Mobile Computing 4 sh

CSC 462 Software Development/Capstone 4 sh

MTH 206 Discrete Structures


Select one course from the following: 4 sh

MTH 221 Calculus and Analytic Geometry II

MTH 306 Applied Matrix Theory


Select one course beyond core math requirement 4 sh

Probability/Statistics: if core math requirement was MTH 121, then

MTH 112 General Statistics or a probability and/or statistics course

or

Quantitative Analysis: if core math requirement was MTH 112, then

MTH 121 Calculus and Analytic Geometry 1


Three courses from the following: 12 sh

CSC 410 Artifi cial Intelligence

CSC 415 Numerical Analysis

CSC 420 Game Programming and Computer Graphics

CSC 430 Advanced Programming Concepts

CSC 431 High Performance Com
puting

CSC 499 Research

CSC 300
-
400 level elective


Either: 8 sh

CHM 111, 112, 113, 114,
or

PHY 113, 114, 117, 118,
or

BIO 111, 112, 113, 114


CSC 130. COMPUTER SCIENCE I 4 sh

This introduction to programming and problem solving emphasizes applications fro
m

quantitative disciplines and incorporates weekly group practicum experiences. Offered fall

and spring.

CSC 171. SPECIAL TOPICS 1
-
4 sh

Students study specialized pieces of software and programming languages. Prerequisite:

CSC 130.

CSC 230. COMPUTER SCIENC
E II 4 sh

This course continues the study of object
-
oriented programming with an emphasis on

graphical user interfaces, event handling, inheritance, polymorphism, basic data structures,

software engineering, recursion and the social context of computing. P
rerequisite:

CSC 130. Offered fall and spring.

CSC 330. COMPUTER SCIENCE III 4 sh

This course introduces concepts and methodologies to design and implement a distributed,

multi
-
tier application. Students will cover advanced java features and look at advanc
ed

graphical user interface topics, multithreading, networking, java database connectivity and

web applications. Prerequisite: CSC 230. Corequisite: MTH 206. Offered fall.

C O M P U T I N G S C I E N C E S

111

CSC 331. ALGORITHM ANALYSIS 4 sh

Students anal
yze structures and appropriate algorithms to determine the amount of

resources necessary to execute the algorithm. Students will explore algorithmic approaches

for problem solving and theoretical techniques for arguing effi ciency. Prerequisite: CSC

230, M
TH 206. Offered spring.

CSC 335. PROGRAMMING LANGUAGES 4 sh

This course provides an introduction to the theory and practice of formal languages. The

topics of automata theory, grammar formalisms and Turing machines provide the theoretical

foundation for pr
actical issues such as data typing, control structures and parameter

passing. Programming assignments involve the use of several languages. Prerequisite: CSC

230, MTH 206. Offered spring.

CSC 342. COMPUTER SYSTEMS 4 sh

This course involves the study of the

basic building blocks of modern computer systems.

Topics include digital logic, machine
-
level representation of data, assembly
-
level organization,

operating system primitives and concurrency. Prerequisite: CSC 230. Corequisite:

MTH 206. Offered fall.

CSC
351. THEORY OF COMPUTATION 4 sh

In this introduction to theoretical computer science and analysis of discrete mathematical

structures which fi nd application in computer science, topics may include predicate

calculus, groups, coding theory, graphs, trees,
formal languages, grammars, fi nite state

automata, Turing machines and complexity theory. CSC 351 is cross
-
listed with MTH 351.

Prerequisites: CSC 130, MTH 121, 206. Corequisite: CSC 230. Offered when demand is

suffi cient.

CSC 371. SPECIAL TOPICS 1
-
4 sh

Topics such as genetic programming, grid computing, decision analysis, design of database

management systems, robotics, simulation and high
-
performance computing are offered

when demand is suffi cient.

CSC 410. ARTIFICIAL INTELLIGENCE 4 sh

This course is a
n introduction to the area of Artifi cial Intelligence systems. Students will

learn concepts of knowledge representation, reasoning, acting under uncertainty and learning.

Applications studied will include game playing, natural language and expert systems.

Prerequisite: CSC 331. Offered fall alternating years.

CSC 415. NUMERICAL ANALYSIS 4 sh

(Cross
-
listed with MTH 415.)

CSC 420. GAME PROGRAMMING AND COMPUTER GRAPHICS 4 sh

A study of two major areas of programming video games: graphics and gaming. Students

will learn the fundamentals of two
-

and three
-
dimensional graphic programming, including

object transformations, ray tracing, collision detection and animation as well as the

components of gaming, including intelligent game playing, types of games and crea
ting

engaging storylines. Prerequisite: CSC 335. Offered fall alternating years.

CSC 430. ADVANCED PROGRAMMING CONCEPTS 4 sh

This course will focus on advanced programming concepts beyond the core computer

science material. The material in the course conti
nually evolves guided by the needs of

students, the expertise of faculty members and technology trends. Currently, the course

focuses on developing enterprise level, multi
-
tier distributed applications. The course

explores the major technologies used by se
rver side applications. Using a commercial

application server, students will design and implement a signifi cant programming project

using either Enterprise JavaBeans or WebServices. Prerequisites: CSC 330, CSC 331.

Offered spring alternating years.

CSC 43
1. HIGH PERFORMANCE COMPUTING 4 sh

This course gives an introduction to high performance computing and its applications

within science and engineering. The main emphasis of the course is on techniques and

tools for effi ciently solving large and computatio
nally intensive problems on parallel

computers. Prerequisite: CSC 331, CSC 342. Offered spring alternating years.

CSC 442. MOBILE COMPUTING 4 sh

This course introduces the emerging fi eld of mobile and wireless computing. This course

will cover a range of
topics including wireless networking, location
-
aware computing,

ad
-
hoc networks and the development of software for mobile devices. Prerequisite: CSC

330, CSC 342. Offered spring.

CSC 462. SOFTWARE DEVELOPMENT/CAPSTONE 4 sh

This capstone course combines a
range of topics integral to the specifi cation, design,

implementation and testing of a medium
-
scale software system. In addition to material on

software engineering, the course includes material on human computer interaction and on

professionalism and eth
ical reponsibilities in software development. Prerequisites: CSC

330, CSC 335. Offered fall.

CSC 481. INTERNSHIP IN COMPUTER SCIENCE 1
-
4 sh

Advanced work experiences in Computer Science are offered on an individual basis when

suitable opportunities can be
arranged. Prerequisites: permission of instructor.

CSC 491. INDEPENDENT STUDY 1
-
4 sh

CSC 499. RESEARCH 1
-
4 sh

Students engage in undergraduate research under the direction of a computing sciences

faculty member. Maximum of eight semester hours total credit
. Prerequisite: Eligibility as

determined by the undergraduate research guidelines of Elon University and approval by

the department.