100-200 Level Courses

CS-100 Computers and Society, (3 credits)

This course provides an introduction to the history of computing and how computers have effected society. Furthermore, it covers the basic computer skills needed to be truly computer literate in modern society. Topics include history of computing, the social context of computing, ethical issues in computing, computer security and privacy, the impact of the internet and the World Wide Web, an introduction to computer architecture and operating systems, word processing, spreadsheets, and data base management systems.
Prereq: None.  (Course not applicable to CS major)

CS-109 The Information Age: Its Impact on Chicago Culture, (3 credits)

The 21st century has seen the genesis of the Information Age. Advances in computer technology have made immediate access to information and sophisticated processing of information commonplace in business, science, medicine, education, various professional areas and many aspects of personal life. This course focuses on how this has impacted Chicago's culture and its diverse communities. This course fulfills the First Year Experience (FYE) requirement. FYE 109 courses are intended for Freshmen only. Students may not take more than one FYE 109 course.   Prereq: None.  (Course not applicable to CS major)

CS-200 Programming I (3 credits)

This course serves as an introduction to principles of computer programming.  It covers fundamental concepts including input/output, data types, arithmetic, relational and logical operators, branching, looping, and arrays.  Programming projects involving these concepts will be assigned for interactive applications, numeric computations, and analysis of data.  A common comprehensive final exam will be given in CS-200.  The date and time of the exam will be noted in the course syllabus.  Prereq: MATH-173.

CS-201 Discrete Structures, (3 credits)

Introduction to fundamental number theoretic, logical, algorithmic, combinatorics, and computational concepts from discrete structures and their applications to computer science. This course involves no programming. Prereq: MATH-173.  (NOTE, Math 251 may substitute for CS-201, however different prerequisites may apply. CS students should take CS-201 during the first semester in the CS Department.  In special cases, it may be taken during the second semester.)

CS-207 Programming II, (3 credits)

This course provides an in-depth study of the principles of object oriented programming, including Classes, Objects, Methods, Arrays, Inheritance, and Polymorphism.  Within this framework, the course will cover Sorting and Searching Arrays, Two-Dimensional Arrays, Exception Handling, File Input/Output, and an introduction to Recursion.  Emphasis is given to the design of algorithms and program development, involving both numeric computations and string manipulation techniques.  A common comprehensive final exam will be given in CS-207.  The date and time of the exam will be noted in the syllabus.  Prereq: CS-200

300 Level courses

CS-300 Client Side Web Development, (3 credits)

The course discusses web site design issues and the requirements of e-commerce. Furthermore, it covers the creation of web pages. Hands-on development and group projects are an essential part of this course. Prereq: CS-200.

CS-301 Computer Organization, (3 credits)

Representation of data, machine arithmetic, processor organization, instruction execution, assembly and machine languages, addressing mechanisms, macros, assembling, linking, loading, parameter passing and implementation of high level language constructs. Programming will be done using Turbo Assembler. Students will gain a vision of levels of abstraction in hardware and software, the nature of the Von Neumann machine and the nature of high level languages. Prereq: CS-200, CS-201.

CS-302 Systems Programming, (3 credits)

Introduction to systems programming, including use and implementation of assembler, macros, loaders, compilers and operating systems. Prereq: CS-301, CS-304, CS-308.

CS-304 Data Structures, (3 credits)

This course provides experience implementing and manipulating basic data structures, as well as analyzing their applications in Computer Science.  Topics covered will include:  Stacks, Queues, Linked Lists, Binary Tree Structures, Heaps, Graphs, and Sorting Algorithms.  Prereq: CS-201, CS-207.

CS-307 Programming Languages, (3 credits)

This course provides an introduction to fundamental concepts of programming languages, their structural definition and run time implementation.  It equips the students with the tools necessary for the critical evaluation of existing programming languages, and the learning of new ones.  In addition, it prepares students for the study of compiler design. Prereq: CS-304.

CS-308 Operating Systems, (3 credits)

