|
Programs:
Major: Computer Science
(see overview below)
(options: Computer science; Hardware systems; Information systems; Cooperative
education)
Minors: Computer Science;
Computer Security;
Computer Applications;
Web
Technology
Courses:
CS: Computer Science
http://www.bsu.edu/cs
Computer science is the study of information and computation and
their application in computer systems. Computer science majors
start by learning the fundamentals of programming and mathematics,
while upper-level courses focus on specializations such as software
engineering, artificial intelligence, programming languages, theory,
algorithms, operating systems, networking, and databases.
The
ubiquitous application of computer science necessitates that majors
be broadly educated and have excellent analytical and communication
skills.
The
department offers two options within the major, and an option in
cooperative education may be added to either.
- The computer science option
covers the traditional breadth of the discipline, preparing
majors for a wide range of careers or graduate programs.
- The information systems
option focuses on applications of computer science to solve
business needs, preparing students for careers in IT-driven
businesses.
The
department also offers four minors:
- The computer science minor
allows students with other majors to learn the foundations
of traditional computer science.
- The computer application
minor focuses on the utilization of personal computer
software for educational and business needs.
- The Web technology minor
introduces students to the development of interactive Web sites
through client- and server-side programming.
- The computer security minor
explores modern issues in computer and information security
such as digital forensics and encryption.
Programs
Students will be guided by the outline
of baccalaureate Degrees, the
University Core
Curriculum, and the
concentration areas listed below.
| MAJOR IN COMPUTER SCIENCE,
68-90 hours |
|
|
A
grade of C or better must be earned in each core course if
the course is to be counted toward fulfilling the CS major
requirements. |
|
| PREFIX |
NO |
SHORT TITLE |
CR HRS |
| Computer
science option, 68-71 hours |
| Core requirement,
50-52 hours
|
| CS |
120 |
Comp Sci 1 |
4 |
|
121 |
Comp Sci 2 |
4 |
|
124 |
Discr Struct |
3 |
|
230 |
Org Arch 1 |
3 |
|
232 |
Data Struct |
3 |
|
324 |
Dsg Ana Algo |
3 |
| |
335 |
Prog Lang |
3 |
|
427 |
Networks |
3 |
| |
436 |
Database Dgn |
3 |
| |
470 |
Thy Cmptn 1 |
3 |
|
476 |
Op Systems |
3 |
|
497 |
Soft Eng 1 |
3 |
|
498 |
Soft Eng 2 |
3 |
| MATHS |
161 |
Appl Calc 1 (3) |
|
| |
or |
|
|
| |
165 |
Calculus 1 (4) |
3-4 |
|
162 |
Appl Calc 2 (3) |
|
| |
or |
|
|
| |
166 |
Calculus 2 (4) |
3-4 |
|
221 |
Pbty Stats (3) |
|
| |
or |
|
|
| ECON |
221 |
Bus Stats (3) |
3 |
|
|
|
______ |
|
|
|
50-52 hrs |
| Electives,
18-19 hours |
|
| CS |
310 |
Web Prog (3) |
|
| |
315 |
Game Prog (3) |
|
| |
330 |
Org Aarch 2 (3) |
|
| |
334 |
Network DB (3) |
|
| |
339 |
Seminar (3-6) |
|
| |
345 |
G U I (3) |
|
| |
347 |
Net Security (3) |
|
| |
397 |
N-tier Arch (3) |
|
| |
430 |
System Prog (3) |
|
| |
438 |
Graphics (3) |
|
| |
446 |
Sys Admin (3) |
|
| |
449 |
Perim Sec (3) |
|
| |
455 |
Data Mining (3) |
|
| |
456 |
Image Proc (3) |
|
| |
457 |
Appl Cryptog (3) |
|
| |
499 |
Regs Hnrs (3) |
|
| MATHS |
217 |
Lin Algebra (4) |
|
| |
362 |
Numer Anls 1 (3) |
|
| |
363 |
Numer Anls 2 (3) |
18-19 |
| |
|
|
______ |
| |
|
|
68-71 hrs |
| Information systems
option, 76-78 hours |
|
| Core
requirements, 49-51 hours |
|
| CS |
120 |
Comp Sci 1 |
4 |
|
121 |
Comp Sci 2 |
4 |
|
124 |
Discr Struct |
3 |
|
230 |
Org Arch 1 |
3 |
|
232 |
Data Struct |
3 |
|
324 |
Dsg Ana Algo |
3 |
| |
330 |
Org Arch 2 |
3 |
| |
334 |
Network Db |
3 |
|
427 |
Networks |
3 |
|
476 |
Op Systems |
3 |
|
497 |
Soft Eng 1 |
3 |
|
498 |
Soft Eng 2 |
3 |
| MATHS |
161 |
Appl Calc 1 (3) |
|
| |
or |
|
|
| |
165 |
Calculus 1 (4) |
3-4 |
|
162 |
Appl Calc 2 (3) |
|
| |
or |
|
|
| |
166 |
Calculus 2 (4) |
3-4 |
| |
217 |
Lin Algebra |
4 |
|
221 |
Pbty Stats (3) |
|
| |
or |
|
|
| ECON |
221 |
Bus Stats (3) |
3 |
|
|
|
______ |
|
|
|
49-51 hrs |
| ISOM |
135 |
Bus I S |
3 |
| |
311 |
Int Ent Sys |
3 |
| 9 hours from |
|
| ISOM |
300 |
Proj Mgt (3) |
|
| |
415 |
Inf Sys Mgt (3) |
|
| |
430 |
Ent Rs Pln 1 (3) |
|
| |
431 |
Ent Rs Pln 2 (3) |
9 |
| 12 hours
from |
|
| CS |
335 |
Prog Lang (3) |
|
| |
339 |
Seminar (3) |
|
| |
345 |
G U I (3) |
|
| |
347 |
Net Security (3) |
|
| |
397 |
N-Tier Arch (3) |
|
| |
430 |
System Prog (3) |
|
| |
436 |
Database Dgn (3) |
|
| |
438 |
Graphics (3) |
|
| |
446 |
Sys Admin (3) |
|
| |
449 |
Perim Sec (3) |
|
| |
455 |
Data Mining (3) |
|
| |
456 |
Image Proc (3) |
|
| |
457 |
Appl Cryptog (3) |
|
| |
470 |
Thy Cmptn 1 (3) |
|
| |
499 |
Regs Hnrs (3) |
|
| MATHS |
362 |
Numer Anls 1 (3) |
|
| |
363 |
Numer Anls 2 (3) |
12 |
| |
|
|
______ |
| |
|
|
76-78 hrs |
|
|
|
|
| Cooperative education
option |
|
| Complete one of the above options |
68-78 |
| 12 hours from |
|
| CS |
369 |
Profes Exper (1-4) |
12 |
|
|
|
_____ |
|
|
|
80-90 hrs |
|
To
begin a program in computer science the student must have a
mathematical background strong enough to take the first required
calculus course. Students
are encouraged to take the MATHS 165, 166 calculus sequence in
place of MATHS 161, 162. This
will add 2 hours to the program.
MATHS 215 substitutes for CS 124.
ECON 221 substitutes for MATHS 221.
Students who pursue the information systems option should
elect to take ECON 201 as part of the University Core Curriculum
requirements. |
(back to top)
| MINOR
IN COMPUTER SCIENCE, 26 hours |
|
| PREFIX |
NO |
SHORT TITLE |
CR HRS |
| MATHS |
161 |
Appl Calc 1 |
3 |
| CS |
120 |
Comp Sci 1 |
4 |
|
121 |
Comp Sci 2 |
4 |
|
124 |
Discr Struct |
3 |
|
230 |
Org Arch 1 |
3 |
|
232 |
Data Struct |
3 |
| 6 hours from |
|
| CS |
300 |
LAN WAN (3) |
|
|
330 |
Org Arch 2 (3) |
|
|
335 |
Prog Lang (3) |
|
|
345 |
G U I (3) |
|
| MATHS |
362 |
Num Anls 1 (3) |
6 |
|
|
|
______ |
|
|
|
26 hrs |
| Other
calculus courses may substitute for MATHS 161 with departmental permission. Students
electing CS 330 or MATHS 362 must meet the mathematics prerequisites for the courses. MATHS 215 substitutes for CS 124. |
(back to top)
MINOR IN COMPUTER APPLICATIONS,
18-20 hours |
|
| PREFIX |
NO |
SHORT TITLE |
CR HRS |
| CS |
104 |
Intro Comp |
3 |
|
233 |
Micro Sys |
3 |
|
276 |
Survey Op Sys |
3 |
| 9-11 hours
required from below with a minimum of these from each group. |
|
| Programming
electives, 1 or 2 courses from |
|
| CS |
110 |
Intro C S (3) |
|
|
116 |
Visual Prog (3) |
|
|
120 |
Comp Sci 1 (4) |
|
|
121 |
Comp Sci 2 (4) |
|
| Application
electives, 3 or 6 hours from |
|
| CS |
204 |
PersonalComp (1) |
|
| |
205 |
Multimed Prog (1) |
|
| |
206 |
Digital Img (4) |
|
| |
236 |
Db Tech (3) |
|
|
300 |
LAN/WAN (3) |
9-11 |
|
|
|
______ |
|
|
|
18-20 hrs |
| Mathematical
prerequisites for programming courses must be met. |
(back to top)
|
MINOR
IN COMPUTER SECURITY, 18-19 hours |
|
| PREFIX |
NO |
SHORT TITLE |
CR HRS |
| CS |
110 |
Intro C S (3) |
|
| |
or |
|
|
| |
120 |
Comp Sci 1 (4) |
3-4 |
|
203 |
Intro Secur |
3 |
|
300 |
LAN/WAN (3) |
|
| |
or |
|
|
|
427 |
Networks (3) |
3 |
|
446 |
Sys Admin |
3 |
| 6 hours from |
|
| CS |
246 |
Malware (3) |
|
|
249 |
Forensics (3) |
|
|
347 |
Net Security (3) |
|
|
449 |
Perim Sec (3) |
|
|
457 |
Appl Cryptog (3) |
6 |
|
|
|
______ |
|
|
|
18-19 hrs |
(back to top)
| MINOR
IN WEB TECHNOLOGY, 15 hours |
|
| PREFIX |
NO |
SHORT TITLE |
CR HRS |
| CS |
110 |
Intro C S |
3 |
|
116 |
Visual Prog |
3 |
|
236 |
Db Tech |
3 |
|
310 |
Web Prog |
3 |
|
397 |
N-Tier Arch |
3 |
|
|
|
______ |
|
|
|
15 hrs |
| MATHS 108
is prerequisite of CS 116,
but may be waived with equivalent experience elsewhere, such as high
school algebra. |
(back to top)
COURSES:
COMPUTER SCIENCE
(CS)
104 Introduction to Computers. (3)
Introduction to the
microcomputer as a word processing, spreadsheet, database, and
communications tool. Intended for those in other disciplines. Hardware
and software trends, opportunities, and responsibilities in computing
are discussed. Lecture and laboratory.
Not open to students who have
credit in ISOM 125.
110 Introduction to Computer
Science. (3)
A broad survey of computer science including its history, local and
Internet applications, programming languages, and computer architecture.
Internet examples will be used throughout. Includes use and writing of
programs. A first exploration of the study of computing.
Prerequisite: MATHS 108 or 125 or 201 or the equivalent.
Not open to students who have credit in CS 120 or the equivalent.
116 Visual Programming. (3)
Introduction for non-computer science majors in structured computer programming using a
language such as Visual Basic. Modular programming techniques with emphasis on the
creation of graphical user interfaces.
Prerequisite: MATHS 108 or 125 or 201 or equivalent.
120 Computer Science 1. (4)
Introduction to programming using a
high-level language and an established programming paradigm. Emphasis on
developing problem-solving skills and programming techniques. Topics
include control structures, built-in data structures, simple sorting and
searching, procedural abstraction, and paradigm-specific concepts and
constructs. Required open-lab and closed-lab assignments bring theory to
practice.
Prerequisite: MATHS 112 or equivalent.
121 Computer Science 2. (4)
Continuation of Computer Science 1.
Strong emphasis on object-oriented paradigm and related problem-solving
skills and programming techniques. Topics include recursion, dynamic
data structures and related algorithms, sorting and searching, file
processing, and using standard libraries in chosen object-oriented
environment. Open-lab and closed-lab assignments are required.
Prerequisite: CS 120.
124 Discrete Structures. (3)
Introduction to topics in discrete
structures for computer science majors. Topics include propositional and
predicate logic, sets, induction, recursion, functions, combinations,
permutations, recurrence relations, Boolean algebra, and finite state
machines. Applications of these topics to computer science are
discussed.
Prerequisite: CS 120.
203 Introduction to Computer Security.
(3)
Introduction to network infrastructure, security threats, organization
of file systems, encryption and decryption algorithms, authentication
algorithms, programming and deployment of firewalls, intrusion detection
systems, and virtual private networks, forensics, malicious software,
and system administration.
Prerequisite: CS 110 or 116 or 120.
204 Personal Computing. (1)
Topics include home networking,
hardware and software trends, digital media, storage formats such as MP3
and MPEG4, ubiquitous computing, ethics, digital rights management, and
personal entertainment devices. Includes laboratory use of common tools
and devices.
205 Multimedia Programming. (1)
Introduction to end-user
multimedia programming for Internet deployment. Includes laboratory use
of common software tools, such as Flash and ActionScript, for creation,
manipulation, and network transfer of multimedia content.
206 Digital Imaging for the Web. (1)
Understanding multimedia
compression algorithms and storage formats, such as JPEG, PNG, TIFF, and
BMP, and their applications to the Web. Includes laboratory use of
common software tools such as Photoshop and Dreamweaver for creation,
manipulation, and network transfer of graphics and Web pages.
230 Computer Organization and Architecture 1. (3) Performance
measurement and benchmarking, assembly language, machine language,
integer and floating-point arithmetic, processor architectures, register
sets, and microprogramming.
Prerequisite: CS 121, 124.
232 Data Structures. (3)
Topics include: balanced trees and
heaps; advanced sorting algorithms; hashing; graph representation and
algorithms; and asymptotic analysis of algorithms. Prerequisite: CS 121,
124; MATHS 161.
233 Microcomputer System Architecture. (3)
Elements of microcomputer systems architecture and organization. Topics
to be discussed include data representation, digital logic, instruction
sets, assemblers, processors, memory, and input/output.
Prerequisite: CS 110 or 116 or 120 or equivalent.
Not open to students who have credit in CS 330.
236 Computer Database Techniques. (3)
Introduction to use of relational database systems; design and
development of database applications. Construction of user interfaces
for data entry. Graphical and textual SQL database queries. Generating
reports in various formats. Includes hands-on labs.
Prerequisite: CS 104 or equivalent.
Not open to students who have credit in CS 334 or 436.
246 Malware and Malicious Mobile Code. (3)
Discusses malware such as viruses, worms, Trojan horses, as well as
other forms of malicious mobile code. Prevention, detection, and removal
of such software. Covers general principles and specifically common
manifestations of such software in a Windows environment.
Prerequisite: CS 203.
249 Computer Forensics. (3)
Introduction to digital forensics as applied to gathering evidence of
inappropriate behavior on a computer. Includes an examination of
prominent file system architectures and search algorithm techniques,
physical characteristics of magnetic media, secure deletion
methodologies, and cryptology.
Prerequisite: CS 203.
269 Service Learning. (1-3)
Students arrange
computer-based projects on a volunteer basis for a non- profit
organization. Students must submit a project plan and obtain supervisor
approval before registering. Requires verification of project
completion. Offered credit/no credit only.
Prerequisite: one of CS 110
or116 or 120; permission of the department chairperson.
276 Survey of Computer Operating Systems. (3)
An introduction
to computer operating systems with hands-on labs. Topics related to
concurrency, process and resource management, input/output control, and
design problems are discussed. Comparisons of current operating systems
will be studied.
Prerequisite: CS 233.
Not open to students who have
credit in CS 476.
299X Experimental/Developmental Topics. (3-6)
Topics relevant to the discipline. Course titles will be announced before each semester.
A total of 6 hours of credit may be earned.
300 Local and Wide Area Networks. (3)
An introductory
networking course with hands-on labs. LAN usage: file servers, print
servers, and database servers. LAN design: writing systems, protocols,
interconnection devices, and operating systems, WAN usage: file transfer
protocols and remote information systems. WAN design: leased phone
lines, protocols, and routers.
Parallel: CS 120 or 203 or 233.
Not open
to students who have credit in ISOM 417.
310 Web Programming. (3)
Advanced HTML, including XHTML,
Cascading Style Sheets, Java Script and Dynamic HTML. XML including DTDs
and XSL. Server side programming, security issues, and encryption-based
security mechanisms.
Prerequisite: CS 110 or 120.
315 Game Programming. (3)
Topics include active and passive
rendering, sprite animation, collision detection, audio playback, input
devices, ludology, and applications of artificial intelligence.
Prerequisite: CS 232.
324 Design and Analysis of Algorithms. (3)
Topics include:
advanced analysis of algorithms; dynamic programming; probabilistic
algorithms, examples of geometric, combinatorial, and graph algorithms,
pattern matching; introduction to NP-completeness.
Prerequisite: CS 232.
330 (333) Computer Organization and
Architecture 2. (3)
In-depth treatment of fundamentals underlying computer hardware design
and analysis. Topics include design and analysis of combinational and
sequential logic, data path, microprogramming, sequencing and control,
arithmetic unit, input/output subsystem, memory subsystem, performance
enhancement techniques, and trends and research. Prerequisite: CS 230.
334 (336) Networked Databases. (3)
Introduction to database
concepts using a relational database. Introduces client/server database
systems, client side and server side scripting, and technologies for
remote database access via the Internet. Projects reinforcing concepts
will be expected.
Prerequisite: CS 232.
335 Programming Languages. (3)
Study of principles of
programming languages. Emphasizes language paradigms and important
features, structures, characteristics, and formal syntax of modern
high-level programming languages. Examples of language in each paradigm
will be studied.
Prerequisite: CS 230, 232.
339 Advanced Topics Seminar. (3-6)
In-depth study of a
topic taught in a seminar format. Topics will be posted in the
department before registration. Prerequisite: permission of the
instructor or department chairperson.
A total of 6 hours of credit may
be earned.
Open only to juniors and seniors.
345 Graphical User Interfaces. (3)
Introduction to the
principles of design and implementation of user interfaces emphasizing
graphical user interfaces. Topics include design goals, user interface
standards, event-driven programming, application of object-oriented
design and programming to GUIs, menus, and dialog boxes.
Prerequisite:
CS 232.
347 Network Security. (3)
Topics include encryption,
decryption, protocols, viruses, network security, authentication, legal
and ethical issues, and security in operating systems, databases,
e-commerce, Internet, wireless. Algorithms, protocols and applications
such as RSA, DES, SSL, Firewalls, Digital Signatures, VPNs and emerging
topics will be explored. Prerequisite: CS 232.
369 Professional Experience. (1-4)
Professional computing experience in an approved program with computing facilities in
business and industry. Paid positions only. Experience may be through co-op, internship,
or part-time employment. Requires term activity report. Offered on a credit/no credit
basis only.
Prerequisite: permission of the department chairperson before
starting the experience.
A total of 16 hours of credit may be earned, but no more than 4 in any one semester or
term.
397 Multitier Web Architectures. (3)
Topics include n-tier
architectures, data access and application logic layers, Web
services, scalability, advanced XML, service-oriented architectures,
object access protocols, and Web site administration and security.
Projects will be used to reinforce concepts. Prerequisite: CS 310
and either 236, or 334, or 436.
427 Distributed Processing and Networks. (3)
The hardware and
software of computer networks and distributed processing. Develops the
important design parameters and a general design methodology.
Prerequisite: CS 232.
430 Systems Programming.
(3)
Considers the computer system from the points of view of its architecture, operating
system, and applications. Topics include processor organization, peripheral devices, I/O
programming, system programs, monitor services, file organization, and real-time
applications.
Prerequisite: CS 333.
436 Database Design. (3)
Fundamental concepts of designing,
using, and implementing database systems and applications. Topics
include: database modeling and design, the languages and facilities
provided by the database management systems. Class programming includes:
Oracle PL/SQL, loader, JDBC, embedded SQL in Java, Oracle Web
development, JavaServer Pages, and Java Servlets.
Prerequisite: CS 232
and either 310 or 335.
438 Computer Graphics. (3)
Methods of developing, modifying,
and rendering graphics displays. Emphasizes the design and writing of
graphics software for both two- and three-dimensional displays.
Knowledge of a structured high-level language is required. Prerequisite:
CS 232.
446 System Administration. (3)
Creating user accounts, local
user authentication, network user authentication with encryption, filesystem and fileserver access control, configuration of Web servers,
Web server authentication, and traffic encryption. Prerequisite: CS 300
or 427.
449 Network Perimeter Security. (3)
Router-based security
systems including firewalls, virtual private networks, and intrusion
detection systems. Network address translation, perimeter networks,
encrypted tunnels, bastion hosts, port scan detection, anomaly
detection. Prerequisite: CS 300 or 427.
455 Data Mining. (3)
Introduction to data mining algorithms,
implementations, and applications. Topics include data preprocessing,
clustering analysis, data classification, mining association rules,
complex data mining, Web mining, and new applications in data mining.
Prerequisite: CS 324, 335.
456 Image Processing. (3)
Project based, dealing with the basic
principles of digital image processing and computer vision. Topics:
digital image formats, geometric operations on digital images,
filtering, histogramming, binarization of grayscale images, labeling
binary images, perimeter and area determination, thinning operations,
object recognition using global features, edge detection processes, and
other topics as time permits.
Prerequisite: CS 232.
457 Applied Cryptography. (3)
Introduction of basic principles and application of cryptography.
Topics include encryption, decryption, private and public key systems,
and their mathematical foundation: divisibility and Euclidean
algorithm, arithmetic of congruences, and large prime numbers.
Projects are implementations of related algorithms. LISP and JAVA are
recommended languages.
Prerequisite: CS 335.
470 Theory of Computation 1. (3)
Mathematical logic; alphabets
and languages; finite automata, regular and nonregular languages,
Kleene’s theorem; regular grammars; pushdown automata and context-free
grammars; Turing and Post machines; recursive and recursively enumerable
languages; the Chomsky Hierarchy.
Prerequisite: CS 232.
476 Operating Systems. (3)
The functions and structure of computer operating systems, processors, memory, and device
management. Concurrency and process synchronization. Input/output handling, device
drivers, and disk scheduling. File systems, operating system design philosophy.
Prerequisite: CS 232.
497 Software Engineering 1—Systems Analysis. (3) Software life
cycle, software engineering concepts, systems analysis phase of life
cycle. Introduces and applies structured methods to a project. The
output of the project is a systems specification from which a software
system can be designed and developed. Taken in the final year of the
major.
Prerequisite: senior standing.
498 Software Engineering 2— Design
and Development. (3)
Studies the design, development, and testing
phases of the software life cycle. Introduces the latest appropriate
structured methods and applies them to a software project. This project
will take a system specification and develop software from it. Spring
only. Must take CS 497 in preceding fall.
Prerequisite: CS 497.
499 Readings and Honors. (3)
Special advanced studies of computer science topics not taught in other courses.
Prerequisite: permission of the department chairperson.
Open only to juniors and seniors.
(back to top) |
|