Ball State University
Welcome to Ball State University
Site Map and Department Index
Search the Ball State website
E-mail Ball State University

Catalog Home Page
collegelist_back.gif (921 bytes)

Academic Colleges:
College of Sciences and Humanities


Department Programs:
Interdepartmental

 

A-C
Anthropology
Biology
Chemistry
Computer Science
Criminal Justice and Criminology

E-H
English
Geography
Geology
History
M-N
Mathematical Sciences
Modern Languages and Classics
Natural Resources and Environmental
Management

P-S
Philosophy and Religious Studies
Physics and Astronomy
Physiology and Health Science
Political Science
Psychological Science
Social Work
Sociology
Speech Pathology and Audiology
 
 
 
 
 
empty space
Sciences and Humanities
Department of Computer Science
Programs:
Major: Computer Science (see overview below) (options: Computer science; Hardware systems; Information systems; Cooperative education)
Minors: Computer Science; Computer SecurityComputer 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)

Home. | Departments. | Feedback.