A general overview of the ideas underlying operating systems. Included are traditional topics such as file systems, CPU scheduling, memory management and device scheduling, along with topics of more current interest such as deadlock handling, process synchronization and distributed systems. No single operating system is studied; examples are drawn from many sources. Prereq: CS-207, CS-301.

CS-310 Topics in Computer Science, (3 credits)

Topics which may be presented include: computer languages, new computer system and hardware developments, and new applications of computers. Prereq: Appropriate to content.

CS-311 Computer Architecture, (3 credits)

This course is intended for those students who wish to understand the architecture and operation of computer systems. Methods for interconnecting processors, memories and I/O devices are discussed. The addressing modes and instruction techniques for manipulation of more complex data structures such as queues, lists and trees are covered. Prereq: CS-207, CS-301.

CS-314 Independent study in Computer Science, (3 credits)

An opportunity for individual research or applications project under the direction of an advisor knowledgeable in the field of endeavor. The project will be designed by the student and his/her project advisor and must be approved by the chairperson of the department before project itself is undertaken. Prereq: Consent of the instructor.

CS-315 Modern Data Base Management, (3 credits)

Theoretical foundations and state-of-the-art data base management systems. The relational, hierarchical and network approaches to data base management systems and representative systems are described. User interfaces are emphasized. Prereq: CS-207.

CS-317 Event-Driven Programming, (3 credits)

This course serves as an introduction to techniques and tools for the design of graphical user interfaces and event-driven applications. Topics covered include layering, domain logics, form and control basics, custom controls, database mapping, and application embedded support. Students will be expected to apply these concepts in programming projects. Prereq: CS-207.

CS-319 WIP: Fundamentals of Software Engineering, (3 credits)

This course serves as an introduction to the life cycle of the software development process. Topics covered include each phase of the cycle, and techniques and paradigms that result in the successful realization of each stage. Students will be expected to apply these concepts in a large-scale project.  CS-319 fulfills the Writing Intensive Course requirement for CS majors. Prereq: CS-304, ENGL-101.

CS-320 Object Oriented Programming, (3 credits)

This course provides an introduction to Object Oriented Design (OOD) and Object Oriented Programming (OOP), which is a highly used contemporary programming paradigm. The three main features of OOD, namely encapsulation, polymorphism, and inheritance, are discussed. The student must implement these concepts in a project. Prereq: CS-304.

CS-321 Server Side Web Development, (3 credits)

This course is an introduction to techniques and tools for designing server side web applications. Topics covered include web applications flow, object oriented programming, design of classes, dynamic content, scripting languages, implicit objects, and database accessing. Students will be expected to apply these concepts in the development of a website. Prereq: CS-207, CS-300.

CS-322 Statistical Computer Program Packages, (3 credits)

This course provides an in depth study of modern statistical data analysis using such models as Binomial and Normal distribution, the Linear Regression model, Analysis of Variance, Nonparametric methods and Computer Random Sampling techniques using MINITAB and GPSS. In addition, students will become experienced in the actual implementation of statistical software packages such as MINITAB, SPSS, BMDP and SAS. (NOTE: MATH-365 may be substituted for CS-322; however, different prerequisites may apply.) Prereq: CS-200, MATH-275 or equivalent.

CS-323 Cyberlaw, (3 credits)

This course presents an introduction to the legal issues relating to the use of computers and the Internet. Topics covered include privacy, freedom of speech, intellectual property in cyberspace, encryption and interception of communication, computer crime, professional ethics and codes of conduct and work related ethical and legal issues. Prereq: None.

CS-324 Introduction to design of Algorithms, (3 credits)

An introduction to the design of algorithms. Methods for analyzing algorithms are discussed including an introduction to asymptotic notation. Several approaches to designing algorithms are covered using theory, examples and problems. Those approaches include divide-and-conquer, dynamic programming, the greedy approach, backtracking, and branch-and-bound. Different approaches are applied to the same problem to illuminate the relative advantages of the approaches. Prereq: CS-201 or MATH-251, and CS-304.

