Computer Science Courses

CS 100 - Introduction to Programming Concepts and Languages (3 hours)
Gen. Ed. FS
Core Curr. QR
An introduction to programming concepts and languages for non-Computer Science (CS) majors. Topics include the structure and design of algorithms, variables, constants, data types, arithmetic operations, selection and repetition structures, functions, input/output, arrays, structures, files, libraries. Students will design, write, test and run computer programs using a modern programming language as the development tool. Prerequisite: MTH 109 or higher

CS 101 - Introduction to Programming (4 hours)
Gen. Ed. FS
Core Curr. QR
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 higher

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. Prerequisite: A grade of C or better in CS 101.

CS 140 - Advanced Programming Concepts and Languages (3 hours)
Advanced programming concepts and languages appropriate to computer science and computer information systems. Topics include dynamic memory management, garbage collection, advanced object-oriented concepts, generic programming, exception handling, recursion, overloading. Prerequisite: CS 102

CS 141 - Introduction to Python Programming (3 hours)
An introduction to programming in Python for majors and non-majors. Topics include basic conditional logic, string manipulation, functions, reading/writing with simple files and exceptions. Popular data structures like sets, tuples, lists and dictionaries will be covered. Packages like pandas and numpy will also be presented. Students will design, write, test and run computer programs using Python and within an integrated development environment.

CS 210 - Advanced Data Structures and Algorithms (3 hours)
Advanced topics in object-oriented programming with an emphasis on advanced data structures, algorithms, and software development. Prerequisite: grade of C or better in both CS 102 and CS 140 or equivalents; MTH 120 or equivalent.

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. Prerequisite: CS 210 or CIS 210 or equivalents; MTH 122 or equivalent.

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 140 or equivalent.

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. Prerequisite: 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 or CIS 210 or equivalent.

CS 360 - Fundamentals of Data Science (3 hours)
Introduction to the knowledge acquisition and discovery process. Cleaning and analyzing data, building machine learning models, model validation and testing, and visualization. A number of machine learning algorithms are introduced such as regression, naive Bayes, decision trees, association rules, and clustering. Feature selection and transformation. Introduction to Distributed Databases and Big Data. Programming languages, such as R and Python are covered at an accelerated pace, as the course assumes as prerequisites two semesters of programming. Emphasis is on the use of such languages for data analysis and modeling. Prerequisite: CS 101 and CS 102 or equivalent.

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 210 or CIS 210 or CS 360 or equivalent. Consent of instructor for all other students.

CS 390 - Introduction to Software Engineering (3 hours)
Core Curr. EL,WI
Software life cycle and its phases, analysis, process models, design, human-computer interaction and graphic user interface development, testing, verification, validation, tools and applications, and evolution of software systems. Prerequisite: CS 210 or CIS 210 or equivalent.

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

CS 462 - Machine Learning (3 hours)
Machine learning and intelligent systems. Covers the major approaches to ML and IS building, including the logical (logic programming and fuzzy logic, covering ML algorithms), the biological (neural networks and deep learning, genetic algorithms), and the statistical (regression, Bayesian and belief networks, Markov models, decision trees and clustering) approaches. Students use ML to discover the knowledge base and then build complete, integrated, hybrid intelligent systems for solving problems in a variety of applications. Cross listed with CS 562. Prerequisite: CS 210 or CS 360 or equivalent, and one of the following courses in statistics: MTH 111 or MTH 325 or equivalent.

CS 463 - 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. Cross-listed with CS 563. Prerequisite: CS 210 or CS 360 or equivalent, and one of the following courses in statistics: MTH 111 or MTH 325 or equivalent.

CS 472 - Distributed Databases and Big Data (3 hours)
Designing and building enterprise-wide data warehouses. Cover topics related to large distributed databases, including designing distributed databases, replicating data, and concurrency. NoSQL, object-oriented, and multimedia databases and their query languages. Cross-listed with CS 572. Prerequisite: CS 370, CS 210 or CS 360 or equivalent.

CS 480 - Social and Professional Issues in Computing (2 hours)
Core Curr. WI
Introduction to the social and professional issues and practices that arise in the context of computing. Prerequisite: CS 210 or CIS 210 or equivalent; or consent of instructor.

CS 481 - Professional Practicum in Computer Science (0-3 hours)
Special projects under staff supervision on professional practicum in computer science, with near-term economic benefit. Repeatable to a maximum of 3 credit hours. Prerequisite: CS or CIS junior or senior student in good standing; consent of department chair.

