Course Descriptions

CS 100 Introduction to Information Technology   3 CR
An introduction to computing and data processing for non-computer science majors. This course is half theory and half hands-on application using Microsoft Office. It includes word processing, spreadsheets, databases and some work with the Internet. This course provides the knowledge and understanding necessary to communicate effectively in the personal computing environment of business today. Non-majors only.

CS 101 Web Design and Visual Tools for non majors   3 CR
This course aids in the understanding of the design and production of web sites. It presents the design elements that go into web page development. Students browse sites and identify good design elements. They construct their own web page early on and allow it to evolve throughout the semester. Prerequisite: CS 100 or permission of department chair. Non-majors only.

CS 102 Multimedia for non majors   3 CR
This course aids the non-programmer in the understanding of multimedia authoring, incorporating text, graphics, sound and video. It discusses design and planning elements that go into multimedia development. Students use Flash and some of the scripting language, ActionScript, to choreograph media objects onto a stage using a score. Prerequisite: CS 100 or permission of department chair.

CS 104 Digital Animation and Gaming for non majors   3 CR
This class will create electronic games using digital animation and timeline control. Topics covered include: creating gaming objects with drawing and color tools; timeline-based animation techniques; controlling screen action with buttons; integrating sound into a game; publishing and exporting a game to the web.

CS 106 Introduction to Information Technology for Business Administration for non majors   3 CR
An introduction to computing and data processing for non-computer science majors. This course is half theory and half hands-on application using Microsoft Office. It includes spreadsheets, databases and presentation software and provides the knowledge and understanding necessary to communicate effectively in the personal computing environment of business today. For Business Administration majors.

CS 110 Introduction to Computer Science   3 CR
An introduction to programming logic, using a suitable introductory programming language. This course presents an overview of major programming concepts (selection, loops, input-output operations, procedures and functions) and serves as an introduction to the Unix operating system and Unix-based editors. For computer science majors with no previous programming experience. Prerequisite: computer science major or permission of department chair.

CS 111 Introduction to Structured Programming   3 CR
A first course in programming using a structured programming language. Topics include iteration, selection, procedures, functions and arrays with the use of flowcharts and modules. Presents applications in both business and scientific areas. Prerequisite: CS 110 or permission of department chair.

CS 112 Data Structures   3 CR
A continuation of CS 111 using a structured programming language to implement multidimensional arrays, stacks, queues, linked lists and binary trees. Also introduces recursion and generic packaging. Prerequisite: CS 111

CS 113 Discrete Structures   3 CR
Presents mathematical concepts for computer science, including sets, relations and functions; partitions; order relations; countability; permutations and combinations; probability; recurrences; big-Oh notation; elements of abstract algebra such as groups, rings and Boolean algebras. Prerequisite: MA 006

CS 170 Introduction to Video Game Production 3 CR
This course provides an overview of video game production. The course covers the phases of game production, the role of the publisher and developer, and information on how to manage teams. In addition, information is presented on basic design elements that are used when creating the game concept. The course concludes with a discussion of marketing and public relations. Open to all majors. Prerequisite: None

CS 171 Introduction to Computer Gaming   3 CR
Designing the vector gaming environment; Storyboarding;  Tween and frame-by-frame animation;  Using functions to control animation timelines;  Using random number functions to instantiate digital objects;  Artifact movement utilizing vector plot points. Co-requisite: CS 111

CS 215 Computer Systems Organization with Assembler   3 CR
This course presents an overview of computer architecture and computer organization as they relate to computer science. Topics include computer components, interconnection structures, internal memory, instruction sets, number representation in computers, parallel processing and an elementary introduction to assembly programming. Prerequisite: CS 112

CS 232 Human-Computer Interaction   3 CR
Focuses on how developers and designers of computer systems can produce computers that are beneficial to the user and easy to use. Human computer interaction is the intersection of human behavior and computer technology. In understanding human behavior, developers can evaluate what makes the computer easy to learn and use. The course examines the ways people interact with computers and how to incorporate this knowledge into the design and evaluation of new technology. Prerequisite: CS 100 or CS 112

CS 233 Visual Basic   3 CR
Explores the use of controls and tools, forms, menus, frames, file browsers and buttons, creating windows inters for databases, linking to Windows and Excel, and writing and debugging Visual Basic code. Uses VB.net. Prerequisite: CS 112