CS-325 Automata, Languages, and Theory of Computation, (3 credits)

This course discusses several models of computation, including finite automata, pushdown automata, and deterministic and nondeterministic Turing machines. The notions of undecidability, computational complexity, intractability, and NP completeness are also discussed. The course is mainly theoretical in nature, but some applications, such as finite state systems and parsing, will be discussed. Prereq: CS-201, CS-304.

CS-326 Computer Use for Numerical Methods, (3 credits)

An introduction to structured Fortran programming, Computational errors, Solving nonlinear equations, Solving sets of Equations, Determinants and matrix inversions, Interpolating polynomials. Prereq: CS-200,CS-201, MATH-185 or equivalent.

CS-327 Computational Methods in Biology, (3 credits)

Bioinformatics is the discipline that applies mathematics, statistics, computer science, chemistry, and biology to solving problems in biology using biological data sets.  The problems investigated are usually at the molecular level.  These problems include sequence alignment, genome assembly, models of evolution, and phylogenetic trees, analyzing gene expression data, and gene linkage analysis.  One of the most important statistical tools based in bioinformatics is the Bayesian network.  This course introduces the techniques used in bioinformatics, in particular Bayesian networks, and provides solutions to several bioinformatics problems.  Prereq.: CS-200, CS-201 or MATH-251, BIO-100 or BIO-201.

CS-329 Decision Theory, (3 credits)

This course covers probabilistic networks, influence diagrams, and decision trees, and their application to making decisions in the face of uncertainty. It addresses modeling one-time decisions and also modeling repeatable decisions as done by an expert system. An expert system is a system that makes the judgments and decisions of an expert. Classical examples of expert systems are systems that make financial decisions and ones that perform medical diagnoses. This course will concentrate more on the latter. Methods for building expert systems and for doing inference with them will be covered. 

CS-331 Computer Networks, (3 credits)

This course covers concepts in data communications, emphasizing protocols. An overview of all protocol layers will be covered, with emphasis on OSI and TCP/IP. Prereq: CS-207.

CS-332 Internet Protocols, (3 credits)

This course covers concepts related to Internet computer communication models. After the 5-layer Internet model is discussed, the Transmission Control Protocol along with Internet related Protocols (TPC/IP) is presented. Prereq: CS-331.

CS-334 Open Source Systems, (3 credits)

This course is an introduction to the open source domain, including the Linux operating system and other technologies. Topics covered include open source licensing, Linux administration, and characteristics of open source applications. Students will be expected to understand the main concepts, and become capable of researching available resources and participating in open source communities. Prereq: CS-308.

CS-335 Artificial Intelligence, (3 credits)

This course covers strong artificial intelligence methods, which have resulted in the development of systems that solve open problems in specialized domains.  Such methods include 1) AI models based on logical reasoning, in particular decision trees and learning decision trees, rule-based expert systems, semantics nets, and frames; 2) AI models based on probabilistic reasoning, in particular Bayesian networks and learning Bayesian networks, influence diagrams, and class probability trees; and 3) AI models based on emergent intelligence, in particular evolutionary computation and swarm intelligence.  Lastly, the course discusses an important endeavor in AI, namely language processing. Prereq: CS-304.

CS-336 History of Computing, (3 credits) 

This course discusses the history of computing beginning with the earliest computational devices and continuing to current technologies.  The history of computing is much more than the study of computers.  It also involves the study of how computing is done and approached and how it has evolved over time.  This course covers the following aspects of computing history:  technology, both hardware and software; business history; and sociological impacts and key turning points.  Within those aspects, trends and evolution are covered as well.  Prereq:  None.

CS-338 Science, Women, and Technology, (3 credits)

This course includes an overview of the women who have made major contributions to computing from Grace Hopper to Ellen Spertus.  Furthermore, it provides a life-course analysis of women in computing from an early childhood interest, through university, to graduate school and finally into the work place.  This analysis will provide the seed for research topic.  Each student will choose a research topic, conduct the research, and present the results to the class.  Prereq:  None.