CS 490 - Capstone Project I (3 hours)
Core Curr. EL,WI
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. Prerequisite: CS 370, CS 390 or equivalents

CS 491 - Capstone Project II (1-3 hours)
Core Curr. EL
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. Prerequisite: CS 490.

CS 493 - Web and Mobile Software Systems (3 hours)
Advanced topics of complex Web-based and mobile software systems: programming methodology, software engineering, components, architectures, services, requirements analysis, design and development models, integrated development environments, testing, quality, platforms. Cross listed with CS 593. For cross listed undergraduate/graduate courses, the graduate level course will have additional academic requirements beyond those of the undergraduate course. Prerequisite: CS 390 or equivalent; or consent of instructor.

CS 497 - Topics in Computer Science (3 hours)
Topics of special interest in computer science area which may vary each time course is offered. Repeatable under a different topic for a maximum of six semester hours. Prerequisite: Consent of instructor.

CS 498 - Directed Individual Studies in Computer Science (1-3 hours)
Individual study or research/development project under supervision of a CS&IS faculty member. May be repeated under a different topic once. Repeatable to a maximum of six semester hours. Prerequisite: Consent of instructor.

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. If needed, course should be taken during first regular semester at Bradley. Credit for this course does not count towards graduation requirements in any graduate program within the Department of Computer Science and Information Systems. Prerequisite: Graduate standing. 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. Prerequisite: Graduate standing in CS or CIS, or senior standing in CS or CIS, or a grade of C or better in both MTH 120 and CS 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. Prerequisite: Graduate standing in CS or CIS, or senior standing in CS or CIS, or CS 101 and MTH 207 and MTH 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. Prerequisite: Graduate standing in CS or CIS, or senior standing in CS or CIS; or MTH 224 or MTH 345, and CS 510 or 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. Prerequisite: Graduate standing in CS or CIS, or senior standing in CS or CIS, or CS 210 or CIS 210 or equivalent and 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: Graduate standing in CS or CIS, or senior standing in CS or CIS, or CS 210 or CS 310 or equivalents.

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 or CIS 210 or equivalent.

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: Graduate standing in CS or CIS, or senior standing in CS or CIS, or 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). Prerequisite: Graduate standing in CS or CIS, or senior standing in CS or CIS, or 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: Graduate standing in CS or CIS, or senior standing in CS or CIS, or CS 531 or equivalent.

CS 541 - Python Programming for Data Science (3 hours)
This course will cover Python programming constructs and features, including basic conditional logic, string manipulation, functions, reading/writing with simple files and exceptions, and basic data structures, including sets, tuples, lists and dictionaries. Additionally, this course will focus on Python programming for natural language processing, machine learning, and data science applications. Packages like pandas and numpy will also be presented. Students will design, write, test and run computer programs using Python and within an integrated development environment. Prerequisite: Graduate Standing in Data Science and Analytics or Computer Science or Computer Information Systems.

CS 560 - Fundamentals of Data Science (3 hours)
Topics covered include knowledge acquisition and discovery process, building machine learning models, model validation and testing, and visualization. A number of machine learning algorithms are introduced such as regression, naive Bayes, decision trees, association rules, and clustering. Feature selection and transformation. Introduction to Distributed Databases and Big Data. Programming languages, such as R and Python are covered at an accelerated pace. Emphasis is on the use of such languages for data analysis and modeling. Prerequisite: Graduate Standing in Data Science and Analytics or Computer Science or Computer Information Systems.

CS 561 - Artificial Intelligence (3 hours)
Pattern recognition, search strategies, game playing, knowledge representation; logic programming, uncertainty, vision, natural language processing, robotics, programming in LISP and PROLOG. Advanced topics in artificial intelligence. Cross-listed with CS 461. For cross-listed undergraduate/graduate courses, the graduate-level course will have additional academic requirements beyond those of the undergraduate course. Prerequisite: Graduate standing in CS or CIS. Consent of instructor for all other students with graduate standing.

