Computer Science Courses

CS 101 - Introduction to Programming (4 hours)
Introduces the fundamental concepts of programming 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 computing. 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 hours)
Introduction to concepts of object-oriented programming with review of control structures and data types and array processing. 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 sorting techniques, and an introduction to software engineering issues. Prerequisites: a grade of C or better in CS 101 or equivalent.

CS 140 - Programming in C++ (1 hour)
Introduction to C++ programming for students who are knowledgeable in an object-oriented language (most likely Java). Corequisite: CS 102.

CS 210 - Advanced Data Structures and Algorithms (3 hours)
Builds on the introduction to object-oriented programming begun in CS 101 and CS 102 (and CS 140) with an emphasis on algorithms, data structures, and software engineering. Prerequisites: a grade of C or better in CS 102 or equivalent; MTH 120.

CS 215 - Computability, Formal Languages, and Heuristics (3 hours)
Theory of computation and formal languages, grammars, computability, complexity, algorithms, heuristics, and foundations of intelligent systems. Prerequisites: CS 210; MTH 122.

CS 220 - Computer Architecture (3 hours)
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: CS 210.

CS 310 - Information Structures and Management (3 hours)
File organizations and access methods. Sort/merge operations; hashing schemes for storage and retrieval. Projects involve data validation; creation and updating of files; simulation and/or implementation of direct or indexed files. Prerequisite: CS 102.

CS 320 - Symbolic Logic (3 hours)
Logical systems; prepositional and predicate calculi. Truth tables, proofs, tautologies, principles of inference, Boolean algebra, DeMorgan's Laws, quantifiers, representations, and set theory. Cross-listed as PHL 320. Prerequisite: MTH 120.

CS 321 - Operating Systems (3 hours)
Fundamentals of operating systems concepts, design, and implementation. Topics include operating system components and structures, process and thread model, mutual exclusion and synchronization, scheduling algorithms, memory management, I/O controls, file systems, and security. Prerequisites: CS 220.

CS 330 - Net-Centric Computing (3 hours)
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. Multimedia data technologies, wireless and mobile computing, and event-driven programming. Prerequisite: CS 210.

CS 370 - Database Management Systems (3 hours)
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 databases, including relational algebra, various loading and reporting utilities, and the implementation of database management systems, e.g., how query optimization works. Prerequisite: CS 102.

CS 390 - Software Development (3 hours)
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 and its phases, basics of human-computer interaction and graphic user interface. Prerequisite: CS 210.

CS 410 - Directed Individual Studies (1-3 hours)
Individual project developed under supervision of a CS faculty member. May be repeated under a different topic once. Maximum of three semester hours per semester. Prerequisite: consent of department.

CS 412 - Topics in Computer Science (3 hours)
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.

CS 480 - Social and Professional Issues in Computing (2 hours)
Introduction to the social and professional issues and practices that arise in the context of computing. Prerequisites: CS 210

CS 481 - Professional Practicum in Computer Science (0-3 hours)

CS 490 - Capstone Project I (3 hours)
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 370, CS 390.

CS 491 - Capstone Project II (1-3 hours)
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 hours)
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 laboratory 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 semesters of programming experience.

CS 503 - Programming Methodology (3 hours)
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 121 102.

CS 510 - Numerical Methods (3 hours)
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 106 101; MTH 207 and 223.

CS 511 - Numerical Methods II (3 hours)
Continuation of CS/MTH 510: further techniques of integration, ordinary differential equations, numerical 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 hours)
Design 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: 210 or equivalent; one semester of statistics.

CS 516 - Programming Languages (3 hours)
Design concepts of high-level languages. Description languages; grammars and syntax; expressions and data structures; selection and control structures; constructs for input and output; subprograms and parameter communications. Prerequisite: CS 210 or 310.

CS 518 - Programming Language Translation (3 hours)
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. Corequisite: CS 516.

CS 520 - Advanced Computer Architecture (3 hours)
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 or equivalent.

CS 531 - Web Development Technologies (3 hours)
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). Prerequisites: CS 102 or equivalent.

CS 532 - Advanced Java Computing (3 hours)
Developing Web-based systems using J2EE Java technologies. Topics include Java Security, Java 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: CS 531 or equivalent.