CS-339, Fundamentals of Information Technology Project Management, (3 credits)

An Information System is a well-coordinated collection of technological and human resources that gathers and transforms data into information that enables decision making and process improvement within organizations.  Information Technology Project management is the application of knowledge, skills, tools, and techniques to project activities in order to meet project requirements.  This course serves as an introduction to these concepts.  Students will be expected to apply these tools and techniques on a semester-long project.  Coreq.: CS 319.

CS-340 Fundamentals of Computer Graphics, (3 credits)

This course provides a unified introduction to computer graphics and computer vision for students with an interest in imaging or digital visual arts. Topics covered include the fundamentals of display hardware and applications, interactive techniques and color models, 3D viewing pipeline, 3D polygon rendering (clipping, scan conversion, and visibility algorithms), illumination models, transparency, and ray-tracing. The student must write programs using these methodologies. Prereq: CS-304, Math 165.

CS-341 Parallel Computing and Distributed Systems, (3 credits)

This course works on the fundamental concepts of building systems that work across multiple computing platforms. The course includes topics of distributed operating systems and network protocols for process communication, synchronization, scheduling, and exception and deadlock resolution; understanding of client-server, web-based collaborative systems; parallel computing; concurrency issues; and API's for distributed application development. Several distributed computing environments are discussed and used in developing experimental projects in a cluster of networked computers. Building systems using cloud-based and service-oriented architectures may also be included.   Prereq: CS-304, CS 308.

CS-342 Introduction to Human Computer Interaction, (3 credits)

A good understanding of how a system/device interacts with its users is what differentiates a product that is technically sound from a usable one. HCI is the science that explores these interactions. HCI is at the intersection of many disciplines including cognitive psychology, linguistics, design and engineering. HCI considerations are increasingly cited as key factors in product design. In this course we will explore the science behind HCI and we will put parts of it into practice.  Prereq: None.

CS-343 Introduction to Natural Language Processing, (3 credits)

Computers have tried to understand humans since the beginning. Today, with social media, globalization and the widespread use of computing devices the task of understanding is facing new challenges. In this course the students will learn the core techniques used by computers to understand and generate language, as well as state of the art research in the field.  Prereq: CS-304.

CS-344 Introduction to Systems Administration, (3 credits)

This course covers the fundamentals of managing environments for distributed systems. Topics include aligning systems with business practices; distributed systems methodologies; infrastructure; communication tools; architectures; security; privacy; web development architectures.  Prereq: CS-331.

CS-345 Network Security, (3 credits)

This course discusses the principles and practice of network security applications and standards that are widely used on the internet and on corporate networks. Topics covered include cryptographic algorithms and protocols that underlie network security applications, network security tools, system-level security issues including the threat of intruders, virus countermeasures, the use of firewalls and trusted systems, IP security, electronic mail, and web security. Prereq: CS-308 or CS-408

CS-347, Mobile Application Development, (3 credits)

This course covers programming applications for mobile platforms.  Students will learn about mobile application environments and platforms and also how to design and develop applications to account for the limited screen size, memory, and access to the internet.  Students will incorporate graphics, networking, security, and media to create new, real world, practical applications.  Development, design, implementation, testing, debugging, and maintaining these applications will also be covered.  Students will use a variety of programming languages to create these applications.  Prereq:  CS-207, CS-300.

CS-355 Cryptography, (3 credits)

This course covers cryptography and a wide range of cryptographic applications. Theory discussed includes the design and analysis of cryptographic algorithms such as private key and public key cryptosystems used to secure data transmission and electronic system communications. Cryptographic applications such as digital signatures, entity identification, key exchange, and e-commerce transactions are discussed. Prereq: CS-324 or CS-404.

CS-360 Cybersecurity, (3 credits)

The basic concepts in computer security as well as the mechanisms located at the heart of a computer system are presented. Topics covered include privacy and personal information, computer crime, legal and ethical issues in computer security, identification and authentication, cryptography, operating system security, network security, World Wide Web security, and database security. Prereq: CS-308.

