Course Descriptions

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.  Prerequisite: CS 501

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 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