CS 561 - Artificial Intelligence (3 hours)
Advanced topics in artificial intelligence; pattern recognition, search strategies, game playing, knowledge representation, logic programming, uncertainty, vision, natural language processing, robotics, programming in LISP and PROLOG. Prerequisite: CS 210 or equivalent.

CS 562 - Intelligent Systems and Applications (3 hours)
Gives the necessary background and practice 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 genetic algorithms), and the statistical approach (Bayesian networks, belief networks, Markov chain, Hidden Markov models, and statistical and neural-based clustering). Students will have the opportunity to build integrated, hybrid intelligent systems to solve problems in a variety of applications including in the medical domain, financial domain and stock market, and autonomous robotics systems. Prerequisites: CS 210 or equivalent; one course in statistics.

CS 563 - Knowledge Discovery and Data Mining (3 hours)
Brings together the latest research in statistics, databases, machine learning, and artificial intelligence that are part of the rapidly growing field of 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. Prerequisites: CS 210 or equivalent; one course in statistics.

CS 571 - Database Management Systems (3 hours)

CS 572 - Advanced Topics in Databases (3 hours)

CS 590 - Fundamentals of Software Engineering (3 hours)
Software engineering: software product; prescriptive process models; system engineering; analysis modeling; design engineering; architectural design; user interface design; testing strategies and techniques; software systems' implementation; software systems' maintenance. Prerequisite: CS 390 or equivalent.

CS 591 - Software Project Management (3 hours)
Software project management: large software systems' projects; project planning; project management concepts; managerial skills; software project metrics and estimates; software process metrics; software product metrics; project scheduling; CASE tools for software project management; software documentation. Prerequisite: CS 390 or equivalent.

CS 592 - Requirements Engineering (3 hours)
Covers topics including basic concepts and principles of software requirements engineering, the requirements engineering process - requirements elicitation, requirements analysis, requirements specification, system modeling, requirements validation and requirements management, and techniques, methods and tools for requirements engineering and software systems requirements 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 hours)
Software engineering of Web-based applications: Web engineering; formulation and planning of Web-based applications; 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: CS 390 or equivalent.

CS 610 - Advanced Topics in Computer Science (0-3 hours)
Special projects under staff supervision on advanced problems in numerical or non-numerical branches of computer science. May be taken more than once under different topics. Prerequisite: consent of instructor.

CS 611 - Directed Individual Studies (0-6 hours)
Individual study in an area of computer science relevant to the student's professional goals and not covered in a formal course offered by the department. May be repeated twice for a maximum of 6 hours credit. Prerequisites: consent of the department.

CS 611 - Directed Individual Studies (0-6 hours)
Individual study in an area of computer science relevant to the student's professional goals and not covered in a formal course offered by the department. May be repeated twice for a maximum of 6 hours credit. Prerequisites: consent of the department.

CS 612 - Automata, Computation and Complexity (3 hours)
Theory of formal languages and computability, Automata, Turing machines, grammars. Context free and context sensitive languages; parsing. Recursion theory; limits of effective computability, P and NP class of problems, NP-complete problems. Non Turing computable problems, reducibility, complexity. Prerequisites: CS 502 or equivalent.

CS 614 - Parallel Algorithms (3 hours)
Parallel algorithms for multi-processor computer architectures: concurrent programming, SIMD and MIMD systems, and time complexity. Prerequisite: CS 514.

CS 625 - Operating Systems Design (3 hours)
Advanced concepts in operating system design. Topics include process and thread management, virtual memory, interprocess communication, distributed systems, parallel and distributed file system designs, resource management, and security and protection. Prerequisites: CS 321 or equivalent.

CS 635 - Data Communications and Networks (3 hours)
Fundamentals of data communication, computer network architectures and protocols, wireless networks, network programming, and network security. Emphasis on OSI, TCP/IP, ATM, and IEEE 802 LAN layered architectures, and TCP/IP network programming. Prerequisite: CS 330 or equivalent.

CS 681 - Professional Practicum in Computer Science (0-3 hours)

CS 690 - Advanced Software Engineering (3 hours)
Special software engineering research and development projects under staff supervision. Emphasis on a specific topic and emerging technologies in the software engineering area. Prerequisites: CS 590 or CS 591.

CS 699 - Thesis in Computer Science (0-6 hours)
Computer science research and thesis preparation. Required of candidates choosing the thesis option. Total of 6 semester hrs. to be taken in one or two semesters. Prerequisite: consent of department chair.