CS 241 Advanced Programming Concepts Using “C”   3 CR
Covers advanced programming techniques in “C,” using pointers, data structures and recursion. Emphasis on functions and use of make files. Prerequisite: CS 112

CS 261 Programming for the Web   3 CR
An introduction to Web-enabling technologies, this course addresses web design with HTML code, Cascading Style Sheets and Layers, Photoshop and Java script. Problems and trends by webmasters today are also discussed. Prerequisites: CS 111 and sophomore status

CS 271 Advanced Computer Gaming   3 CR
An object-oriented approach to programming digital objects using Flash and Action Script 3.0.  These programming techniques will be applied to both arcade and adventure games.
Prerequisite: CS 171

CS 272 OOP with C# and Games   3 CR
An object-oriented approach to computer graphics using C#.  Topics covered will include:  classes, instantiation, event listeners, polymorphism, encapsulation, event handlers, functions and methods, and basic game logic.
Prerequisite: CS 271

CS 299 Special Topics I   3 CR
Various courses of current interest to the Computer Science major are introduced from time to time. Prerequisite: Sophomore status

CS 311 Database Design   3 CR
Explores fundamentals of database design theory and applications. Includes data models with emphasis on the relational model. Prerequisites: CS 112 and CS 215

CS 312 Software Engineering   3 CR
The study of software development methodology, both procedural and object oriented. This is a team project-based design course where teams develop software projects from requirements analysis through detailed design and testing. Umbrella activities such as configuration management, quality assurance, writing documentation, ethics and costing are covered. Automated software design tools are used and oral and written presentations required. Prerequisite: CS 311

CS 318 Project Course   3 CR
Students sign up for this senior project course one semester before the graduating semester, because of the independent study/work involved. Students work with a faculty member in the department and a mentor to define and implement an acceptable project.  The student is required to assess requirements, design software and write detailed documentation that illustrates and supports design choices.  Test plans, usability testing and prototypes are also required.  Students present their projects to the department faculty and public as the culmination of this project.  Prerequisites: Senior status and permission from Computer Science Department.

CS 319 Computer Ethics   3 CR
This course focuses on the ethical and social issues associated with computer technology such as privacy, theft, intellectual property, accountability, hacking and cracking, codes of ethics and professional responsibility. Students also examine philosophers such as Aristotle, Kant and Mill, and use their theories to support ethical debate and dialogue. This course is a senior level capstone course. It emphasizes both oral and written communication as students discuss and examine their own ethical beliefs in relation to society and technology. Prerequisites: Junior/Senior status, PH 101 or permission of instructor.

CS 331 Multimedia Applications   3 CR
This course aids in the understanding of multimedia authoring, incorporating text, graphics, sound and video. It discusses design and planning elements that go into multimedia development. Students use Flash and it ActionScripting to choreograph media objects onto a stage using a score. It is designed for students with programming experience. Prerequisite: CS 112

CS 333 Theory of Computer Gaming
Our students are good at building games. The gaming theory course asks them to add a new skill set: What makes my game effective for the player, and how is it different from any other art form? What will be particularly valuable to our students is to look at distinguishing characteristics of a computer game versus other art forms. The course asks the following questions: Why is narratology theory inadequate for the gaming situation? How does narratology help us in developing the importance of backstory? Is a computer game a cybertext, a rule-based system, a simulation? Some current theory asks the question of whether a computer game is just a film with an agent added to it. What is the distinguishing characteristic? Prerequisites: CS 271

CS 338 Systems Analysis and Design   3 CR
An advanced design course that studies the application of computer solutions to business problems. This is a project-based course where teams set milestones and present object-oriented analysis and design of their solutions. Oral and written presentations are required and automated software tools are used. Prerequisite: CS 312

CS 339 Networking and Data Communication   3 CR
The study of networks and data communication concentrating on the Internet model. This is a laboratory-based course that includes projects implemented on both Unix and Windows machines. Topics such as LANs, WANs and MANs; hardware, software, protocols, routing, circuit-switching and packet-switching networks, analog and digital systems, compression and error handling are among those studied. Students use a simulation package to design and simulate networks. Prerequisites: CS 338 or CS 341 and senior status.

