Computer Science (COMP)
Discover, search, courses!
COMP 102 Web Design and Multimedia Publishing (3 Credit Hours)
This course introduces foundations of the world wide web technology, HTML, and multimedia publishing techniques. Topics include HTML syntax, CSS, XML, RSS, and various multimedia formats.
An understanding of the technologies behind web sites and the ability to use them effectively
Outcomes
An understanding of the technologies behind web sites and the ability to use them effectivelyCOMP 104 Computer Animation (3 Credit Hours)
The course introduces techniques for understanding and developing dynamic and interactive media by using sound, motion, images, and text. Relevant software knowledge areas are covered.
Ability to publish created animated media projects to the web in a process that involves understanding human interface design
Outcomes
Ability to publish created animated media projects to the web in a process that involves understanding human interface designCOMP 111 History of Computing (3 Credit Hours)
The social and organizational history of humanity is intricately entangled with the history of technology in general and the technology of information in particular. Advances in this area have often been closely involved in social and political transformations. While the contemporary period is often referred to by such names as the Computing and Information Age, this is the culmination of a series of historical transformations that have been centuries in the making. This course will provide a venue for students to learn about history through the evolution of number systems and arithmetic, calculating and computing machines, and advanced communication technology via the internet.
COMP 112 Loyola University Technology Ensemble (1 Credit Hour)
Loyola University Technology Ensemble (LUTE) is a performing ensemble with a composition & engineering component. Its primary instrumentation is electronic or electroacoustic, encompassing digital and analogue electronic instruments, live coding, circuit bending, and repurposing of devices or objects, etc. LUTE will appear in public at least once during each semester.
Collaborate to compose, engineer, and perform unique technology-driven musical experiences; design interface modules for electroacoustic performance; encode musical ideas in software or digital musical instruments; perform publicly
Outcomes
Collaborate to compose, engineer, and perform unique technology-driven musical experiences; design interface modules for electroacoustic performance; encode musical ideas in software or digital musical instruments; perform publiclyCOMP 122 Introduction to Digital Music (3 Credit Hours)
Computers and digital tools have been seeping into the world of music, this course aims to explore this newly formed territory. This course is intended for students who wish to learn more about electronic music, signal processing, and algorithmic music composition.
Knowledge Area: Quantitative Knowledge
Understanding of the physics of musical sound and digital audio, facility with hands-on applications of algorithmic music composition and musicology, and ability to design and render digital instruments
Outcomes
Understanding of the physics of musical sound and digital audio, facility with hands-on applications of algorithmic music composition and musicology, and ability to design and render digital instrumentsCOMP 125 Visual Information Processing (3 Credit Hours)
This course, intended primarily for non-majors, provides an introduction to computer programming using a language well-suited to beginning programmers and practical applications, e.g., Visual Basic.Net. Restricted to Freshman or Sophomore standing OR majors other than COMP-BS AND CSEC-BS AND SWEN-BS.
Knowledge Area: Quantitative Knowledge
Understanding of computer mechanisms for representing and analyzing numerical and logical information and the power of programmability; practical ability to implement useful computing tools
Outcomes
Understanding of computer mechanisms for representing and analyzing numerical and logical information and the power of programmability; practical ability to implement useful computing toolsCOMP 141 Introduction to Computing Tools and Techniques (3 Credit Hours)
This course introduces students to the Unix shell environment and essential tools for succeeding in computer science degrees. Students who complete this course will develop fluency in the Unix (Linux) environment, which is essential for solving problems in academic, research, and professional computing disciplines.
COMP 150 Introduction to Computing (3 Credit Hours)
The world overflows with electronic data. This course introduces programming in a simple, powerful language like Python, with selection, repetition, functions, graphical effects, and dynamic interaction with the Internet, plus connections to lower level computer organization and computer implications in the wider world. Restricted to Freshman or Sophomore standing OR majors other than COMP-BS AND CSEC-BS AND SWEN-BS.
Knowledge Area: Quantitative Knowledge
Course equivalencies: ACCOMP 150/COMP 150
Empowerment to manage and transform masses of data; understanding of technical, societal, and ethical issues involved
Outcomes
Empowerment to manage and transform masses of data; understanding of technical, societal, and ethical issues involvedCOMP 163 Discrete Structures (3 Credit Hours)
Pre-requisites: MATH 117 or placement
This course covers the mathematical foundations of computer science, including such topics as complexity of algorithms, modular arithmetic, induction and proof techniques, graph theory, combinatorics, Boolean algebra, logic circuits, and automata.
Interdisciplinary Option: Bioinformatics
Course equivalencies: COMP211/COMP163
The student will be prepared for the study of advanced ideas in computer science, from cryptography to databases to algorithms to computer architecture
Outcomes
The student will be prepared for the study of advanced ideas in computer science, from cryptography to databases to algorithms to computer architectureCOMP 170 Introduction to Object-Oriented Programming (3 Credit Hours)
Pre-requisites: MATH 118 or Placement or COMP 125 or COMP 141 or COMP 150 or COMP 180 or permission or SCPS student; Prior experience with a procedural programming language is sufficient to obtain permission to enroll
This programming intensive course with its weekly lab component introduces basic concepts of object-oriented programming in a language such as Java.
Interdisciplinary Option: Bioinformatics
Course equivalencies: COMP170/ISOM/INFS370
Ability to take a problem, break it into parts, specify algorithms, and express a solution in terms of variables, data types, input/output, repetition, choice, arrays, subprograms, classes, and objects; ability to judge a good program
Outcomes
Ability to take a problem, break it into parts, specify algorithms, and express a solution in terms of variables, data types, input/output, repetition, choice, arrays, subprograms, classes, and objects; ability to judge a good programCOMP 171 Scripting Languages (1 Credit Hour)
Scripting languages are rapid prototyping languages that are used extensively. This course covers the principles, syntax and semantics of widely used scripting languages.
Students will learn how a program can be put together quickly and efficiently to solve problems
Outcomes
Students will learn how a program can be put together quickly and efficiently to solve problemsCOMP 180 Computing and Data Analysis for the Sciences (3 Credit Hours)
Scientific computing emphasizes data analysis and visualization in a scientific context - analyzing data quickly for understanding by the individual, sharing automated workflows with collaborators, and preparing results for later publication. This course will emphasize rapid, interactive, and reproducible collaborative analysis of data for scientific contribution. Students are required to have taken MATH 117: College Algebra as a prerequisite or to have been placed in MATH 118: Precalculus or higher. At the end of this course, students will be well versed in the use of a specific, interactive environment for data analysis (likely Python, R, or MATLAB as indicated in the course notes) for analyzing data and sharing results.
Interdisciplinary Option: Neuroscience
COMP 215 Object Oriented Programming with Mathematics (3 Credit Hours)
This is an introductory programming course for students interested in mathematics and scientific computing. Students will program primarily in a general object-oriented language such as Python, with supplementary exercises in a computer algebra system. Examples will be drawn primarily from applications of calculus, elementary number theory, and cryptography.
Course equivalencies: X-COMP215/MATH215
Students will learn basic scripting and object-oriented programming, with the goal of being able to solve mathematical and scientific problems
Outcomes
Students will learn basic scripting and object-oriented programming, with the goal of being able to solve mathematical and scientific problemsCOMP 231 Data Structures & Algorithms for Informatics (3 Credit Hours)
Pre-requisites: (MATH/COMP 215 OR COMP 170) AND (COMP 141 OR AMTH-BS OR MATH-BS) Advisory: MATH/COMP 215 preferred
This course introduces data structures and algorithms that are essential for data science and informatics. Here we will focus on identifying the right method for storing data and using the most efficient algorithm for analysis. A subset of data structures and algorithms fundamental to computer science will be covered.
Students will learn fundamental data structures and algorithms frequently used in informatics and data science; Students will be able to apply this knowledge for data analysis
Outcomes
Students will learn fundamental data structures and algorithms frequently used in informatics and data science; Students will be able to apply this knowledge for data analysisCOMP 250 Introduction to Scientific and Technical Communication (3 Credit Hours)
This course trains students in writing clear, readable, and well-organized technical communications, including presentations, end-user documentation, internal project documentation, and scientific papers.
Students will learn to write clear technical documentation
Outcomes
Students will learn to write clear technical documentationCOMP 251 Introduction to Database Systems (3 Credit Hours)
This course explores ways in which data collections are organized, stored, analyzed, and manipulated. Topics include relational databases, the SQL query language, and the basics of XML and web interfaces to data sets. Applications from a variety of domains illustrate the course's key concepts.
Course equivalencies: COMP 251 / COMP 368
Students will organize data in ways to emphasize relationships, write simple programs to process, visualize and graphically display data, mine data for patterns, and design web interfaces to data
Outcomes
Students will organize data in ways to emphasize relationships, write simple programs to process, visualize and graphically display data, mine data for patterns, and design web interfaces to dataCOMP 264 Introduction to Computer Systems (3 Credit Hours)
Pre-requisites: COMP 141 and (COMP 170 or MATH/COMP 215) and (coreq or prereq of COMP 163 or MATH 201); COMP 163 coreq or prereq and COMP 170 prereq preferred
This course studies the hierarchy of abstractions and implementations that constitute a modern computer system, with a particular focus on issues of interest to programmers, typically including some systems programming instruction.
Understanding of system issues that affect the performance, correctness, or utility of user-level programs
Outcomes
Understanding of system issues that affect the performance, correctness, or utility of user-level programsCOMP 266 Digital Electronics Lab (3 Credit Hours)
Combinatorial and sequential logic devices, oscillators and timers, microprocessor components, CPU operation, computer architecture and digital/analog conversion.
Course equivalencies: X-PHYS266/COMP266
Students will gain a working knowledge of digital electronics design and its application to computers, an understanding of CPU design and operation and the ability to document and report experimental results
Outcomes
Students will gain a working knowledge of digital electronics design and its application to computers, an understanding of CPU design and operation and the ability to document and report experimental resultsCOMP 271 Data Structures I (3 Credit Hours)
Pre-requisites: COMP 141 and COMP 170 and (co-requisite or pre-requisite of COMP 163 (preferred) or MATH 201); For Bioinformatics majors, pre-requisite of COMP 141 and COMP 170; For SCPS students, pre-requisite of COMP 170
This course studies basic data structures including array lists, linked lists, stacks, queues, binary trees, and hash tables. Efficiency of data structure operations, study of recursion, applications of data structures, and simple analysis of algorithms are covered.
Interdisciplinary Option: Bioinformatics
Students learn linear data structures and the performance of their operations, and they learn to solve simple computational problems by designing suitable algorithms and efficient data structures
Outcomes
Students learn linear data structures and the performance of their operations, and they learn to solve simple computational problems by designing suitable algorithms and efficient data structuresCOMP 272 Data Structures II (3 Credit Hours)
This course studies advanced abstract data types, such as sets, maps, and graphs, and their implementation using arrays and dynamically allocated nodes in an object-oriented language. The course also studies the performance of the data structures built-in operations and related algorithms such as sorting, searching, and traversing.
Students learn non-linear data structures and runtime performance of their operations, solve computational problems by choosing suitable data structures, and implement algorithms within the object-oriented paradigm
Outcomes
Students learn non-linear data structures and runtime performance of their operations, solve computational problems by choosing suitable data structures, and implement algorithms within the object-oriented paradigmCOMP 301 Introduction to Computer Security (3 Credit Hours)
Pre-requisites: COMP 170
This is an introductory course on computer security covering a broad range of topics, including basic security goals, encryption, penetration testing, software exploitation, reverse engineering, packet sniffing, and secure coding. The course teaches both the principles and concepts of computer security as well as some of the tools and technologies. Students will learn to think like an adversary, find and exploit vulnerabilities in computer and network systems, understand cryptography and security goals, and learn about some of the commonly-used tools.
COMP 305 Database Administration (3 Credit Hours)
Business and scientific institutions increasingly use large commercial data base systems. This course teaches the theory and practice for the definition, security, backup, tuning, and recovery of these systems.
Students will be able to use theory and pragmatic approaches to define and implement realistic solutions for large database administration environments
Outcomes
Students will be able to use theory and pragmatic approaches to define and implement realistic solutions for large database administration environmentsCOMP 306 Data Mining (3 Credit Hours)
Pre-requisites: (COMP 231 or COMP 251 or COMP 271) and (STAT 103 or STAT 203 or ISSCM 241 or PSYC 304 or instructor permission)
This course covers theory and practice of the analysis (mining) of extremely large datasets. With data growing at exponential rates knowledge gathering and exploration techniques are essential for gaining useful intelligence.
Students will be able to define and critically analyze data mining approaches for fields such as security, healthcare, science and marketing
Outcomes
Students will be able to define and critically analyze data mining approaches for fields such as security, healthcare, science and marketingCOMP 309 Numerical Methods (3 Credit Hours)
This course offers an introduction to topics such as error analysis, interpolation and approximation, and the numerical solution of problems involving differentiation, integration, and ordinary and partial differential equations. Students will obtain an understanding of how numerical methods can be used in a variety of areas of mathematics.
Course equivalencies: X-COMP309/MATH309
COMP 310 Operating Systems (3 Credit Hours)
This course introduces principles of operating systems and how they are designed. Various important parts of operating systems such as memory addressing, file structures, processes, and threads are covered.
Students will learn the different parts of an operating system at a functional level and how they interact with each other
Outcomes
Students will learn the different parts of an operating system at a functional level and how they interact with each otherCOMP 312 Open Source Software Practicum (3 Credit Hours)
This course will cover the fundamentals of Free and Open Source software development. Topics to be addressed include licensing, Linux, typical software development tools, applications, and techniques for managing remote servers.
This course satisfies the Engaged Learning requirement.
Students will learn to implement projects involving Free and Open Source software and learn how to participate in open-source projects effectively
Outcomes
Students will learn to implement projects involving Free and Open Source software and learn how to participate in open-source projects effectivelyCOMP 313 Object-Oriented Design (3 Credit Hours)
Pre-requisites: COMP 272
Object-orientation continues to be a dominant approach to software development. This intermediate programming-intensive course studies the use of classes and objects with an emphasis on collaboration among objects.
A thorough understanding of the principles of object-orientation: abstraction, delegation, inheritance, and polymorphism; exposure to basic design patterns; programming experience in mainstream object-oriented languages such as C++ and Java
Outcomes
A thorough understanding of the principles of object-orientation: abstraction, delegation, inheritance, and polymorphism; exposure to basic design patterns; programming experience in mainstream object-oriented languages such as C++ and JavaCOMP 314 Problem Solving Strategies I (1 Credit Hour)
Pre-requisites: COMP 271
Corequisite or This course allows students to sharpen problem-solving skills along with, or as part of, the ACM Programming Team. Groups generally work on old competition problems on alternate weekends, with short follow-ups during the next week.
Course equivalencies: COMP281/COMP314
Ability to work in small groups, quickly and accurately assessing and solving focused problems involving many sorts of programming knowledge
Outcomes
Ability to work in small groups, quickly and accurately assessing and solving focused problems involving many sorts of programming knowledgeCOMP 315 Problem Solving Strategies II (2 Credit Hours)
Pre-requisites: COMP 314
This course allows students to sharpen problem-solving skills along with, or as part of, the ACM Programming Team. Groups generally work on old competition problems on alternate weekends, with short follow-ups during the next week.
Ability to lead a small group, quickly and accurately assessing and solving focused problems involving many sorts of programming knowledge
Outcomes
Ability to lead a small group, quickly and accurately assessing and solving focused problems involving many sorts of programming knowledgeCOMP 317 Social, Legal, and Ethical Issues in Computing (3 Credit Hours)
Pre-requisites: Any COMP course and Ethics Core
This course covers social, legal, and ethical issues commonly arising in key areas related to computing technologies.
Interdisciplinary Option: Sociolegal Studies
Understanding of laws and issues in areas such as privacy, encryption, freedom of speech, copyrights and patents, computer crime, and computer/software reliability and safety; understanding of philosophical perspectives such as utilitarianism versus deontological ethics and basics of the U.S. legal system
Outcomes
Understanding of laws and issues in areas such as privacy, encryption, freedom of speech, copyrights and patents, computer crime, and computer/software reliability and safety; understanding of philosophical perspectives such as utilitarianism versus deontological ethics and basics of the U.S. legal systemCOMP 319 Introduction to UNIX (1 Credit Hour)
An introduction to the UNIX operating system. Topics include files and directories, electronic mail, security, advanced file systems, network utilities, network file sharing, text utilities, shell programming, UNIX internals, UNIX system administration (essentials), the X windowing system, systems programming, and secure shell (SSH).
Course equivalencies: COMP219/COMP319
After taking this course, students will develop working knowledge of Unix and be able to use modern Unix operating systems such as Linux, OS X, or Solaris
Outcomes
After taking this course, students will develop working knowledge of Unix and be able to use modern Unix operating systems such as Linux, OS X, or SolarisCOMP 321 Computational Aspects of Modeling and Simulation (3 Credit Hours)
This course uses SAS and R languages to address statistical modelling and to conduct statistical simulations to assess linear, generalized linear, nonlinear and complex models and experimental designs.
Course equivalencies: X-STAT356/COMP321/STAT321
Students will gain practical experience and knowledge in real-world statistical situations for which underlying theory is cumbersome or intractable
Outcomes
Students will gain practical experience and knowledge in real-world statistical situations for which underlying theory is cumbersome or intractableCOMP 322 Software Development for Wireless and Mobile Devices (3 Credit Hours)
This course will focus on the unique challenges, methods, tools, and technologies for developing software applications for wireless and mobile devices, smart mobile phones, and the growing world of mobile connected devices.
1) Understand challenges of software design for resource limited devices; 2) Know the architecture of one or more state-of-the-art mobile operating systems; 3) Gain experience designing, developing, testing embedded software
Outcomes
1) Understand challenges of software design for resource limited devices; 2) Know the architecture of one or more state-of-the-art mobile operating systems; 3) Gain experience designing, developing, testing embedded softwareCOMP 323 Game Design and Development (3 Credit Hours)
This course studies design, development, and publication of games and game-based applications. This includes example games and designers, industry practices, and team-based project development.
Students will acquire an awareness of different game design and development methods, technologies, and techniques suitable for the development of a variety of game based environments
Outcomes
Students will acquire an awareness of different game design and development methods, technologies, and techniques suitable for the development of a variety of game based environmentsCOMP 324 Client-Side Web Development (3 Credit Hours)
This course covers the design and implementation of the presentation layer of dynamic web applications. Topics include visual design and usability, multi-channel and multi-modal applications, markup of static and dynamic content, and client-side executable content. HTML/CSS/JavaScript are introduced quickly, followed up with the stack of current JavaScript frameworks and libraries used in practice.
Familiarity with the most common effective tools for creating responsive, dynamic, and interactive web content with client-side tools
Outcomes
Familiarity with the most common effective tools for creating responsive, dynamic, and interactive web content with client-side toolsCOMP 325 Rapid Application Development Methodology (3 Credit Hours)
Pre-requisites: COMP 271 with a grade of C- or above
This course will teach students how to effect rapid application development using a software framework such as the .NET Framework. Particular emphasis will be placed on enhancing object-oriented programming skills using a language such as C#.NET.
Students will gain enhanced skill in object-oriented programming and development of such applications as database applications, web applications, Microsoft .NET services, Silverlight applications, and WCF Services
Outcomes
Students will gain enhanced skill in object-oriented programming and development of such applications as database applications, web applications, Microsoft .NET services, Silverlight applications, and WCF ServicesCOMP 326 Digital Music Programming (3 Credit Hours)
Pre-requisites: One of: COMP/MUSC 122, MUSC 201, COMP 125, COMP 150, COMP 170, permission of instructor
This course is an exploration of coding for music applications. Topics include digital audio and synthesis theory and basic, musical data structures, and principles of computer music composition and interactivity. Students will design synthesis and sampling instruments, algorithmic music generators, signal processors, and interactive control systems using one or more music programming languages.
Create software modules for processing digital audio, MIDI, and generative music; develop interactive interfaces; export applications or modules; produce a portfolio of creative projects in areas of real-time audio/MIDI processing
Outcomes
Create software modules for processing digital audio, MIDI, and generative music; develop interactive interfaces; export applications or modules; produce a portfolio of creative projects in areas of real-time audio/MIDI processingCOMP 328 Algebraic Coding Theory (3 Credit Hours)
Pre-requisites: MATH 212
Codes with algebraic structure for error control are examined. Block codes including Hamming codes and Reed-Muller codes, BCH codes, and other cyclic codes with algebraic structure and other cyclic codes and their implementation are treated. Other topics may include: convolutional codes, efficiency considerations, and Shannon's fundamental theorem of information theory.
Course equivalencies: X-MATH328/COMP328
COMP 329 Natural Language Processing (3 Credit Hours)
Pre-requisites: (COMP 231 or COMP 271) and (MATH 131 or MATH 161) and (STAT 103 or STAT 203 or ISSCM 241 or PSYC 304 or instructor permission)
This course provides an introduction to the field of natural language processing (NLP). NLP is concerned with computational approaches to analyzing, generating, and understanding human language. This course will introduce the students to the problems, methods, and applications of NLP.
Students will become familiar with such areas of natural language processing as information retrieval, sentiment analysis, machine translation, document classification, and question answering
Outcomes
Students will become familiar with such areas of natural language processing as information retrieval, sentiment analysis, machine translation, document classification, and question answeringCOMP 330 Software Engineering (3 Credit Hours)
Pre-requisites: COMP 271
Students learn real-world theory and techniques organizations use to create high-quality software on time. Students work on a large programming team to create plans, review progress, measure quality, and make written and oral analyses of their project.
Students will experience process based development, understand the dynamics of a professional software organization, and develop skills for implementing software with others
Outcomes
Students will experience process based development, understand the dynamics of a professional software organization, and develop skills for implementing software with othersCOMP 331 Mathematical Foundations of Cryptography (3 Credit Hours)
Pre-requisites: Theoretical Foundations: MATH 201 or COMP 363; Programming Foundations: COMP125 or COMP150 or COMP170 or COMP 180 or COMP/MATH 215
This course introduces the formal foundations of cryptography and also investigates some well-known standards and protocols, including private and public key cryptosystems, hashing, digital signatures, RSA, DSS, PGP, and related topics.
Course equivalencies: X-COMP331/MATH331
Students will gain an understanding of cryptosystems widely used to protect data security on the internet, and be able to apply the ideas in new situations as needed
Outcomes
Students will gain an understanding of cryptosystems widely used to protect data security on the internet, and be able to apply the ideas in new situations as neededCOMP 332 Requirements Engineering (3 Credit Hours)
Pre-requisites: COMP 330
This course aims to equip students with techniques for successful requirements analysis and requirements engineering (RE) of software-intensive systems. Students will learn a systematic process of developing requirements through co-operative problem analysis, representation, and validation.
Students will learn and apply the current state of the art in requirements engineering and a systematic method for engineering high-quality requirements on realistic large-scale projects
Outcomes
Students will learn and apply the current state of the art in requirements engineering and a systematic method for engineering high-quality requirements on realistic large-scale projectsCOMP 333 Web Services Programming (3 Credit Hours)
Pre-requisites: COMP 313 Outcomes: An understanding of the design space of software architecture; Proficiency in designing, implementing, deploying and composing systems from web services
Web services are building blocks for enterprise applications that use open data exchange standards and transport protocols to exchange data with calling clients. This course studies the architectures, frameworks, and tools required to develop and compose web services and clients, as well as integrate service-oriented systems with legacy systems.
COMP 335 Formal Methods in Software Engineering (3 Credit Hours)
Pre-requisites: COMP 272
As embedded and networked systems are becoming ever more ubiquitous, we depend increasingly on the correctness of the software that controls such systems. This course studies the formal specification, verification, and synthesis of software.
An understanding of the role of formal methods in the construction of software systems; proficiency in representative methods and tools, such as UML and ESC
Outcomes
An understanding of the role of formal methods in the construction of software systems; proficiency in representative methods and tools, such as UML and ESCCOMP 336 Markup Languages (3 Credit Hours)
This course is concerned with XML and its various component frameworks. The core frameworks to be covered include Document Object Model (DOM), Simple API for XML processing (SAX), the XML Path language (XPath), and XSLT.
After taking this course, students will have working knowledge of XML and its connections to other ideas such as HTML, object models, relational databases, and network services
Outcomes
After taking this course, students will have working knowledge of XML and its connections to other ideas such as HTML, object models, relational databases, and network servicesCOMP 337 Concurrent Programming (3 Credit Hours)
Pre-requisites: COMP 313
Many real-world software systems rely on concurrency for performance and modularity. This programming-intensive course covers analysis, design, implementation, and testing of concurrent software systems.
An in-depth understanding of event-based and thread-based views of concurrency; the ability to develop concurrent software components using suitable languages, frameworks, and design patterns; familiarity with object-oriented modeling and development tools and test-driven development
Outcomes
An in-depth understanding of event-based and thread-based views of concurrency; the ability to develop concurrent software components using suitable languages, frameworks, and design patterns; familiarity with object-oriented modeling and development tools and test-driven developmentCOMP 338 Server-based Software Development (3 Credit Hours)
Pre-requisites: COMP 313
Server-based web applications and services have become part of everyday life. This programming-intensive course covers analysis, design, implementation, and testing of multi-tiered server-based software systems along with typical tier-specific technologies.
An understanding of software architecture and integration in the development of multi-tiered server-based software; familiarity with object-oriented modeling and development tools and test-driven development
Outcomes
An understanding of software architecture and integration in the development of multi-tiered server-based software; familiarity with object-oriented modeling and development tools and test-driven developmentCOMP 339 Distributed Systems (3 Credit Hours)
This course covers topics in modern distributed systems. This course places special emphasis on scalability (performance), reliability/fault tolerance, and security.
After taking this course, students should understand the essential ingredients of distributed systems and how to build distributed systems that are resilient to transient network failures and other potential anomalies
Outcomes
After taking this course, students should understand the essential ingredients of distributed systems and how to build distributed systems that are resilient to transient network failures and other potential anomaliesCOMP 340 Computer Forensics (3 Credit Hours)
The course introduces the fundamentals of computer/network/internet forensics, analysis and investigations.
The student will learn computer software and hardware relevant for analysis, and investigative and evidence-gathering protocols
Outcomes
The student will learn computer software and hardware relevant for analysis, and investigative and evidence-gathering protocolsCOMP 341 Human-Computer Interaction (3 Credit Hours)
Limitations in human-computer interaction are as much due to human factors, cognitive limits, expectations, motivations, and inertia as technological capabilities. Systematic methods will be used to evaluate and improve designs through both qualitative feedback and statistical, hypothesis-driven testing on web pages, GUIs, mobile apps and many non-traditional interfaces.
Students will be exposed to a wide array of non-traditional computing interfaces, and be able to evaluate, design and develop better human-computer interfaces using research-based, systematic approaches
Outcomes
Students will be exposed to a wide array of non-traditional computing interfaces, and be able to evaluate, design and develop better human-computer interfaces using research-based, systematic approachesCOMP 342 Introduction to Web Application Development (3 Credit Hours)
Pre-requisites: COMP 170
An introduction to webpage development using JavaScript, jQuery and associated client-side tools.
Course equivalencies: X- DIGH403/CPST342/COMP342
Students will be able to create webpages using JavaScript and related tools and protocols, and interface a webpage with a database
Outcomes
Students will be able to create webpages using JavaScript and related tools and protocols, and interface a webpage with a databaseCOMP 343 Computer Networks (3 Credit Hours)
This course surveys packet-switched computer networks and attendant communication protocols, using the TCP/IP protocol suite on which the Internet is based as the primary model. Some programming may be required.
Students will understand how the Internet is constructed, how data is routed to its destination, how connections are made, how congestion is handled, and how security can be addressed
Outcomes
Students will understand how the Internet is constructed, how data is routed to its destination, how connections are made, how congestion is handled, and how security can be addressedCOMP 344 Hands-on Approach to Security & Privacy (3 Credit Hours)
Pre-requisites: COMP 301 Outcomes: Students will start thinking like an adversary, learn how to find exploits in software and computer networks, and how to be a cybersecurity professional
This course will introduce students to privacy, cybersecurity competitions, and how computers can be compromised and secured.
COMP 345 Internet of Things Device and Application Security (3 Credit Hours)
Pre-requisites: COMP 301
It introduces the Internet of Things (IoT) comprising embedded devices and cloud-based resources. The course studies concepts and techniques used in designing and implementing IoT systems providing valuable functionality to consumers and valuable data to organizations. The course discusses methods for addressing related safety, security, reliability, and privacy concerns.
Ability to design and implement secure software and establish safety, security, reliability, and privacy goals for embedded and IoT-based systems; Ability to visualize and analyze data from an IoT system
Outcomes
Ability to design and implement secure software and establish safety, security, reliability, and privacy goals for embedded and IoT-based systems; Ability to visualize and analyze data from an IoT systemCOMP 346 Telecommunications (3 Credit Hours)
This course introduces the fundamental concepts of telecommunication networks, including requirements of voice networks, analog versus digital transmission, data link protocols, SONET, ATM, cellular phone systems, and the architecture of the current telephone system.
Students will understand how modern telephone systems work
Outcomes
Students will understand how modern telephone systems workCOMP 347 Intrusion Detection and Security (3 Credit Hours)
Pre-requisites: COMP 301
This course covers techniques and algorithms for detecting unusual usage patterns that typically signal a break-in, including techniques for detecting evasive or stealthy attacks. Also covered are differences in detecting local versus network intruders. Additional topics: computer viruses, computer security management, computer forensics.
Students will learn to configure ID systems (eg SNORT) and analyze their output; They will also understand both network-based and host-based monitoring techniques
Outcomes
Students will learn to configure ID systems (eg SNORT) and analyze their output; They will also understand both network-based and host-based monitoring techniquesCOMP 348 Network Security (3 Credit Hours)
Pre-requisites: COMP 301
This course involves a discussion of network security through the following areas which lead to an overall security posture: Security Frameworks, Implementation Security, System Best Practices, a Case for Centralized Configuration Management, Network Security Architecture, Standards Adherence, Risk Assessments, Testing and Review and Application Security.
An understanding of how to secure networks using encryption, authentication, perimeter protection, restricted access policies, intrusion detection/prevention and other security frameworks
Outcomes
An understanding of how to secure networks using encryption, authentication, perimeter protection, restricted access policies, intrusion detection/prevention and other security frameworksCOMP 349 Wireless Networking and Security (3 Credit Hours)
Pre-requisites: COMP 301 Outcomes: Students will gain an understanding of wireless networking, protocols, and standards and security issues
This course will explore the wireless standards, authentication issues, and common configuration models for commercial versus institutional installations and analyze the security concerns associated with this ad-hoc method of networking.
COMP 351 Network Management (3 Credit Hours)
This course introduces the current state of the art in automated management of computer networks, including protocols such as SNMP and its attendant naming conventions, network management systems, and important issues in administrative network configuration.
Students will become familiar with the SNMP protocol, with how large-scale Network Management Systems operate and are configured, and with advanced network configuration
Outcomes
Students will become familiar with the SNMP protocol, with how large-scale Network Management Systems operate and are configured, and with advanced network configurationCOMP 352 Computer Vulnerabilities (3 Credit Hours)
This course will introduce students to computer vulnerabilities at the machine-code level, including viruses, browser vulnerabilities, buffer and heap overflows, return-to-libc attacks and others.
Describe some recent computer software vulnerabilities at the machine-code level and how they can be leveraged into an attack; Run a virus in a virtual-machine sandbox with appropriate monitoring
Outcomes
Describe some recent computer software vulnerabilities at the machine-code level and how they can be leveraged into an attack; Run a virus in a virtual-machine sandbox with appropriate monitoringCOMP 353 Database Programming (3 Credit Hours)
This course introduces relational and object databases to support database creation and application development. Use of commercial database products will give a practical orientation.
Course equivalencies: COMP353/BIOI353
Students will learn SQL, database design and application development using the latest software tools; Students will also learn techniques for web based data retrieval and manipulation
Outcomes
Students will learn SQL, database design and application development using the latest software tools; Students will also learn techniques for web based data retrieval and manipulationCOMP 358 Big Data Analytics (3 Credit Hours)
In this course, large data sets will be leveraged to solve challenging analytics problems. With more samples, analytics can use more complex learning models to automate more feature combinations for more robust model tuning, selection, and validation. Parallel, distributed processing will be performed with Apache Spark and Hadoop. ((Database experience: COMP 251 OR COMP 305 OR COMP 353) AND (Analytics experience: COMP 300 OR COMP 379 OR STAT 338 OR STAT 308)) OR permission of instructor.
Python or R will be used with parallel frameworks to perform proper model selection when testing large combinations of features, models, hyperparameters, and ensembles, with additional emphasis on deep learning
Outcomes
Python or R will be used with parallel frameworks to perform proper model selection when testing large combinations of features, models, hyperparameters, and ensembles, with additional emphasis on deep learningCOMP 362 Computer Architecture (3 Credit Hours)
This course covers computer design from the level of digital logic and circuit design to high-level computer organization.
Course equivalencies: COMP 260 / COMP 275 / COMP 362
A basic understanding of how computers work at many levels and how to use various analytical tools and techniques to design computer components
Outcomes
A basic understanding of how computers work at many levels and how to use various analytical tools and techniques to design computer componentsCOMP 363 Design and Analysis Computer Algorithms (3 Credit Hours)
Theoretical design and analysis of computer algorithms may be supplemented by small amounts of programming.
Interdisciplinary Option: Bioinformatics
Course equivalencies: X-COMP363/BIOI363
The ability to design and analyze efficient algorithms; understanding of the necessary models and mathematical tools; understanding of a variety of useful data structures and fundamental algorithms; exposure to the classification of computational problems into different complexity classes
Outcomes
The ability to design and analyze efficient algorithms; understanding of the necessary models and mathematical tools; understanding of a variety of useful data structures and fundamental algorithms; exposure to the classification of computational problems into different complexity classesCOMP 364 High Performance Computing (3 Credit Hours)
Pre-requisites: COMP 264 and COMP 272 Outcomes: Students will learn how to engineer solutions to practical problems in multiprocessor architectures and using large physical memories
This course covers parallel architectures and parallel models of computation. Algorithms for achieving high performance in various computational contexts are discussed. Models such as shared memory, message passing, and hybrid modes of computing are introduced.
COMP 366 Microcomputer Design & Interfacing (3 Credit Hours)
Pre-requisites: COMP 271 Outcomes: Students will gain a working knowledge of interfacing techniques and design, hands-on experience with professional interfacing hardware and software, and the ability to document and report experimental results
This course covers computer architecture, CPU logic, data acquisition, signal conditioning, analog/digital conversion and computer interfacing.
Course equivalencies: X-PHYS366/COMP366
COMP 367 Robotics Software Development (3 Credit Hours)
This course is an introduction to robotics and robotic software development using humanoid robots. The course will use modern robot platforms and provide hands on experience with robotic sensor systems, motion and navigation, robot behavior planning and implementation.
Students will explore the history of robotics, overview the theory of autonomous robotic systems, and develop complete robot projects
Outcomes
Students will explore the history of robotics, overview the theory of autonomous robotic systems, and develop complete robot projectsCOMP 369 Product Invention and 3D Printing (3 Credit Hours)
This course explores the role of products in the economy and how things are made, including: product conceptualization and design, physical design vs. design of things that are not physical, rapid prototyping, 3D printing, 2D conceptualization and sketching, 3D modeling, and design reviews.
Students will be able to visualize ideas via sketching basic shapes, create 3D models using 3D modeling software, use a 3D Printer, and give constructive feedback in peer review sessions
Outcomes
Students will be able to visualize ideas via sketching basic shapes, create 3D models using 3D modeling software, use a 3D Printer, and give constructive feedback in peer review sessionsCOMP 370 Software Quality (3 Credit Hours)
Pre-requisites: COMP 330
The course teaches software testing and quality control concepts, principles, and techniques including black box and white box testing, coverage testing, test case development, and regression testing.
Students will learn how to prevent errors, how to get 'bugs' out of software, and be able to apply this knowledge in other courses and projects
Outcomes
Students will learn how to prevent errors, how to get 'bugs' out of software, and be able to apply this knowledge in other courses and projectsCOMP 371 Programming Languages (3 Credit Hours)
There are over two thousand programming languages. This course studies several languages that represent the much smaller number of underlying principles and paradigms.
An understanding of key principles and paradigms underlying the design and implementation of commonly used programming languages; exposure to formal mechanisms for describing language syntax and semantics; programming experience in several representative languages
Outcomes
An understanding of key principles and paradigms underlying the design and implementation of commonly used programming languages; exposure to formal mechanisms for describing language syntax and semantics; programming experience in several representative languagesCOMP 373 Advanced Object-Oriented Programming (3 Credit Hours)
Pre-requisites: COMP 313 Outcomes: Proficiency in the use of object-oriented languages, frameworks, and patterns; advanced understanding of key language mechanisms such as delegation, inheritance, polymorphism, and reflection; familiarity with object-oriented modeling and development tools and test-driven development
Object-orientation continues to be a dominant approach to software development. This advanced programming-intensive course studies object-oriented analysis, design, and implementation from a design patterns perspective.
COMP 376 Formal Languages & Automata (3 Credit Hours)
This course introduces formal language theory, including such topics as finite automata and regular expressions, pushdown automata and context-free grammars, Turing machines, undecidability, and the halting problem.
Course equivalencies: X-COMP376/MATH376
An understanding of the theoretical underpinnings of computability and complexity in computer science
Outcomes
An understanding of the theoretical underpinnings of computability and complexity in computer scienceCOMP 377 IT Project Management (3 Credit Hours)
This course is an introduction to the philosophy and practice of project management. The course involves a student group project to investigate and plan a 'real world' IT project that specifies project objectives, schedules, work breakdown structure and responsibilities, a written interim report, and a final oral and written report.
Students will learn time management, work-flow management, and team dynamics to design, implement and test large-scale software projects
Outcomes
Students will learn time management, work-flow management, and team dynamics to design, implement and test large-scale software projectsCOMP 378 Artificial Intelligence (3 Credit Hours)
This course introduces artificial intelligence theory and programming.
Student will learn basic theory of artificial intelligence and be able to build small applications based on it
Outcomes
Student will learn basic theory of artificial intelligence and be able to build small applications based on itCOMP 379 Machine Learning (3 Credit Hours)
Pre-requisites: (COMP 231 or COMP 271) and (MATH 131 or MATH 161) and (STAT 103 or STAT 203 or ISSCM 241 or PSYC 304 or instructor permission)
Machine learning is the process of making predictions and decisions from data without being explicitly programmed. Topics include a variety of supervised learning methods. Ensemble approaches are used to combine independent models efficiently. Unsupervised and semi-supervised methods demonstrate the power of learning from data without an explicit training goal.
Students in this course will learn how to apply sophisticated algorithms to large data sets to make inferences for prediction or decision making
Outcomes
Students in this course will learn how to apply sophisticated algorithms to large data sets to make inferences for prediction or decision makingCOMP 380 Computer Graphics (3 Credit Hours)
Pre-requisites: COMP 271
This course introduces modern theory and practices in 3-D computer graphics, stressing real-time interactive applications using libraries like OpenGL.
Student will learn how to program real-time interactive applications using libraries like OpenGL
Outcomes
Student will learn how to program real-time interactive applications using libraries like OpenGLCOMP 381 Bioinformatics (3 Credit Hours)
Students will engage in the applications of computer-based tools and database searching to better understand the fields of genetics, genomics, evolutionary biology, and personalized medicine. Students will be introduced to scripting programming languages for analyzing biological data sets.
Interdisciplinary Option: Bioinformatics
Course equivalencies: X-BIOL388/COMP381/BIOI388
Students will be able to appropriately use computer software and databases to accurately analyze biological data and interpret the results, applying their understanding of genetic processes
Outcomes
Students will be able to appropriately use computer software and databases to accurately analyze biological data and interpret the results, applying their understanding of genetic processesCOMP 382 Compiler Construction (3 Credit Hours)
This course covers the basics of writing a compiler to translate from a simple high-level language to machine code. Topics include lexical analysis, top-down and LR parsing, syntax-directed translation, and code generation and optimization. Students will write a small compiler.
Students will learn how a compiler is built
Outcomes
Students will learn how a compiler is builtCOMP 383 Computational Biology (4 Credit Hours)
This course presents an algorithmic focus to problems in computational biology. It is built on earlier courses on algorithms and bioinformatics. Problems and solutions covered in this course include gene hunting, sequence comparison, multiple alignment, gene prediction, trees and sequences, databases, and rapid sequence analysis.
Interdisciplinary Option: Bioinformatics
Course equivalencies: COMP383/BIOI383
Students will learn, in detail, foundational methods and algorithms in bioinformatics
Outcomes
Students will learn, in detail, foundational methods and algorithms in bioinformaticsCOMP 386 Computational Neuroscience (3 Credit Hours)
Introduces computational methods to understand neural processing in the brain. Levels of representation from low-level, temporally precise neural circuits to systems-level rate-encoded models, to information-theoretic approaches. Emphasis on sensory systems, primarily vision and audition, most readily demonstrating the need for such computational techniques.
Interdisciplinary Option: Neuroscience
Appreciation that many aspects of neuroscience cannot be understood without appropriate mathematical or computational frameworks, and ability to adeptly apply these frameworks in the various domains of neuroscience
Outcomes
Appreciation that many aspects of neuroscience cannot be understood without appropriate mathematical or computational frameworks, and ability to adeptly apply these frameworks in the various domains of neuroscienceCOMP 388 Topics in Computer Science (1-6 Credit Hours)
This course is used to introduce emerging topics in computer science that do not yet have a regular course number. Content of the course varies.
Understanding of an emerging area of Computer Science
Outcomes
Understanding of an emerging area of Computer ScienceCOMP 390 Broadening Participation in STEM (Computing, Math & Science) (1-3 Credit Hours)
Students will learn about underrepresentation of various population groups in STEM fields (science, technology, engineering, mathematics), as well as some of the reasons and negative effects of this situation. They will learn about techniques and educational materials for ameliorating this situation and will engage in relevant service learning activities.
This course satisfies the Engaged Learning requirement.
Students gain first-hand experience with broadening STEM participation and seeing how they can make a difference in the lives of other students and contribute to national needs
Outcomes
Students gain first-hand experience with broadening STEM participation and seeing how they can make a difference in the lives of other students and contribute to national needsCOMP 391 Internship in Computer Science (1-6 Credit Hours)
Students work outside the classroom applying and extending their computer science skills, typically for at least 150 hours for 3 credits. A memorandum of understanding is required between a student, his or her employer, and the Undergraduate Program Director, followed by final reports from the student and the employer.
This course satisfies the Engaged Learning requirement.
Application of classroom skills to real-world situations
Outcomes
Application of classroom skills to real-world situationsCOMP 392 Metagenomics (3 Credit Hours)
Pre-requisites: BIOL 282
Exploration of next-generation sequencing technologies for assessing microbial diversity in ecological niches.
Interdisciplinary Option: Bioinformatics
This course satisfies the Engaged Learning requirement.
Students will gain hands-on experience with metagenomic methodologies while working in an interdisciplinary, collaborative setting
Outcomes
Students will gain hands-on experience with metagenomic methodologies while working in an interdisciplinary, collaborative settingCOMP 395 Professional Development & Career Growth in CompSci/IT (1 Credit Hour)
Pre-requisites: Sophomore standing and any COMP course
This course is designed specifically for students pursuing a degree in computing-related fields, for example, Computer Science, Information Technology, Software Engineering, and Cybersecurity. They will learn about ways to develop themselves professionally, communicate their strengths, expand their contacts, and advance their careers. Students should acquire skills to professionally brand themselves, successfully network in technical circles, perform an effective job/internship search, and conduct themselves well in interviews.
COMP 397 Research Methods in Computer Science (1 Credit Hour)
Supplements CS Seminar by targeting students directly engaging in research and facilitating contributions in ongoing projects. Progress in outside projects tracked through milestones such as abstracts, small fellowship-style proposals, informal updates, and outcome-oriented goal setting. Emphasizes creating lasting impacts through establishing project continuity and presenting posters, papers, and slide shows.
Regular progress on research projects and final presentations of results for demonstration to department faculty and students, and potential use at professional conferences
Outcomes
Regular progress on research projects and final presentations of results for demonstration to department faculty and students, and potential use at professional conferencesCOMP 398 Independent Study (1-6 Credit Hours)
The student and a sponsoring faculty member will determine an advanced topic for the student to work on.
This course satisfies the Engaged Learning requirement.
Knowledge of an advanced topic
Outcomes
Knowledge of an advanced topicCOMP 399 Computer Science Seminar (1 Credit Hour)
The department seminar is designed to bring together students interested in understanding and engaging in extracurricular applications of computer science, with a focus on ongoing research. Speakers will include department faculty, research students, and invited outside speakers. Students will be asked to read relevant literature and participate in discussions.
Course equivalencies: COMP 399H / COMP 399
Students will be exposed to a wide range of topics in computer science, participate in discussions, and provide feedback to assess their general understanding of the presented material
Outcomes
Students will be exposed to a wide range of topics in computer science, participate in discussions, and provide feedback to assess their general understanding of the presented materialCOMP 400A Object-Oriented Programming (3 Credit Hours)
This programming intensive course with its weekly lab component provides an exploration in problem solving for graduate-level courses, using object-oriented programming in a language such as Java.
To analyze and decompose problems, specify algorithms, and construct solutions by synthesizing classes, objects and other components of object
Outcomes
To analyze and decompose problems, specify algorithms, and construct solutions by synthesizing classes, objects and other components of objectCOMP 400B Data Structures I (3 Credit Hours)
Pre-requisites: COMP 400A
This course explores introductory data structures including array lists, linked lists, stacks, queues, binary trees, and hash tables. Efficiency of data structure operations is analyzed. Recursion, applications of data structures, and simple analysis of algorithms are covered. Students will be able to select appropriate data structures to integrate into algorithms to solve computational problems.
Students describe linear data structures and analyze the performance of their operations
Outcomes
Students describe linear data structures and analyze the performance of their operationsCOMP 400C Data Structures II (3 Credit Hours)
This course explores advanced abstract data types in depth, such as sets, maps, and graphs, and reproduces their implementation using arrays and dynamically allocated nodes in an object-oriented language. The course also analyzes the performance of the data structures' built-in operations and related algorithms such as sorting, searching, and traversing.
Students describe non-linear data structures and analyze the runtime performance of their operations, solve computational problems by synthesizing and integrating suitable data structures, and implement algorithms within the object-oriented paradigm
Outcomes
Students describe non-linear data structures and analyze the runtime performance of their operations, solve computational problems by synthesizing and integrating suitable data structures, and implement algorithms within the object-oriented paradigmCOMP 400D Computing Tools and Techniques (1 Credit Hour)
This course introduces students to the Unix shell environment and essential tools.
Students who complete this course will develop fluency in the Unix (Linux) environment
Outcomes
Students who complete this course will develop fluency in the Unix (Linux) environmentCOMP 400E Discrete Structures (3 Credit Hours)
This course provides the mathematical foundations for graduate-level study in computer science, including such topics as complexity of algorithms, modular arithmetic, induction and proof techniques, graph theory, combinatorics, Boolean algebra, logic circuits, and automata.
To analyze properties of functions, relations, graphs, trees, paths; evaluate Boolean Expressions; apply induction towards proving correctness of algorithm and classifying resource usage; synthesize finite-state machines and logic circuits
Outcomes
To analyze properties of functions, relations, graphs, trees, paths; evaluate Boolean Expressions; apply induction towards proving correctness of algorithm and classifying resource usage; synthesize finite-state machines and logic circuitsCOMP 401 Computer Security (3 Credit Hours)
Pre-requisites: COMP 170 or instructor permission
This is a foundations course on computer security, covering a comprehensive range of concepts and technologies, including security goals, encryption, penetration testing, software exploitation, reverse engineering, packet sniffing, and secure coding. The final project requires a presentation and technical report where the students will show and describe what they accomplished.
Students will find and exploit vulnerabilities in computer and network systems; articulate cryptography and security goals, and synthesize the knowledge of different tools and techniques by applying them to an intensive real-world project
Outcomes
Students will find and exploit vulnerabilities in computer and network systems; articulate cryptography and security goals, and synthesize the knowledge of different tools and techniques by applying them to an intensive real-world projectCOMP 403 Operations Management (3 Credit Hours)
Application of concepts and methods for managing production and service operation. Topics include demand forecasting, aggregate and capacity planning, inventory management, facility layout and location, just-in-time, managing quality, project planning, resource allocation, logistics. Emphasis on decision support
Understanding of the role of operations management in organizations, and applying models of production and operations management to decision making
Outcomes
Understanding of the role of operations management in organizations, and applying models of production and operations management to decision makingCOMP 404 Organizational Development (3 Credit Hours)
This course focuses on the manager's role in leading Organization Development and Change to maximize organization and individual effectiveness with a focus on Information Technology. The class explores Organization Development and Change theory, change practices, and discusses considerations a manager will face as a change agent in today's computing ecosystem.
To understand the dynamics of change in organizations; learn techniques and strategies in managing change; develop skills that will enable a change agent mentality within the context of IT leadership
Outcomes
To understand the dynamics of change in organizations; learn techniques and strategies in managing change; develop skills that will enable a change agent mentality within the context of IT leadershipCOMP 405 Database Administration (3 Credit Hours)
Knowledge of the configuration and management skills needed for successful administration of a database server. The database administrator manages hardware, backup, security, tables and indexes, performance monitoring, query performance and optimization, and transaction performance. This course takes a user through the stages of maximizing the performance of a database server.
Students will learn how to manage database performance, including topics such as the query optimizer, SQL EXPLAIN, table statistics, concurrency and transaction isolation levels, and security
Outcomes
Students will learn how to manage database performance, including topics such as the query optimizer, SQL EXPLAIN, table statistics, concurrency and transaction isolation levels, and securityCOMP 406 Data Mining (3 Credit Hours)
This course covers theory and practice of the analysis (mining) of extremely large datasets. With data growing at exponential rates knowledge gathering and exploration techniques are essential for gaining useful intelligence.
Students will be able to define and critically analyze data mining approaches for fields such as security, healthcare, science and marketing
Outcomes
Students will be able to define and critically analyze data mining approaches for fields such as security, healthcare, science and marketingCOMP 409 Advanced Numerical Analysis (3 Credit Hours)
An introduction to advanced numerical analysis. Introduction to error analysis, numerical solution of equations, interpolation and approximation, numerical differentiation and integration, matrices, and solution of systems of equations, numerical solution of ordinary and partial differential equations.
Course equivalencies: X-COMP409/MATH409
Students will have an understanding of advanced numerical analysis and its applications
Outcomes
Students will have an understanding of advanced numerical analysis and its applicationsCOMP 410 Operating Systems (3 Credit Hours)
The course introduces advanced operating system concepts including distributed, real-time and multi-threaded in addition to reviewing memory management, files, and processes.
Students will learn important topics in advanced operating systems and be able to make presentations on the topics
Outcomes
Students will learn important topics in advanced operating systems and be able to make presentations on the topicsCOMP 412 Open Source Computing (3 Credit Hours)
Pre-requisites: COMP 271
This course will cover the fundamentals of Free and Open Source software development. Topics to be addressed include licensing, Linux, typical software development tools, applications, and techniques for managing remote servers.
Students will learn to implement projects involving free and open-source software and learn how to participate in open-source projects effectively
Outcomes
Students will learn to implement projects involving free and open-source software and learn how to participate in open-source projects effectivelyCOMP 413 Intermediate Object-Oriented Development (3 Credit Hours)
Pre-requisites: COMP 271
Principles of object-oriented design and implementation, including object modeling (UML or equivalent), interface design, refactoring and test-driven development. Study of design patterns, including Adaptor, Decorator, Iterator, Abstract Factory, etc. Coverage of implementation tools including IDEs, source-code control and testing.
Use of interfaces in design; ability to recognize applications for design patterns, ability to refactor when necessary; ability to make effective use of test-driven development
Outcomes
Use of interfaces in design; ability to recognize applications for design patterns, ability to refactor when necessary; ability to make effective use of test-driven developmentCOMP 417 Social and Ethical Issues in Computing (3 Credit Hours)
This course covers social, legal, and ethical issues commonly arising in key areas related to computing technologies.
Understanding of laws and issues in areas such as privacy, encryption, freedom of speech, copyrights and patents, computer crime, and computer/software reliability and safety; understanding of philosophical perspectives such as utilitarianism versus deontological ethics and basics of the U.S. legal system
Outcomes
Understanding of laws and issues in areas such as privacy, encryption, freedom of speech, copyrights and patents, computer crime, and computer/software reliability and safety; understanding of philosophical perspectives such as utilitarianism versus deontological ethics and basics of the U.S. legal systemCOMP 418 Combinatorial Mathematics (3 Credit Hours)
The course covers basic combinatorial theory including permutations and combinations, the inclusion-exclusion principle and other general counting techniques, partitions, generating functions, recurrence relations, Burnside's Theorem, the cycle index, and Polya's formula.
Course equivalencies: X-COMP418/MATH418
Students will learn mathematical techniques in discrete mathematics and applied combinatorics
Outcomes
Students will learn mathematical techniques in discrete mathematics and applied combinatoricsCOMP 420 Software Systems Analysis (3 Credit Hours)
Pre-requisites: COMP 271
This course uses Unified Modeling Language and similar notation to model the early software analysis and design phases, from collection of user requirements to determination of class needs through object-oriented design.
Students will be able to capture business requirements in a software modeling document, and determine appropriate object-oriented classes suitable for final project implementation
Outcomes
Students will be able to capture business requirements in a software modeling document, and determine appropriate object-oriented classes suitable for final project implementationCOMP 421 Math Models & Simulation (3 Credit Hours)
This course covers tools for analyzing problems that are mathematically difficult. Discrete event simulation techniques and software tools for simulating processes are covered.
Course equivalencies: X-COMP421/MATH421/STAT421
Student will learn foundations of discrete event simulation
Outcomes
Student will learn foundations of discrete event simulationCOMP 422 Software Development for Wireless and Mobile Devices (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 413
This course will focus on the methods, tools, and technologies for developing software applications for wireless and mobile devices, such as personal digital assistants (PDA) and smart mobile phones.
Students will learn user interface design for small screens, programming techniques for devices with limited memory and processing power, data synchronization for mobile databases, and wireless network programming
Outcomes
Students will learn user interface design for small screens, programming techniques for devices with limited memory and processing power, data synchronization for mobile databases, and wireless network programmingCOMP 424 Client-Side Web Design (3 Credit Hours)
Pre-requisites: COMP 271
This course provides an in-depth study of the concepts and methods required for the design and implementation of the presentation layer of a web application. Coursework includes several substantial programming projects.
Students will learn markup of static and dynamic content, content transformation, client-side executable content including client-side scripting and embedded applets, and web-based content management systems
Outcomes
Students will learn markup of static and dynamic content, content transformation, client-side executable content including client-side scripting and embedded applets, and web-based content management systemsCOMP 425 Rapid Applications Development (3 Credit Hours)
Pre-requisites: COMP 271
This course will teach students how to design Rapid Application Development using an integrated development environment such as the .NET framework and methodology. It is designed to support object-oriented programming concepts.
Students will create database applications and web applications using server-side technologies
Outcomes
Students will create database applications and web applications using server-side technologiesCOMP 428 Algebraic Coding Theory (3 Credit Hours)
Pre-requisites: MATH 212 or Permission
In this course, major types of error-correcting codes, encoding and decoding , and their main properties will be studied. The codes examined will include the Hamming, Golay, BCH, cyclic, quadratic residue, Reed-Solomon, and Reed-Muller codes.
Course equivalencies: X-COMP428/MATH428
Students will learn both the theory and application of error-correcting codes
Outcomes
Students will learn both the theory and application of error-correcting codesCOMP 429 Natural Language Processing (3 Credit Hours)
Pre-requisites: (COMP 231 OR (COMP 271 or COMP 402)) AND (MATH 131 OR 161) and (STAT 103 OR STAT 203 OR ISSCM 241 OR PSYC 304 OR instructor permission)
In this course, students examine in depth the problems, methods, and applications of NLP. Topics will include information retrieval, sentiment analysis, machine translation, document classification, and question answering. We will also cover the underlying theory from probability, statistics, and machine learning that are crucial for the field.
Students will explain areas of NLP such as information retrieval, sentiment analysis, machine translation, document classification, question answering; Students will apply tools of NLP to a domain of their choice
Outcomes
Students will explain areas of NLP such as information retrieval, sentiment analysis, machine translation, document classification, question answering; Students will apply tools of NLP to a domain of their choiceCOMP 431 Cryptography (3 Credit Hours)
This course introduces the formal foundations of cryptography and also investigates some well-known standards and protocols, including private and public key cryptosystems, hashing, digital signatures, RSA, DSS, PGP, and related topics.
Course equivalencies: X-COMP431/MATH431
Students will gain an understanding of cryptosystems widely used to protect data security on the internet, and be able to apply the ideas in new situations as needed
Outcomes
Students will gain an understanding of cryptosystems widely used to protect data security on the internet, and be able to apply the ideas in new situations as neededCOMP 433 Web Services Programming (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 413
Web services are Web-based enterprise applications that use open, XML-based standards and transport protocols to exchange data with calling clients. This course provides the APIs and tools you need to create and deploy interoperable Web services and clients using .NET and Java WSDP.
Students will learn the standards and protocols for deploying web services
Outcomes
Students will learn the standards and protocols for deploying web servicesCOMP 434 Enterprise Software Development (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 413
The course shows how to use Enterprise JavaBeans to develop scalable, portable business systems. The technologies taught in the course include: component models, distributed objects, asynchronous messaging, and component transaction monitors.
Students will learn the architecture of EJB, entity and message and session beans
Outcomes
Students will learn the architecture of EJB, entity and message and session beansCOMP 436 Markup Languages (3 Credit Hours)
Pre-requisites: COMP 271
This course is concerned with XML and its various component frameworks. The core frameworks to be covered include Document Object Model (DOM), Simple API for XML processing (SAX), the XML Path language (XPath), and XSLT.
After taking this course, students will have working knowledge of XML and its connections to other ideas such as HTML, object models, relational databases, and network services
Outcomes
After taking this course, students will have working knowledge of XML and its connections to other ideas such as HTML, object models, relational databases, and network servicesCOMP 437 Intro Concurrent Programming (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 413
Many real-world software systems rely on concurrency for performance and modularity. This programming-intensive course covers analysis, design, implementation, and testing of concurrent software systems.
An in-depth understanding of event-based and thread-based views of concurrency; the ability to develop concurrent software components using suitable languages, frameworks, and design patterns; familiarity with object-oriented modeling and development tools and test-driven development
Outcomes
An in-depth understanding of event-based and thread-based views of concurrency; the ability to develop concurrent software components using suitable languages, frameworks, and design patterns; familiarity with object-oriented modeling and development tools and test-driven developmentCOMP 439 Distributed Systems (3 Credit Hours)
This course presents a modern discussion of distributed computing systems. Distributed computation, interactive services, collaborative computing, peer-to-peer sharing, and grid/utility computing are just a handful of distributed technologies that go beyond the capabilities of the traditional client/server model by allowing a collection of computers to be leveraged as a collective resource.
Students will learn design and implementation, scalability of performance, reliability, and security of loosely interconnected systems
Outcomes
Students will learn design and implementation, scalability of performance, reliability, and security of loosely interconnected systemsCOMP 440 Computer Forensics Investigations (3 Credit Hours)
This course introduces the fundamentals of computer/network/internet forensics, analysis and investigations.
The student will learn computer software and hardware relevant for analysis, and investigative and evidence-gathering protocols
Outcomes
The student will learn computer software and hardware relevant for analysis, and investigative and evidence-gathering protocolsCOMP 441 Human-Computer Interaction (3 Credit Hours)
Pre-requisites: COMP 271
This course studies the interaction between humans and computer-based systems. The course will provide students with the methods for evaluating, designing, and developing better interfaces between humans and systems.
Students will acquire an awareness of different design and evaluation methods as well as practical, effective, and cost-conscience methods for improving systems and their interfaces
Outcomes
Students will acquire an awareness of different design and evaluation methods as well as practical, effective, and cost-conscience methods for improving systems and their interfacesCOMP 442 Server-Side Software Development (3 Credit Hours)
Server-based web applications and services have become part of everyday life. This programming-intensive course covers analysis, design, implementation, and testing of multi-tiered server-based software systems along with typical tier-specific and technologies.
An understanding of software architecture and integration in the development of multi-tiered server-based software; familiarity with object-oriented modeling and development tools and test-driven development
Outcomes
An understanding of software architecture and integration in the development of multi-tiered server-based software; familiarity with object-oriented modeling and development tools and test-driven developmentCOMP 443 Computer Networks (3 Credit Hours)
This course surveys packet-switched computer networks and attendant communication protocols, using the TCP/IP protocol suite on which the Internet is based as the primary model. We will also study general high-level network issues such as security, authentication, fault tolerance, and congestion.
Students will understand how the Internet is constructed, how data is routed to its destination, how connections are made, how congestion is handled, and how security can be addressed
Outcomes
Students will understand how the Internet is constructed, how data is routed to its destination, how connections are made, how congestion is handled, and how security can be addressedCOMP 445 Internet of Things Device and Application Security (3 Credit Hours)
This course considers the safety, security, reliability, and privacy concerns of the embedded devices and cloud-based resources of the Internet of things. The course discusses methods for addressing these concerns.
Design/implement secure software for embedded systems and the IoT; Establish safety, security, reliability, privacy goals for IoT-based systems; Understand security and privacy concerns of embedded systems and the IoT
Outcomes
Design/implement secure software for embedded systems and the IoT; Establish safety, security, reliability, privacy goals for IoT-based systems; Understand security and privacy concerns of embedded systems and the IoTCOMP 446 Telecommunications (3 Credit Hours)
This course introduces the fundamental concepts of telecommunication networks. Underlying engineering principles of telephone networks, computer networks and integrated digital networks are discussed.
Students will learn how telephone and data networks work; They will also learn voice networks, analog versus digital transmission, data link protocols, SONET, ATM, cellular phone systems, and the architecture of the current telephone system
Outcomes
Students will learn how telephone and data networks work; They will also learn voice networks, analog versus digital transmission, data link protocols, SONET, ATM, cellular phone systems, and the architecture of the current telephone systemCOMP 447 Intrusion Detection and Computer Forensics (3 Credit Hours)
Pre- or co-requisites: COMP 271
This course will cover techniques for detecting the unusual usage patterns that typically signal a break-in. The course will also consider differences in detection of local intruders versus intrusion over networks. Finally issues in the prosecution of those breaking in to computers, particularly evidentiary issues are explored.
Students will learn to configure ID systems (eg, snort) and analyze their output; They will also understand both network-based and host-based monitoring techniques
Outcomes
Students will learn to configure ID systems (eg, snort) and analyze their output; They will also understand both network-based and host-based monitoring techniquesCOMP 448 Network Security (3 Credit Hours)
This course will involve a discussion of the methods and tactics used to keep attackers at bay as well as the mechanisms by which we can identify and potentially stop potential intruders. The course covers topics such as Encryption, authentication, firewalls, NAT/PAT, restricted access policies, intrusion detection and other security frameworks.
Students will gain an understanding of how to secure computers and network environments
Outcomes
Students will gain an understanding of how to secure computers and network environmentsCOMP 449 Wireless Networking and Security (3 Credit Hours)
Pre-requisites: COMP 271
This course will explore the wireless standards, authentication issues, common configuration models for commercial versus institution installs and analyze the security concerns associated with this ad-hoc method of networking.
Students will gain an understanding of wireless networking, protocols, and standards and security issues
Outcomes
Students will gain an understanding of wireless networking, protocols, and standards and security issuesCOMP 451 Enterprise Networking (3 Credit Hours)
Pre-requisites: COMP 271
Management of complex, high-speed, heterogeneous computer networks. Device management using SNMP and related protocols. Configuration and use of Network Management Systems. Data-flow management using LARTC and similar tools.
Ability to interpret SNMP network data, ability to implement a Network Management System and use it to identify bottlenecks, familiarity with traffic-control principles and mechanisms
Outcomes
Ability to interpret SNMP network data, ability to implement a Network Management System and use it to identify bottlenecks, familiarity with traffic-control principles and mechanismsCOMP 452 Introduction to Computer Vulnerabilities (3 Credit Hours)
This course will introduce students to computer vulnerabilities at the machine-code level, including viruses, browser vulnerabilities, buffer and heap overflows, return-to-libc attacks and others.
Describe some recent computer software vulnerabilities; Describe how vulnerabilities can be leveraged into an attack; Describe a vulnerability or attack at the machine-code level
Outcomes
Describe some recent computer software vulnerabilities; Describe how vulnerabilities can be leveraged into an attack; Describe a vulnerability or attack at the machine-code levelCOMP 453 Database Programming (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 400B
This course will cover advanced concepts in database access and programming including SQL, JDBC, SQLJ, JSP and servlets. Oracle 10g is used for projects.
Students will learn application development using the latest software tools; Students will also learn techniques for web based data retrieval and manipulation
Outcomes
Students will learn application development using the latest software tools; Students will also learn techniques for web based data retrieval and manipulationCOMP 458 Big Data Analytics (3 Credit Hours)
Pre-requisites: At least a C in the following courses (COMP 405 or COMP 453) AND (COMP 406 or COMP 479 or STAT 338 or STAT 408)
In this course, large data sets will be leveraged to solve challenging analytics problems. With more samples, analytics can use more complex learning models to automate more feature combinations for more robust model tuning, selection, and validation. Parallel, distributed processing will be performed with Apache Spark and Hadoop.
Python or R will be used with parallel frameworks to perform proper model selection when testing large combinations of features, models, hyperparameters, and ensembles, with additional emphasis on deep learning
Outcomes
Python or R will be used with parallel frameworks to perform proper model selection when testing large combinations of features, models, hyperparameters, and ensembles, with additional emphasis on deep learningCOMP 460 Algorithms & Complexity (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 363
This course will focus both on presenting general techniques for designing correct and efficient algorithms, as well as on formal methods for proving the correctness and analyzing the complexity of such algorithms.
Students learn: the ability to design and analyze efficient algorithms; understanding of the necessary models and mathematical tools; understanding of a variety of useful data structures and fundamental algorithms; exposure to the classification of computational problems into different complexity classes
Outcomes
Students learn: the ability to design and analyze efficient algorithms; understanding of the necessary models and mathematical tools; understanding of a variety of useful data structures and fundamental algorithms; exposure to the classification of computational problems into different complexity classesCOMP 462 Advanced Computer Architecture (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 264
This course presents key principles underlying the design of modern digital computers. The course introduces quantitative techniques used to guide the design process. It describes CPU performance issues and introduces instruction set architectures. The course then uses a hypothetical computer design, with a simple RISC architecture, to show how modern digital computers are implemented, first using a simple non-pipelined implementation, followed by a higher-performance pipelined implementation.
Students gain an understanding of the design of the memory hierarchy in modern digital computers, caching and virtual storage techniques, multiprocessor systems, and distributed shared memory systems
Outcomes
Students gain an understanding of the design of the memory hierarchy in modern digital computers, caching and virtual storage techniques, multiprocessor systems, and distributed shared memory systemsCOMP 464 High-Performance Computing (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 413
This course will use a blend of foundational understanding as well as a set of practical tools to gain insight into performance engineering of software. The course introduces techniques to gain performance boost in Java programs and C++ (or C) programs by discussing the use of multiple processors.
Students will learn shared memory, message passing and hybrid models of programming in both tightly-coupled and loosely-coupled computer systems
Outcomes
Students will learn shared memory, message passing and hybrid models of programming in both tightly-coupled and loosely-coupled computer systemsCOMP 468 Database System Design (3 Credit Hours)
The course covers both relational and object databases. Issues of physical storage and use of indexes as well as optimization of queries are discussed. The course also covers transaction processing, concurrency, data warehousing, data mining, and distributed databases.
Students learn the theory and practice of advanced database design and implementation; They will also gain an understanding of using commercial database environments such as Oracle
Outcomes
Students learn the theory and practice of advanced database design and implementation; They will also gain an understanding of using commercial database environments such as OracleCOMP 469 Physical Design and Fabrication (3 Credit Hours)
This course explores how things are made, including: physical design vs. design on non-physical things; rapid prototyping; 3D printing; 2D conceptualization and sketching; modeling.
Student will be able to: Visualize ideas via sketching basic shapes; Create 3D models using 3D modeling software; Use a 3D Printer; Give constructive feedback in peer review sessions
Outcomes
Student will be able to: Visualize ideas via sketching basic shapes; Create 3D models using 3D modeling software; Use a 3D Printer; Give constructive feedback in peer review sessionsCOMP 470 Software Quality and Testing (3 Credit Hours)
In this programming intensive course, students will learn effective automation, testing, and use of software metrics through the practices of Test Driven Development and Continuous Deployment.
Students will be able to perform rigorous testing techniques that contribute to operational reliability, and identify programming practices that both contribute to software maintainability and help to avoid errors
Outcomes
Students will be able to perform rigorous testing techniques that contribute to operational reliability, and identify programming practices that both contribute to software maintainability and help to avoid errorsCOMP 471 Theory of Programming Languages (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 413
There are over two thousand programming languages. This course studies several languages that represent the much smaller number of underlying principles and paradigms.
COMP 472 Compiler Construction (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 413
This course covers the basics of writing a compiler to translate from a simple high-level language to machine code. Topics include lexical analysis, top-down and LR parsing, syntax-directed translation, and code generation and optimization. Students will write a small compiler.
Students will learn the theory and practice of how to build a compiler
Outcomes
Students will learn the theory and practice of how to build a compilerCOMP 473 Advanced Object Oriented Programming (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 413
Object-orientation continues to be a dominant approach to software development. This advanced programming-intensive course studies object-oriented analysis, design, and implementation from a design patterns perspective.
Proficiency in the use of object-oriented languages, frameworks, and patterns; advanced understanding of key language mechanisms such as delegation, inheritance, polymorphism, and reflection; familiarity with object-oriented modeling and development tools and test-driven development
Outcomes
Proficiency in the use of object-oriented languages, frameworks, and patterns; advanced understanding of key language mechanisms such as delegation, inheritance, polymorphism, and reflection; familiarity with object-oriented modeling and development tools and test-driven developmentCOMP 474 Software Engineering (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 400B
The course discusses real-world theory and techniques organizations use to create high-quality software on time. Students work on a large programming team to create plans, review progress, measure quality, and make written and oral analyses of their project.
Students will experience process based development, understand the dynamics of a professional software organization, and develop skills for implementing software with others
Outcomes
Students will experience process based development, understand the dynamics of a professional software organization, and develop skills for implementing software with othersCOMP 476 Automata & Formal Languages (3 Credit Hours)
This course introduces formal language theory, including such topics as finite automata and regular expressions, pushdown automata and context-free grammars, Turing machines, undecidability, and the halting problem.
Course equivalencies: X-COMP476/MATH476
An understanding of the theoretical underpinnings of computability and complexity in computer science
Outcomes
An understanding of the theoretical underpinnings of computability and complexity in computer scienceCOMP 477 IT Project Management (3 Credit Hours)
Pre-requisites: A grade of "B-" or better in COMP 400B
This course is an introduction to the philosophy and practice of project management. The course involves a student group project to investigate and plan a 'real world' IT project that specifies project objectives, schedules, work breakdown structure, and responsibilities, an written interim report, and a final oral and written report.
Students will learn time management, work-flow management, and team dynamics to design, implement and test large-scale software projects
Outcomes
Students will learn time management, work-flow management, and team dynamics to design, implement and test large-scale software projectsCOMP 479 Machine Learning (3 Credit Hours)
Topics include a wide variety of supervised learning methods, both regression and classification, with an emphasis on those that perform well on large feature sets.
Students in this course will learn how to apply sophisticated algorithms to large data sets to make inferences for prediction or decision making
Outcomes
Students in this course will learn how to apply sophisticated algorithms to large data sets to make inferences for prediction or decision makingCOMP 480 Computer Graphics (3 Credit Hours)
This course introduces advanced topics in modern theory and practices in 3-D computer graphics, stressing real-time interactive applications using libraries like OpenGL.
Student will learn how to program real-time interactive applications using libraries like OpenGL
Outcomes
Student will learn how to program real-time interactive applications using libraries like OpenGLCOMP 483 Computational Biology (4 Credit Hours)
Pre-requisites: BIOL 488
This course presents an algorithmic focus to problems in computational Biology. As such it is built on earlier courses on algorithms and bioinformatics. Current algorithmic approaches, software tools, and scientific literature are discussed.
Students will learn, in detail, foundational methods and algorithms in bioinformatics
Outcomes
Students will learn, in detail, foundational methods and algorithms in bioinformaticsCOMP 484 Artificial Intelligence (3 Credit Hours)
This course advanced artificial intelligence concepts including theory, search techniques and programming.
Student will learn the theory of artificial intelligence, search techniques, and be able to build small applications based on it
Outcomes
Student will learn the theory of artificial intelligence, search techniques, and be able to build small applications based on itCOMP 486 Computational Neuroscience (3 Credit Hours)
Introduces computational methods to understand neural processing in the brain. Levels of representation from low-level, temporally precise neural circuits to systems-level rate-encoded models, to information-theoretic approaches. Emphasis on sensory systems, primarily vision and audition, most readily demonstrating the need for such computational techniques.
Students will be able to adeptly apply mathematical and computational frameworks in the various domains of neuroscience
Outcomes
Students will be able to adeptly apply mathematical and computational frameworks in the various domains of neuroscienceCOMP 487 Deep Learning (3 Credit Hours)
Pre-requisites: COMP 479
Deep learning is part of a broader family of machine learning methods based on artificial neural networks. This course will include key concepts of neural network algorithms as well as their applications in computer vision and natural language processing.
Students will analyze popular modern neural architectures such as convolutional and recurrent neural networks, design and evaluate their own neural networks, and apply neural network models to a practical task
Outcomes
Students will analyze popular modern neural architectures such as convolutional and recurrent neural networks, design and evaluate their own neural networks, and apply neural network models to a practical taskCOMP 488 Computer Science Topics (1-4 Credit Hours)
This course is used to introduce emerging topics in computer science that do not yet have a regular course number. Content of the course varies.
Understanding of an emerging area of Computer Science
Outcomes
Understanding of an emerging area of Computer ScienceCOMP 490 Independent Project (1-6 Credit Hours)
Pre-requisites: Approval of the Computer Science faculty member supervisor
An independent project in computer science or related disciplines, under the supervision of a member of the faculty.
COMP 499 Internship (1-6 Credit Hours)
An opportunity to obtain experience in software development, design, networks, or related activities in computer science in a professional setting. The student must obtain the approval of the Graduate Program Director and the student's work supervisor. A final report from the student and the supervisor are required.
COMP 501 Equitable and Inclusive Computer Science Pedagogy (3 Credit Hours)
Pre-requisites: COMP 400C; Graduate standing
This class covers the design of computer science courses through an equity and inclusion lens, and covers evidence-based best practices as applied to specific student concerns. Includes basics of teaching and learning theory and pedagogical techniques, and equity, diversity, and justice concerns.
Ability to explain justice-centered CS education; understand pedagogical frameworks; understand assessment approaches; understand Active Learning and Peer Instruction
Outcomes
Ability to explain justice-centered CS education; understand pedagogical frameworks; understand assessment approaches; understand Active Learning and Peer InstructionCOMP 502 Structure of Research Management and Funding (3 Credit Hours)
Pre-requisites: COMP 400C; Graduate standing
This class covers grant-proposal development, University compliance regulations, and laboratory and research management.
Ability to create successful grant proposals and to understand research management
Outcomes
Ability to create successful grant proposals and to understand research managementCOMP 503 Technology Entrepreneurship (3 Credit Hours)
Pre-requisites: COMP 400C; Graduate standing
This course provides aspiring researchers with the skills to pursue new ventures and technology commercialization. Students learn how to transition an innovation from the lab to the marketplace.
COMP 595 Thesis Supervision (0 Credit Hours)
Supervision for students working on a thesis while not for other classes. Restricted to students enrolled in the MS in Computer Science.
COMP 605 Master of Science Study (0 Credit Hours)
Course for continuing master's degree students engaged in study.