CS-361 Secure Programming and Testing, (3 credits)

This course details how to design, build, and test programs in order to make them more secure.  The course will discuss the following topics: concepts of secure programming (including risk management), techniques and tools used to build secure systems, techniques to test for security in programs and systems, specific vulnerabilities to avoid (and how to do so), and how to test for those vulnerabilities.  Specific common classes of programming-induced vulnerabilities will be included such as buffer overflows, race conditions, off-by-one errors, integer overflow, and improper use of randomness functions.  Prereq.: CS-360.

CS-390 Supervised Field Study, (3 credits)

(Internship) The student completes a computer programming project for an institution at the institution's site. The institution defines the project which must be approved by the department of computer science for the purpose of satisfying the course requirement. The project should take approximately 168 hours to complete. Prereq: at least 24 credit hours in computer science courses with average of "B" or better, consent of sponsoring institution and consent of the department (NOTE: CS-390 is repeatable for up to 9 credit hours, however maximum of 3 credit hours will be considered for inclusion in CS major/minor )

CS-391 Supervised Field Study II, (3 credits)

(Internship) Same as CS-390 except the project should take approximately 336 hours to complete. NOTE: Maximum of 3 credit hours of internship credit will be considered for inclusion in CS major/minor )

CS-392 Supervised Field Study III, (9 credits)

(Internship) Same as CS-390 except the project should take approximately 504 hours to complete. NOTE: Maximum of 3 credit hours of internship credit will be considered for inclusion in CS major/minor )

400 Level Courses (Advanced/Graduate)


CS-400 Discrete Modeling and Analysis, (3 credits)

This course provides the necessary tools to develop the mathematical maturity through the study of important topics such as Combinatorial Analysis, Discrete Structures, Algorithmic Thinking and Mathematical reasoning. Topics include Advanced Enumeration Methods, Recurrence Relations, Graph Theory, Automata, Formal Languages, Proof Techniques, and Probability and statistics. Prereq: CS-201 or CS 405.

CS-401 Software Engineering, (3 credits)

This course is on modern software engineering. It covers the complete software development process such as requirement specifications, design, coding, testing and maintenance. Various software engineering methodologies for development of large scale quality software will be presented in this course. Prereq: CS-400 and CS-404.

CS-402 Advanced Systems Programming, (3 credits)

Study of systems programming tools, their use and their construction. Includes development of an integrated systems programming environment consisting of a processor simulator, an assembler, and a loader. Prereq: CS-400 and CS-404.

CS-403 Authoring Techniques in CAI, (3 credits)

The study of various concepts associated with Computer Aided Instruction and Authoring. Students will develop software for instructional purposes in their own area of interest. Languages such as PODIUM, VB, HTML, JAVA and LOGO writer can be used. Prereq: Graduate standing.

CS-404 Analysis of Algorithms, (3 credits)

This course provides various methodologies to design and analyze algorithms. Topics include incremental, divide-and-conquer, dynamic programming, greedy, backtracking, and branch-and-bound methodologies. Additional topics include sorting and searching algorithms, and computational complexity and Intractability. Prereq: CS-304;  Co-req: CS-400.

CS-405 Applied Discrete Structures, (3 credits)

Applied Discrete Structures provides necessary elements of discrete structures to study computer science at our graduate level. Topics include Logic and Proofs, Set Theory, Number Theory, Combinatorics, Probability, Relations and Functions, Boolean Algebra and Matrices. (Background course; not for credit toward M.S. degree.) Prereq: MATH-106 or equivalent.

CS-406 Object Oriented Development, (3 credits)

This course covers the principles of computer programming using an object oriented programming language. Students will get extensive programming experience in designing algorithms and implementing programs that use the fundamental constructs of an OOP language in many application areas. (Background course; not for credit toward M.S. degree.) Prereq: MATH-106 or equivalent.

CS-407 Elements of Data Structures, (3 credits)