CS 341 Analysis of Algorithms   3 CR
Emphasis on theory and techniques underlying the analysis of algorithms including big/little-Oh, graphs and networks, searching, sorting, recursion and classical algorithms. Prerequisites: CS 112 and MA 151

CS 348 The Anatomy of Programming Languages   3 CR
Studies the structure of programming languages, their similarities and their differences. It examines semantics and formal description of languages, names and bindings, modeling objects, expressions and evaluation, functions and parameters, control structures, functional languages, logic programming, types, modules and objects, generics and dispatching with inheritance. Students are expected to program in three different languages that illustrate the theory they are studying. An independent project will also be developed using one of these three languages. Prerequisites: CS 241 and CS 341

CS 349 Operating Systems   3 CR
Examines resource management, including memory allocation and management, virtual memory, process scheduling, protection, deadlock and concurrency, case studies and multiprocessing. Prerequisite: CS 341

CS 367 Managing, Securing and Designing Modern Networks   3 CR
Topics include wireless and mobile networks, multimedia networking, management, security and network design
Prerequisite:  CS 339

CS 368 Hands-On Network Security   3 CR
This course uses VMWare of Connectix Virtual PC to simulate different environments.  Network security topics include firewalls, public key infrastructure and vulnerability assessment. Prerequisite: CS 367

CS 371 Advanced Computer Graphics   3 CR
A game oriented programming course focusing on advanced graphics techniques using OpenGL and/or DirectX. Prerequisite:CS 272

CS 372 Building Computer Games   3 CR
In this class we explore how logic and creativity work together in the well designed computer game. Topics include: genres of games; character development and gameplay; new and developing gaming concepts; creation  and use of  gaming engines;  the role of sound and music; teaching a  game to think. Prerequisite:CS 371

CS 500 Introduction to Structured Programming   3 CH 
A first course in programming using a structured programming language. Topics include iteration, selection, procedures, functions and arrays with the use of flowcharts and modules.

CS 501 Data Structures   3 CH 
A continuation of CS 500 using the C++ programming language to implement multidimensional arrays, stacks, queues, linked lists and binary trees. Also introduces recursion and pointers. Prerequisite: CS 500

CS 502 C: Advanced Programming   3 CH 
Discusses advanced programming techniques with an emphasis on mathematical and scientific programming applications. Topics include: recursion, pointers and some advanced data structures. C language is introduced in this course.  Prerequisite: CS 501, CS 112 or equivalent.

CS 504 Introduction to Scripting (Python)  3 CH
This course will provide an introduction to structured programming and elementary data structures using the Python scripting language. Coding concepts, control statements, loops and branching structures are emphasized here.

CS 505 Computer Networks  3 CH
Prerequisite: CS 504 or permission of department. Students in this course will study networks and data communication concentrating on the Internet model. This is a laboratory-based course that includes projects implemented on both Unix and Windows machines using Wireshark. Students will review Hex and Binary number systems. Topics such as network architecture, the Internet Protocol Stack,  LANs, WANs and MANs; hardware, software, protocols, routing, circuit-switching and packet-switching networks, wireless networks, compression and error handling are studied.

CS 550 Dynamic Web Page Development   3 CH 
This course enables students to develop low-bandwidth visual effects for web pages. A variety of software will be employed to develop web sites and media for the web. Topics include: (1) web animation and interactivity using Macromedia Flash®, (2) vector-based graphic construction and digital compression using Macromedia Fireworks®, a graphic optimizing tool, and (3) dynamic web page construction using Macromedia Dreamweaver®, a visual HTML editor.  Prerequisite: CS 500. 

CS 551 Introduction to Object-Oriented Programming with Java   3 CH
This course provides an introduction to the fundamental concepts of object-oriented analysis (OOA), design (OOD) and programming (OOP), and how object-oriented languages differ from procedural languages. Notation is used to teach the concepts of abstraction, encapsulation, modularity, hierarchy and polymorphism. Prerequisite: CS 500

CS 552 Windows Interface Design (VB.NET)    3 CH
This course introduces the fundamentals of writing Windows applications, event-driven programming and the GUI. Topics include: dialogues, menus, controls, data types, scope and life of variables, objects and instances, fonts and graphics and database interfacing. Prerequisite: CS 500

CS 553 Web Design with Java Script   3 CH
This course shows how to embed Java “applets” into HTML pages, as well as create applets. The course covers the Java applet paradigm and the standard Java-class libraries. Students write Java applets, stand-alone applications. Pre or Co requisite: CS 500