CS 562 - Machine Learning (3 hours)
Machine learning and intelligent systems. Covers the major approaches to ML and IS building, including the logical (logic programming and fuzzy logic, covering ML algorithms), the biological (neural networks and deep learning, genetic algorithms), and the statistical (regression, Bayesian and belief networks, Markov models, decision trees and clustering) approaches. Students use ML to discover the knowledge base and then build complete, integrated, hybrid intelligent systems for solving problems in a variety of applications. Cross listed with CS 462. For cross-listed undergraduate/graduate courses, the graduate-level course will have additional academic requirements beyond those of the undergraduate course. Prerequisite: Graduate standing in CS or CIS. Consent of instructor for all other students with graduate standing.

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. Cross-listed with CS 463. For cross-listed undergraduate/graduate courses, the graduate-level course will have additional academic requirements beyond those of the undergraduate course. Prerequisite: Graduate standing in CS or CIS. Consent of instructor for all other students with graduate standing.

CS 571 - 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: Graduate standing in CS or CIS, or senior standing in CS or CIS, or CS 210 or CIS 210 or equivalent.

CS 572 - Distributed Databases and Big Data (3 hours)
Designing and building enterprise-wide data warehouses. Cover topics related to large distributed databases, including designing distributed databases, replicating data, and concurrency. NoSQL, object-oriented, and multimedia databases and their query languages. Cross-listed with CS 472. For cross-listed undergraduate/graduate courses, the graduate-level course will have additional academic requirements beyond those of the undergraduate course. Prerequisite: Graduate standing in CS or CIS, and CS 571. Consent of instructor for all other students with graduate standing.

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: Graduate standing in CS or CIS, or senior standing in CS or CIS, or CS 390 or equivalent.

CS 591 - Software Project Management (3 hours)
Methods of PMBOK-based management of software systems design and development projects, including systems view, main project management process groups and knowledge areas, management plans, project metrics and estimates, tools for project management, project reports and documentation. Cross listed with CIS 491 and CIS 591 courses. For cross listed undergraduate/graduate courses, the graduate level course will have additional academic requirements beyond those of the undergraduate course. Prerequisite: Graduate standing in CS or CIS, or senior standing in CS or CIS, or CS 390 or equivalent, or consent of instructor.

CS 592 - Requirements Development (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: Graduate standing in CS or CIS, or senior standing in CS or CIS, or CS 210 or CIS 210 or equivalent, or consent of instructor.

CS 593 - Web and Mobile Software Systems (3 hours)
Advanced topics of complex Web-based and mobile software systems: programming methodology, software engineering, components, architectures, services, requirements analysis, design and development models, integrated development environments, testing, quality, platforms. Cross listed with CS 493. For cross listed undergraduate/graduate courses, the graduate level course will have additional academic requirements beyond those of the undergraduate course. Prerequisite: Graduate standing in CS or CIS, or senior standing in CS or CIS, or CS 390 or equivalent.

CS 594 - Capstone Project for Data Science (3 hours)
Applies the concepts and skills learned by Data Science and Analytics graduate students at Bradley University. Students are required to work on a team on a significant Data Science project. Prerequisite: Graduate Standing in Data Science and Analytics or Computer Science or Computer Information Systems.

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. Prerequisite: Graduate standing in CS or CIS, or 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: Graduate standing in CS or CIS, or CS 514 or equivalent.

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. Prerequisite: Graduate standing in CS or CIS, or 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: Graduate standing in CS or CIS, or CS 330 or equivalent.

CS 681 - Professional Practicum in Computer Science (0 hours)
Special projects under Smith Career Center supervision on student's professional practicum in corporate/business environment in computer science, with near-term economic benefit. Satisfactory/Unsatisfactory. Minimum of 5-10 hours per week required. Prerequisite: Graduate CS or CIS student in good standing; consent of department chair and graduate program director.

CS 690 - Advanced Topics in 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. Prerequisite: Graduate standing in CS or CIS, or CS 590 or CS 591 or equivalents, or consent of instructor.

CS 697 - Advanced Topics in Computer Science (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 for a maximum of 6 semester hours. Prerequisite: Consent of instructor.

CS 698 - Directed Individual Studies in Computer Science (1-3 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 credit hours. Prerequisite: Consent of instructor.

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

This is the official catalog for the 2021-2022 academic year. This catalog serves as a contract between a student and Bradley University. Should changes in a program of study become necessary prior to the next academic year every effort will be made to keep students advised of any such changes via the Dean of the College or Chair of the Department concerned, the Registrar's Office, u.Achieve degree audit system, and the Schedule of Classes. It is the responsibility of each student to be aware of the current program and graduation requirements for particular degree programs.