This course covers the elements of data structures and algorithms that form the basis of all major computer science applications. Topics include stacks, linked lists, queues, trees, graphs, heaps, recursion and various sort and search algorithms. Students will become experienced in the design and coding of programs that use these structures and algorithms in a variety of applications. (M.S. Credit in Teacher Endorsement Concentration only.) Prereq: CS-207 or CS-406.

CS-408 Advanced Operating Systems, (3 credits)

Advanced operating system design and construction concepts such as memory processor, process and secondary device management, synchronization and communication, security and protection, system performance and evaluation, network, distributed and fault-tolerant systems. Study of operating systems highlighting these concepts. Prereq: CS-400 and CS-404.

CS-409 Topics in Compiler Theory, (3 credits)

This course describes the procedures used to develop a compiler for a high level language. First a simple high level language is defined and a simple program is written using this language. Then the concepts of a scanner and a parser are presented and students write the software for a scanner and a parser. Gradually, software for all phases of a compiler is developed and by the end of the semester, every student has developed a compiler that can produce assembly code for a microprocessor for a program written in a predefined simple high level language. Prereq: CS-400 and CS 404.

CS-410 Special Topics in Computer Science, (3 credits)

This course will treat a specific topic in computer science varying from semester to semester. Topics offered will depend on faculty and student interest. Prereq: Graduate standing and consent of instructor.

CS-411 Professional Computing, (3 credits)

This course provides an in-depth study of the history of computing and how computers have affected society. Furthermore, it covers the computer skills, basic to advanced, needed to teach others to be truly computer literate in modern society. Topics include history of computing, the social context of computing, ethical issues in computing, computer security and privacy, the impact of the internet and the World Wide Web, an introduction to networks, an introduction to computer architecture and operating systems, word processing, spreadsheets, and database systems. Prereq: Graduate Standing.

CS-412 Web Application Development, (3 credits)

This course serves as an introduction to different techniques and tools for the design of web applications. Topics covered include web applications flow, object oriented programming, design of classes, dynamic content, scripting languages, implicit objects, and database accessing. Students will be expected to understand and apply these concepts into the generation of sample websites. Prereq: CS-400 and CS 404.

CS-413 IT Project Management, (3 credits)

IT Project Management is the discipline that applies management principles to the development of information system projects. It uses techniques developed by Industrial Engineers and used by other engineers and business managers to bring in projects within time and budget. This course supplements Software Engineering by focusing on the management aspects of investing in the development of information systems. Prereq: CS-400 and CS 404.

CS-414 Independent Study, (3 credits)

An opportunity for advanced study under the direction of an advisor knowledgeable in the field. The area of study will be selected by the student and his/her advisor, and must be approved by the department chair. Prereq: Graduate Standing and Consent of Instructor.

CS-415 Design of Data Base Systems, (3 credits)

This course covers various concepts associated with design and construction of data base systems. Topics include data base architecture, relational model, relational languages (SQL), normalization theory, Entity-Relationship theory and physical data base design. Students will develop a simple data base system. Prereq: CS-400 and CS 404.

CS-416 Artificial Intelligence and Robotics, (3 credits)

This course serves as an introduction to aspects of Artificial Intelligence applied to the robotics field. Students will learn different techniques to approach problems using simple robotics. Students will be expected to understand the main concepts, research for available resources, and participate in projects where these concepts will be applied. Prereq: CS-400 and CS 404.

CS-417 Video Game Programming, (3 credits)

The aim of this course is to explore the basics behind game programming and the gaming industry, including elements of computer graphics and computer vision as well as advanced stereoscopic computer applications. Following the nature of computer/video games development as a team effort, for this course, we shall design and implement one large class project for a game prototype as a team. Prereq: CS-400 and CS 404.

CS-419 Informatics, (3 credits)

Informatics is the discipline that applies the methodologies of science and engineering to information. It concerns organizing data into information, learning knowledge from information, learning new information from knowledge, and making decisions based on the knowledge and information learned. This course concerns computational methods for analyzing data and processing information in applications to business decisions. Prereq: CS-400 and CS 404.