CS 554 Fundamentals of Interactive Multimedia   3 CH 
Using Macromedia Director® students develop multimedia applications of their own design. This course explores principles for effective interactive multimedia design from concept definition, storyboarding, multimedia development and authoring to testing and revision. It will cover techniques to include sound, graphics, photographs, animation, video and text into multimedia presentations. Macromedia Director movies will be developed for use in authoring applications such as business presentations, interactive kiosks, CD-ROMs and Shockwave movies for the web.  Prerequisite: CS 500 

CS 555 Advanced Scripting with Interactive Multimedia   3 CH 
This advanced multimedia development course explores program control for effective design and delivery of interactive multimedia applications. Students will learn how to use Director's® full-feature scripting language "Lingo" to develop the interactivity and program control of multimedia projects. Xobjects, special code segments that control external devices, will also covered.  Prerequisites: CS 501 and CS 554 

CS 557 Web Programming with ASP.NET   3 CH 
This course covers Active Server Pages and how they allow for powerful web site creation by combining program code with standard HTML. The class is presented in a tutorial style that focuses on both theory and application. The student will successfully learn how program using Visual Basic Script, the most commonly used ASP programming language. The class will also cover other relevant topics such as integrating databases with a website and effective site functionality.  Prerequisites: CS 552 & CS 603

CS 558 Advanced Topics in ASP.NET   3 CH
Build on the basics of the first ASP.NET class and develop more efficient web applications. The class will focus on some advanced ASP.NET topics such as AJAX, Web Services, building Custom Components, Profiles, LINQ, and Web Parts. The class is presented in a tutorial style that focuses on both theory and application. The student will use either C# or VB.NET to program the ASP.NET web applications that access a SQL Server database.  Prerequisites: CS 557 

CS 559 C# Programming   3 CH
Introduces the .NET platform using C# which is a modern object-oriented language to build interfaces with applications for both windows and the web. Prerequisites: CS 552 

CS 560 Networking Applications   3 CH
This hands-on course provides an in-depth introduction to IP addressing, TCP/IP, routing of IP packets, internet protocol, TCP, DHCP, DNS, network management and a brief introduction to network security including the use of firewalls, proxy servers and footprint analysis.  Prerequisite: CS 621 

CS 561 Multimedia Authoring (Authorware)   3 CH 
This authoring course covers design and delivery of interactive multimedia using an icon-based product. Students use the authoring tool Authorware® to develop a variety projects: CBT, interactive kiosks, performance support applications, interactive magazines and catalogs, educational games and interactive education and information that can be delivered over intranets.  Prerequisite: CS 500 

CS 563 Animation for the Web 3 CH
An introductory web animation course utilizing Adobe Animate CC. Students will discover how this premier tool is used to produce interactive multimedia for the web and beyond. The course will cover the Animate interface and tools used to develop animations such as shape and motion tweening, motion guide path, masking, development of scenes,  movie clips and button symbols.  Students will create a variety of animations such as: animated cartoons, advertisements, games, and other interactive content to publish on a variety of platforms. Basic ActionScript will be covered in this class.  Prerequisite: CS 550 or permission of instructor

CS 570 Introduction to Video Game Production 3 CR 
This course provides an overview of video game production. The course covers the phases of game production, the role of the publisher and developer, and information on how to manage teams. In addition, information is presented on basic design elements that are used when creating the game concept. The course concludes with a discussion of marketing and public relations. Open to all majors. Prerequisite: None

CS 571 Advanced Computer Gaming   3 CH 
An object-oriented approach to programming digital objects using Flash and Action Script 3.0. These programming techniques will be applied to both arcade and adventure games. 

CS 572 OOP with C# and Games   3 CH 
An object-oriented approach to computer graphics using C#. Topics covered will include: classes, instantiation, event listeners, polymorphism, encapsulation, event handlers, functions and methods, and basic game logic.  Prerequisite: CS 571

CS 573 Advanced Game Programming   3 CH 
A game oriented programming course focusing on advanced graphics techniques using OpenGL and/or DirectX. Prerequisite: CS 572 

CS 601 Assembly Language Programming  3 CH 
Explores programming concepts at the interface of hardware and software: addressing, instructions, symbol tables, linkage, registers, ALU and CPU, anatomy of an assembler, relocatable code, macros, interrupts and debuggers.
Prerequisite: CS 501 or permission of instructor

CS 602 Advanced Data Structures and Algorithms   3 CH 
Explores the relationship between data structures and algorithms with a focus on space and time efficiency: review of recursion, data abstraction and complexity analysis, multilists, trees (including balanced binary trees, n-ary trees and B-trees), hash tables, external sorting, graphs and algorithm design techniques.  Prerequisites: CS 502, CS241 & MA151

CS 603 Database Design (Oracle) 3 CH 
Goals and techniques in the design, implementation and maintenance of large database management systems: physical and logical organization, file structures, indexing, entity relationship model, hierarchical, network and relational models, normalization, query languages and database logic.  Prerequisite: CS 501

CS 604 Advanced Software Engineering   3 CH 
Models and metrics for software engineering in the large: review of software life cycle models, software modeling tools, design and analysis of software subsystems, management of software projects, test plans, configuration control, reliability and metrics.  Prerequisite: CS 551

CS 605 Discrete Structures and Logic   3 CH
Reviews the mathematical concepts and foundations of logic for computer science: sets, relations and functions; Boolean algebras; graphs; propositional and predicate logic; notions of logical consequence and provability; soundness and completeness of inference methods; resolution; unification; and introduction to theorem proving.  Prerequisites: CS 501 and MA 151

CS 611 Operating/Multiprogramming Systems   3 CH 
Management of resources in a multi-user system: memory allocation and management, process scheduling, protection, concepts of concurrent processes, study of different operating systems and multiprocessing.  Prerequisite: CS 502 

CS 613 Structure of Programming Languages   3 CH 
Syntax and semantics of programming languages including: an introduction to theory of languages and grammars; concepts of design and implementation of programming languages; and the comparison of different language paradigms such as imperative, functional, logic and object-oriented.  Prerequisite: CS 602 

CS 614 Theory of Computation   3 CH 
The theory of the power and limitations of computation and computers: Turing machines, recursive and recursively enumerable functions, equivalence of computing paradigms (Church-Turing thesis), undecidability, intractability and introduction to NP-completeness.  Prerequisite: permission of the instructor. 

CS 615 Programming in Unix
Discusses main issues of Unix OS programming and administration. In particular, it explores a popular Unix text editor Emacs, Unix file system, process manipulation, regular expressions and their use, filters, and system administration and security. Prerequisite: CS611 or permission of the instructor

CS 620 Information Analysis and System Design   3 CH 
Design, analysis and management of information systems: system life-cycle management, hardware and software selection and evaluation, role of information systems in decision support and other functional areas of business, project management, systems development and analysis, module design and techniques to reduce system complexity.  Prerequisite: CS 501 

CS 621 Principles of Data Communication   3 CH 
Survey of modern data communication techniques, including: data communication and local networking, hardware such as terminals, modems, multiplexors, nodal and host processor architecture, packet switching, network control, protocols, software, and management and security.  Prerequisite: CS 501

CS 622 Network Security I   3 CH 
Is there a security problem in computing? How do IT and network managers interface with business managers to create a security system that meets the needs of both sides of the business? How does network security support the business mission and how many resources is business willing to give to support network security? This course addresses these complex issues. Among the topics covered are: conventional encryption and message confidentiality, public key cryptography and message authentication, authen- tication applications, e-mail security, IP security, Web security, firewalls, security in mobile networks, and other security issues.  Prerequisite: CS 621

CS 623 Advanced Network Security   3 CH 
This is the second course in security that emphasizes security at the system level. The course covers secure encryption, systems, program security (viruses and other malicious code), controls against program threats, protection in generalpurpose operating systems, trusted operating systems, database security, security in networks and distributed systems, administering security, and legal and ethical issues in security.  Prerequisite: CS 622

CS 624 Hands-On Network Security   3 CH 
Designed for IT graduate students, this course uses VMWare of Connectix Virtual PC to simulate different environments. It examines networking security topics, firewalls (using Linux), packet filters, NAT, PAT, socks and HTTP proxies; public key infrastructure (using Microsoft Certification Server), encryption algorithms, decrypting passwords, dictionary decryption, brute force decryption, certificate servers; and vulnerability assessment, identifying security holes, forensics, tracing, log analysis, Layer 5 vulnerabilities (Services/Daemons and OS), identifying denial of service attack (simulation), identifying a virus/work attack (simulation), packet monitoring (sniffing).  Prerequisites: CS 621 and CS 622