CS-420 Object Oriented Design, (3 credits)

This course provides students with a solid foundation in object oriented design (OOD) and programming (OOP), a contemporary and highly used programming paradigm. OOD involves the presentation of three main concepts: encapsulation, polymorphism, and inheritance. These concepts and implementation techniques are presented in an object oriented programming language and students become experienced in OOD projects. Prereq:CS-400 and CS 404.

CS-426 Exploring Numerical Methods, (3 credits)

This course covers the elements of the design and analysis of numerical methods. Topics include errors in numerical methods, floating-point and interval arithmetic, measuring the efficiency of numerical methods, interpolation and curve fitting, numerical differentiation, numerical integration, and numerical optimization. Prereq: CS-200 or CS 406; MATH-203.

CS-430 Queueing Theory in Communication Networks, (3 credits)

Queueing Systems, Birth and Death models, Markovian Queues, The M/G/1 model, Earlang's equation, Models of computer and telecommunication systems. Prereq: CS-304 or CS-407.

CS-431 Digital Telephony, (3 credits)

Advantages over analog telephony, voice digitalization, digital transmission and multiplexing, switching, networks (synchronization, control and management), traffic analysis terrestrial vs. satellite. Prereq: CS-304 or CS-407.

CS-435 Expert Systems, (3 credits)

An expert system is a program that is capable of making the judgments and decisions of an expert. An example of an expert system is a program that does medical diagnosis. This course covers methods for designing expert systems and for reasoning using expert systems. Prereq: CS-400 and CS 404.

CS-440 Computer Graphics, (3 credits)

Graphics Hardware. Scaling and data charting. Representation of two dimensional objects , Translation and rotation of objects. Two dimensional line clipping. 3-D object representation. Perspective in 3-D object representation. Line clipping and hidden line face removal in 3-D. Efficiency consideration in hidden line and face removal. Lighting and shading. Reflections and shadows, transparent and translucent surfaces. Interactive graphics and associated hardware and software. Software for event handling and device sampling. The light pen with locator pick problems and echoing. Prereq: CS-400 and CS 404.

CS-442 Topics in Network Design, (3 credits)

Protocols for computer networks. Performance requirements, evaluation and analysis. Case studies of actual networks. Prereq: Graduate Standing.

CS-450 Advanced Computer Architecture, (3 credits)

Computer system structure and design issues such as ALU design, arithmetic algorithms, memory hierarchy, control, microprogramming, instruction sets, addressing and I/O. Comparison of specific examples of computer models and selected topics in parallel processors. Prereq: CS-301; CS-308 or CS-408; CS-311

CS-455 Cyber Risk Management, (3 credits)

This course teaches students the principles of managing risk as it relates to information security in an organization engaged in computing and internet operations. Students will be able to use their knowledge of security and privacy issues to develop tools for analyzing and managing cyber risk and creating a policy framework for information security. Prereq: CS-201 or CS-405; CS-207 or CS-406.

CS-460 Computer Security, (3 credits)

Study of existing hardware and software techniques for implementing security. Passwords, encryptions and authorization schemes. Special security problems presented by distributed and network environment. Prereq: CS-400 and CS 404.

CS-470 Pattern Recognition, (3 credits)

Statistical and semantical methods of pattern recognition. Image processing with industrial and commercial applications. Applications to sound and visual identification problems. Prereq: CS-409 or Consent of Instructor.

CS-490 Master's Project, (3 credits)

The completion of a large scale software project and associated documentation or thesis. Topic for project is chosen in conjunction with project advisor. Prereq: 30 hours of graduate credits.

CS-5901 Thesis Hours, (1 credit)

Student conducts and writes a thesis in Computer Science. This is an alternative to CS-490 for those who want to pursue a more ambitious project. Master's Thesis requires the approval of the instructor, the Department Chair, and the appropriate College dean.

CS-5902 Thesis Hours, (2 credits)

See course description for CS-5901.

CS-5903 Thesis Hours, (3 credits)

See course description for CS-5901.