CS 625 Cryptography 3 CH 
Designed for CS graduate students, the course covers theoretical and practical aspects of modern applied computer cryptography. Topics include: block and stream ciphers; hash functions, data authentication, and identification; and digital signatures. Special emphasis is given to public-key cryptosystems. The course includes implementation of various encryption algorithms in different programming systems. Prerequisites: CS 622 or permission of the instructor. 

CS 626 Intro to Cyber-Security 3 CH
What is Cyber-Security? What is a threat and how do you protect against the constantly changing cyberworld? Securing an organization's cyber environment is everyone’s responsibility. This course will cover the following topics: Introduce Cyber-Security Concepts, Cyber-Security Threats, Cyber-Security Attack Types, Cyber-Security Attack History, Approaches to securing the organization, Protections from Cyber-Security Threats, Other security issues. Prerequisite: CS 622

CS 627 System Security 3 CH
How do you secure the critical infrastructure that supports our cyber-security landscape? What threats and attacks do systems constantly face? This course will address these complex issues in securing the system & applications that run in today’s organizations. Among the topics covered are: Secure System Hardening, Access Controls, Security System, Management, Secure Administration, Security Monitoring, Secure Back-ups, Application Security Concepts, Other security issues. Prerequisite: CS 622

CS 628 Security Management 3 CH
All of the new security technologies require good management to maintain ef-fectiveness. With so many new technologies, how do we make the security technology effective? Where do we start? How do we measure and plan to im-prove a company’s security posture? This course will address these complex issues about managing security within an organization. Among the topics cov-ered are: Policy & Information Security Program Development, Incident Response, Identity Access Management, Security Governance, Security Risk Management, Vulnerability Management, Security Metrics. Prerequisite: CS 622

CS 629: Ethical Hacking 3 CH
This course introduces students to the security threat of computer hacking and system vulnerabilities & exploits. The course will introduce techniques and hacking skills that blackhat hackers use to compromise systems. The class will teach students how to perform whitehat hacker and ethical hacking techniques to safeguard a computer network. Prerequisite: CS 622

CS 630: Cloud Computing 3 CH
This is an introductory course that aims to present a theoretical background in cloud computing related concepts, as well as helping students gain practical skills in using relevant technologies. Students are exposed to several important aspects in various different tools and techniques of cloud computing in general. Step-by-step case studies will allow students to analyze existing cloud solutions in appropriate detail. Prerequisite: CS 501

CS 631 Data Warehousing 3 CH 
This course will provide a comprehensive review of Data Warehousing technology. Areas of study include the evolution of the modern-day data warehouse, analysis and collection of business data requirements, dimensional modeling, the loading of data using Extration, Transformation, and Loading (ETL) processes, data quility issues, and reporting from the data warehouse using SQL and Online Analytical Processing (OLAP) techniques. Several Oracle lab experiments will be conducted to profice hands-on experience in the areas of data warehouse design, construction, data loading, and essential reporting techniques. Prerequisites: CS 603 

CS 632 Advanced Database Topics 3 CH 
This course will provide students with an advanced understanding of database technology. In addition to the entity-relationship model, alternate database models (such as EAV and OOD) will be investigated. Possible topics include indexing, optimization, XML, on-line analytic processing (OLAP), embedded SQL, locking techniques and parallel and distributed systems. The specific topics covered and focus of this course will change to reflect modern trends and the latest technology. Prerequisites: CS 603

CS 633 Advanced Database Programming 3 CH 
This course will provide students with a thorough understanding of database programming. Students will use the latest technology to create front end applications to hit large-scale backend databases. SQL and stored procedures will be used to retrieve data from various data stores. An emphasis will be placed on a layered approach to programming. User friendly design principles and business logic will be used to teach students how to implement large-scale Windows and/or Web applications. The specific technology used in this course will vary to reflect current trends in database programming technology. Prerequisites: CS 603

CS 635 Digital Forensics   3 CH
Prerequisite: CS 505 or permission of department. In this course, students will learn how to: Understand and differentiate between file systems and operating systems; Explain in detail the FAT file system; Be exposed to the NTFS file system; Identify Windows artifacts and registry artifacts; Understand hashing and its uses in digital forensics; Understand 4th amendment considerations when searching and seizing digital evidence (per CT law) chain of custody; Use hardware write blockers, varieties and uses; Perform data acquisitions using methods and tools discussed in classl Perform basic data recovery; Understand file signatures and its uses; Risk Assessment 

CS 636 Secure Programming Techniques in Java/.NET/JavaScript/SQL   3 CH
Prerequisite: CS 501 or CS 504. It all starts with programmers: every computer system today runs some type of software in its core and as a result is ground zero for all security concerns.  Using Microsoft’s proven Secure Development Lifecycle as a model, this course will provide an introduction on how to setup a secure development environment, go over best practice models and secure programming techniques in Java or .NET frameworks, as well as common web application languages such as client side JavaScript and SQL database programming.

CS 637 Professional Responsibility: Cyber security: Policies and Practice   3 CH
This course will examine the issues associated with cyber security from business, technical and ethical perspectives.  What does it mean to be a cyber-security professional? Topics include but are not limited to: network neutrality, corporate and government policies, digital divide, child pornography, intellectual property, hacking and phishing, malware as big business, treaties and their limits.  The course will also examine recent bills being considered by the US government as well as the EU and other countries.  Examples taken from the real world such as how to handle the cyber security of installed medical devices, insulin pumps, pacemakers, and the tradeoffs between providing external access for EMTs and keeping out hackers will be explored.

CS 638 Concepts in Dynamic and Script Programming   3 CH  
Prerequisite: CS 501 or CS 504 This course will provide an introduction to dynamic programming and scripting languages using [any dynamic language that can also be used for scripting such as Python, Perl, PHP, TCL, or LUA].  Topics covered include flow processing, regular expressions, binding, object oriented concepts, shell scripting, frameworks and design libraries, script debugging, and exception handling.

CS 639 Vulnerability Management   3 CH
Prerequisite: CS 505 or permission of department. This course will provide students with lectures on vulnerability & compliance management for multiple systems and allow them to perform hands-on experience with Tenable Nessus, one of the industry leading vulnerability and compliance scanning tools.  It will provide students with a working knowledge and understanding of vulnerability & compliance management.  With many new system & application vulnerabilities that get identified on a daily basis, and how to manage them.  The purpose of this course is to teach students how to identify vulnerabilities, plan to remediate them, and track to make sure that they do not return.

 
CS 640 Special Topics in Computer Science 3 CH 
One-time and first-time offerings of courses on current topics. Prerequisites: As determined at the time of course offering

CS 641 Securing the Cloud 3 CH
Cloud computing is rapidly becoming a popular choice for hosting everything from entire operating systems, and software, to service (SaaS) applications such as websites, databases, email, data backup, and so forth. The course will provide an introduction to cloud technologies and their best practices. Learn the unique challenges posed by this type of platform and how to properly configure and secure cloud based assets. Prerequisite: CS 627

CS 642 Securing the Client/Server 3 CH 
Clients and servers run Operating System (OS) software as well as many appli-cations with each presenting a unique concern from a security perspective. Get an in-depth look at how to properly harden today's most popular Operating Sys-tems: Microsoft Windows, Apple OS X, and Linux. This course covers built-in security features of each OS and how best to utilize these and other third party applications to setup a secure system. The course will also introduce how to secure services and applications provided with these OSes such as Sendmail and MS Exchange, MySQL and MS SQL Server, Apache and MS IIS. Prerequisite: CS 626

CS 644 Compiler Design 3 CH 
Essentials of artificial intelligence (AI); definition of AI; heuristic, adversary and other search methods for problem solving and games; principles of knowledge representation; AI languages; and survey of applications. Prerequisite: CS 220 or CS 602 or equivalent. 

CS 646 Computer Graphics 3 CH 
Reviews the principles of design and use of computer graphics: matrix algebra overview, basic drawing techniques, line and polygon clipping, linear transformations, projections, graphics standards and hardware, raster scan, refresh, storage, hidden line and surface elimination and shading. Prerequisite: CS 602 or equivalent

CS 648 Distributed Database Systems 3 CH 
Explores the problems and opportunities inherent to distributed databases: file allocation, deadlock detection and prevention, synchronization, update consistency, query optimization, fault tolerance, etc. Prerequisite: CS 603 and CS 611

CS 650 Principles of Natural Language Processing 3 CH 
Study of issues arising in computer processing of languages like English and solution techniques: overview of AI principles , significance of language structure in extracting meaning, ambiguities, parsing techniques, semantic issues, semantic models, pragmatics, text-based systems and case studies. Prerequisite: CS 642 or CS 613

CS 651 Principles of Knowledge- Based/Expert Systems 3 CH 
Survey of principles and practice of knowledge-based and expert systems: overview of AI search , rule-based systems, non-rule-based systems, uncertainty and handling of judgmental knowledge, issues of knowledge representation and knowledge representation languages, survey of classic expert systems and expert system shells. Prerequisite: CS 602 or CS 642

CS 652 Neural Networks 3 CH
 
Neural networks as a computation model complementary to symbolic AI: basic principles, history of neurocomputing, various models and their common ideas, applications in machine learning and pattern recognition, hybrid systems, etc. Prerequisites: CS 642 or CS 602 and MT 151

CS 654 Object-Oriented Programming Using C++ 3 CH 
Principles of OOP: encapsulation, polymorphism and inheritance. C++ is used as the main vehicle for getting the ideas across. Issues of multiple inheritance, persistence, etc. are covered, and comparison with other OOP languages are made, as time permits. Prerequisite: CS 502 or equivalent

CS 661 Game Design and Development using 3-D3 CH
Open GL and/or some advanced tools of DirectX or other appropriate software which will facilitate the integration of 3-D action and movement in a game de-signed for the course. The students will work in teams (if appropriate) to com-plete a 3-D game during the course. Prerequisite: CS 573

CS 662 Game Design, Development, and Implementation 3 CH
students work as a team to develop an innovative, original computer game. Group responsibilities include project planning and documentation, teamwork, presentations and demonstrations. Students learn the technical skills involved in game architecture, including advanced character animation and nesting, game physics, sound syncing and editing, lighting simulation techniques, and game balance. Special attention will be paid to emerging game development opportunities in education, professional training, medicine, advertising and scientific research. Prerequisite: CS 573

CS 663 Game Design for Mobile Devices 3 CH
Devices In this course students explore the complex process required to design and build content and games for mobile devices. Students will learn how to structure and optimize code as well as employ user interface controls. Memory-awareness, limited performance, security, and limited resources will be covered. Prerequisite: CS 662

CS 664 Advanced Topics in Multiplayer Gaming 3 CH
The course considers the technical, programming and creative aspects for developing an effective multi-player game. Topics covered include: virtual machines, connection techniques, live player chat, authoritative client and authoritative server choices, latency and clock simulation, lobby systems, real time competitive games, cooperative game play avatars, virtual worlds and user homes. Prerequisite: CS 661 and 662

CS 670 Research Project Seminar 3 CH 
Required for the non-thesis option. The student works with a faculty advisor in defining a short research or implementation project. For a research project, the student surveys relevant literature, critically analyzes the state of the art and possibly synthesizes improvements. For an implementation project, the student implements and tests a solution to the chosen problem. The project could involve a combination of research and implementation. At the end of the project, the student writes a report approved by the faculty member and makes a public presentation on the work. Prerequisites: As determined by the faculty advisor

CS 690 Thesis I 3 CH 
Required for the thesis option. The student works with a faculty advisor in defining a substantial research or implementation project. For a research project, the student surveys relevant literature, critically analyzes the state of the art and synthesizes improvements. For an implementation project, the student implements and tests a solution to the chosen problem, comparing it with other work, if any; the project could involve a combination of research and implementation. At the end of this course, the student should have a well-defined problem, have surveyed relevant literature and have made partial progress toward the completion of the work. The student should be ready to make a brief presentation of the work in progress, as required by the advisor. Also, by the end of this course, a proposal describing the work should be written and approved by a thesis committee chosen by the student and the advisor, according to University policy. Prerequisites: As determined by the faculty advisor

CS 691 Thesis II 3 CH 
A continuation of CS 690, required for the thesis option. By the end of this course, the student completes the work remaining in the project started in CS 690, as defined by the written proposal. A thesis must be written and defended in front of the thesis committee. The presentation portion of the thesis defense is open to the public. Prerequisite: CS 690