Undergraduate Courses

  • 4115 - FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

    Introduces students to the formal language theory that underlies modern computer science. Topics include different representational forms for regular languages, context-free grammars, pushdown automata, pumping lemmas for regular and context-free languages, and Chomsky's hierarchy.

    Credit Hours: 3
    Coordinator: Barrett Bryant
    Prerequisites:

    CSCE 2100 and CSCE 2110

    Textbook:

    Introduction to Automata Theory, Languages & Computation, Hopcroft, Motwani, Ullman, 3rd edition, Addison Wesley, ISBN 9780321462251

    Course Outcomes:
    1. Convert a regular expression to an equivalent NFA or DFA.
    2. Apply the pumping lemma for regular languages to prove that a given non-regular language is, in fact not regular.
    3. Apply the pumping lemma for context-free languages to prove that, given a grammar, G, that is not context-free that G, in fact, is not context-free.
    4. Prove that any context-free grammar, G, can be converted to a pushdown automata that accepts the same language as G.
    5. Describe the concept of undecidability, give an example of an undecidable language, UL, and prove that UL is undecidable.
    6. Demonstrate that a "real" computer can be simulated by a Turing machine.
    7. Demonstrate the concept of NP-completeness, give an example of an NP-complete problem NPCP, and prove that NPCP is NP-complete.
  • 4160 - Parallel Programming

    Introduction to processing in parallel and distributed computing environments. General concepts of parallel machine models, processes, threads, mutual exclusion, synchronization and message passing. Design and analysis of parallel algorithms for engineering and scientific applications. Parallel programming using message passing and shared memory paradigms. 

    Credit Hours: 3
    Prerequisites:

    CSCE 3600

  • 4200 - WEB SEARCH AND INFORMATION RETRIEVAL

    Covers traditional material and recent advances in information retrieval, study of indexing, processing and querying textual data, basic retrieval models, algorithms and information retrieval system implementations. Covers advanced topics in intelligent information retrieval, including natural language processing techniques, smart web agents, and recommender systems.

    Credit Hours: 3
    Coordinator: Wei Jin
    Prerequisites:

    CSCE 3110

    Textbook:

    Introduction to Information Retrieval, 1st Edition, by Christopher D. Manning, Hinrich Schutze, and Prabhakar Raghavan  ISBN-13: 978-0521865715

    Course Outcomes:
    1. Demonstrate understanding of core concepts in text-based information retrieval techniques, such as inverted indexes, vector space model, and TF-IDF term weighting.
    2. Demonstrate understanding of Boolean retrieval models. Show how Boolean queries can be processed and how to optimize query processing.
    3. Demonstrate understanding of linguistic modules used in document preprocessing and how to process queries that have spelling errors and other imprecise matches to the vocabulary used in the document collection. 
    4. Demonstrate understanding of ranked retrieval models and a number of algorithms for constructing the inverted index from a text collection.
    5. Design and implement a complete information retrieval system and evalute its performance by applying the learned knowledge. 
  • 4201 - INTRODUCTION TO ARTIFICIAL INTELLIGENCE

    Introduction to concepts and ideas in artificial intelligence. Topics include search techniques, knowledge representation, control strategies and advanced problem-solving architecture.

    Credit Hours: 3
    Coordinator: Rodney Nielsen
    Prerequisites:

    CSCE 3210

    Textbook:

    Artificial Intelligence, A Modern Approach, Stuart Russel, Peter Norvig. ISBN 9780136042594

    Course Outcomes:
    1. Use and create programs that demonstrate understanding of search algorithms: depth first, breadth first, A*, Hill-climbing.
    2. Implement programs that demonstrate understanding of two-person games.
    3. Demonstrate understanding of knowledge-based systems.
    4. Demonstrate basic principles of computing different machine learning algorithms.
    5. Use and create programs that show understanding of machine learning techniques (decision trees).
  • 4205 - Machine Learning

    Introduction to concepts and ideas in artificial intelligence, including topics such as search techniques, knowledge representation, problem-solving, logic, probabilistic reasoning, learning, perception and natural language processing.

    Credit Hours: 3
    Coordinator: Rodney Nielsen
    Prerequisites:

    CSCE 3210

    Textbook:

    Artificial Intelligence, A Modern Approach, Stuart Russel, Peter Norvig. ISBN 9780136042594

    Course Outcomes:

    1.     Use and create programs that demonstrate understanding of search algorithms: depth first, breadth first, A*, Hill-climbing.

    2. Implement programs that demonstrate understanding of two-person games.

    3. Demonstrate understanding of knowledge-based systems.

    4. Demonstrate basic principles of computing different machine learning algorithms.

    5. Use and create programs that show understanding of machine learning techniques (decision trees).

  • 4210 - GAME PROGRAMMING I

    Introduction to game programming, including real-time, event-driven, and multimedia programming techniques. Graphics, sound and input programming. Students learn how to program a billboard game in 3-D with constrained camera motion.

    Credit Hours: 3
    Coordinator: Ian Parberry
    Prerequisites:

    CSCE 2100

    Textbook:

    None required

    Course Outcomes:
    1. Be familiar with Windows programming.
    2. Be able to use Visual C++.
    3. Be able to use the Microsoft Direct3D SDK.
    4. Be able to program a 3D billboard game.
    5. Be able to work in a team with other programmers using version control.
    6. Be able to code one or more aspects of a game, including graphics, sound, and gameplay.
  • 4220 - GAME PROGRAMMING II

    Game engine programming techniques, including real-time 3D graphics programming, shader techniques, terrain rendering, level of detail, collision detection, particle engines, 3D sound and character animation.

    Credit Hours: 3
    Coordinator: Ian Parberry
    Prerequisites:

    CSCE 4210, CSCE 4215

    Textbook:

    Introduction to Game Physics with Box2D, 2013, Ian Parberry, ISBN 9781466565760

    Course Outcomes:
    1. Knowledge of the basic techniques of 3D game programming.
    2. Experience working with a commercial grade game engine.
    3. Ability to program a 3D game.
    4. Ability to use more than one revision control system.
    5. Experience with programming using a very large code base.
  • 4230 - INTRODUCTION TO COMPUTER GRAPHICS

    Basic Euclidian geometry and linear algebra, computer graphics algorithms and data structures, OpenGL and its inner workings.

    Credit Hours: 3
    Prerequisites:

    CSCE 2100, CSCE 2110, MATH 2700

    Textbook:

    OpenGL Programming Guide; Dave Shreiner, Graham Sellers, John Kessenich, Bill Licea-Kane; Addison Wesley.                   ISBN 9780321773036   

    Computer Graphics with OpenGL; Donald Hearn, P

    Course Outcomes:
    1. Analyze, modify and implement existing computer graphics algorithms.
    2. Design and implement new computer graphics algorithms that are effective and efficient.
    3. Develop and apply knowledge of computer graphics hardware effectively in the design and implementation of graphics algorithms.
    4. Create computer graphics applications using standard graphics libraries and products, including OpenGL.
    5. Use basic matrix and vector operations and related concepts from linear algebra in the design and development of graphics algorithms and applications.
  • 4240 - INTRODUCTION TO DIGITAL IMAGE PROCESSING

    Covers fundamental knowledge of digital image processing techniques, including image formation, filtering and image enhancement, restoration, region and edge segmentation, and image coding.

    Credit Hours: 3
    Coordinator: Xiaohui Yuan
    Prerequisites:

    CSCE 2100 and CSCE 2110

    Textbook:

    Digital Image Processing, 4th Edition; Pearson.                        ISBN 9780133356724

    Course Outcomes:
    1. Demonstrate understanding of the basic concepts of image acquisition, sampling, and quantization.
    2. Demonstrate understanding of the color spaces and color transformation.
    3. Demonstrate understanding of spatial and frequency filtering techniques.
    4. Demonstrate understanding of the fundamental image enhancement algorithms such as histogram modification and edge detection.
    5. Develop writing and presentation skills to communicate digital image processing related topics.
  • 4250 - TOPICS IN GAME DEVELOPMENT

    Advanced topics in game development, possibly including but not limited to character animation, procedural content generation, shader techniques and graphics special effects. Discussion of articles from the recent academic and technical literature on game development and related material from relevant computer science areas.

    Credit Hours: 3
    Coordinator: Ian Parberry
    Prerequisites:

    CSCE 4210. Corequisite: CSCE 4220

    Textbook:

    No textbooks required

    Course Outcomes:
    1. Ability to perform a literature search for academic game development articles.
    2. Ability to formulate a game development related project using forward-looking academic articles.
    3. Ability to devise metrics for measuring the viability of a game development related project.
    4. Experience with writing code for and evaluating those metrics.
    5. Experience with interpreting and pitching the results to a game development team.
  • 4255 - Programming Math and Physics for Games

    Fundamentals of game math and physics for game development, including linear algebra, matrix math for graphics, quaternions, basic physics equations, game math and physics implementation, physics engines.

    Credit Hours: 3
    Prerequisites:

    Math 2700,CSCE 3110, PHYS 1710/PHYS 1730

  • 4290 - INTRODUCTION TO NATURAL LANGUAGE PROCESSING

    Introduction to natural language processing, modern theories of syntax, context free parsing, transformational syntax and parsing, computational semantics, and survey of natural language processing systems.

    Credit Hours: 3
    Coordinator: Eduardo Blanco
    Prerequisites:

    CSCE 3110

    Textbook:

    Daniel Jurafsky and James H. Martin. Speech and Language Processing: An Introduction to Natural
    Language Processing, Computational Linguistics, and Speech Recognition, 2nd Edition; Prentice Hall. ISBN 970013873216.

    Course Outcomes:

    1.    Define and evaluate regular expressions.
    2.    Understand n-grams, language models and smoothing techniques.
    3.    Understand and solve the problem of part-of-speech tagging.
    4.    Understand Hidden Markov Models and the Viterbi algorithm.
    5.    Define formal grammars and recognize the language accepted by a grammar.
    6.    Understand basic syntactic parsing algorithms (CKY, Early, etc.) and statistical parsing.
    7.    Understand some problems in computational semantics, for example, semantic role labeling, lexical semantics, word sense disambiguation.
    8.    Familiarity with knowledge-based and statistical approaches in NLP.
     

  • 4300 - Intro to Big Data and Data Science

    Introduction to Big Data and Data Science including an overview of the field, technical challenges, computational approaches, practical applications, structured and unstructured data processing, empirical methods in computer science, data analytics and learning, data visualization, privacy and ethics. Emphasis will be on Big Data and its effect on other topics within Data Science, its technical characteristics, and state-of-the-art Big Data analytics architectures and tools.

    Credit Hours: 3
    Prerequisites:

    CSCE 3110

  • 4350 - INTRODUCTION TO DATABASE SYSTEMS DESIGN

    Logical and physical database system organization, logical models, design issues, secondary storage considerations

    Credit Hours: 3
    Coordinator: JungHwan Oh
    Prerequisites:

    CSCE 2100 and CSCE 2110

    Textbook:

    Database System Concepts, Abraham Silberschatz, Henry Korth, S. Sudarshan, 2010, ISBN 9780073523323

    Course Outcomes:
    1. Analyze a problem to determine its data requirements.
    2. Create a database that satisfies the given data requirements.
    3. Store, maintain and access data in a database using SQL.
    4. Understand and demonstrate how B+-tree and hashing speed data access.
    5. Understand and use the theory of functional dependencies for DB design.
  • 4355 - DATABASE ADMINISTRATION

    Database administration skills covering installation, configuration and tuning a database, administering servers and server groups, managing and optimizing schemas, tables, indexes, and views, creating logins, configuring permissions, assigning roles and performing other essential security tasks, backup and recovery strategies, automation and maintenance.

    Credit Hours: 3
    Coordinator: Ryan Garlick
    Prerequisites:

    CSCE 4350

    Textbook:

    Database System Concepts, 6th Edition, Silberschatz, McGraw-Hill, ISBN 97800733523323

    Course Outcomes:
    1. Install, configure and tune a database.
    2. Maintain and administer servers and server groups.
    3. Manage and optimize schemas, tables, indexes and views.
    4. Create logins, configure permissions, assign roles and perform essential security tasks.
    5. Provide adequate backup and recovery strategies and maintenance.
    6. Develop scripts to automate much of the data administration necessary.
  • 4357 - Database Systems Security

    Provides a strong foundation in the principles, practices, and methodologies of database security and auditing as well as their impact on the design of today’s information systems. Introduces the security challenges and threats in databases systems and provides an understanding of current security technologies. Topics include database application security models, security architecture, access controls, database and database auditing, trust management, privacy, threat vectors, and attack methods.

    Credit Hours: 3
    Prerequisites:

    CSCE 4350

  • 4380 - Data Mining

    Fundamental concepts and techniques of data mining, including data attributes, data pre-processing,  statistical foundations, association discovery, mining frequent patterns, classification methods, prediction and cluster analysis.   

    Credit Hours: 3
    Prerequisites:

    CSCE 3110

  • 4430 - PROGRAMMING LANGUAGES

    Formal definition of programming languages including specification of syntax and semantics.  Comparison of several existing high-level languages.

    Credit Hours: 3
    Coordinator: Paul Tarau
    Prerequisites:

    CSCE 2100 and CSCE 2110

    Course Outcomes:
    1. Identify and describe the key components of programming language processors (i.e., compilers and interpreters). 
    2. Identify and describe the key concepts of object-oriented programming languages, including inheritance, reflection, and polymorphism.    
    3. Identify and describe the key concepts of functional programming languages, including recursion, higher-order functions, polymorphism, type inference and infinite data objects.    
    4. Identify and describe the key concepts of logic programming languages, including unification, backtracking, and the closed world assumption.    
    5. Identify and describe the key concepts of event driven programming, including event listeners.     
    6. Identify and describe the key concepts of concurrent programming, including threads.  
  • 4440 - REAL-TIME SOFTWARE DEVELOPMENT

    Specification of real-time system requirements, timing, synchronization and fault-tolerance issues, construction and validation of real-time software. Mathematical formalisms, design and analyses using real-time UML are also emphasized.

    Credit Hours: 3
    Coordinator: Song Fu
    Prerequisites:

    CSCE 3612

    Textbook:

    Required: Real Time UML Workshop for Embedded Systems, Douglass, Newnes, ISBN 9780750679060, Optional: Real Time UML, 3rd edition, Douglass, Addison Wesley, ISBN 9780321160768.

    Course Outcomes:
    1. Demonstrate an understanding of the characteristics of real-time systems and the key issues and challenges in the design of real-time software, including meeting deadlines, execution predictability, space and energy limitations.
    2. Apply the development methodology for real-time systems and compute the trade offs between hard and soft real-time systems.
    3. Demonstrate the use of the real-time UML in modeling a real-time software system.
    4. Gain experience with schedule validation techniques and how these techniques differ between hard and soft deadlines in real-time systems.
    5. Evaluate the timing, synchronization and fault tolerance issues of real-time software development.
  • 4460 - SOFTWARE TESTING AND EMPIRICAL METHODOLOGIES

    Addresses recent advances in the field of software testing, including empirical methodologies that provide a systematic way to investigate various software engineering techniques and methodologies. Students learn various fundamental testing techniques and the state of the art in testing techniques, and understand how to design, conduct, analyze, and write up empirical studies of software engineering technologies.

    Credit Hours: 3
    Coordinator: Hyunsook Do
    Prerequisites:

    CSCE 2110

    Course Outcomes:
    1. Demonstrate understanding of fundamental testing concepts that are required to verify and validate software products.
    2. Demonstrate knowledge of different types of testing techniques such as structural (white-box) and functional (black-box) testing techniques.
    3. Demonstrate knowledge of different levels of software testing that can be applied to different software development phases (e.g., unit, integration, system, and acceptance testing).
    4. Demonstrate understanding of recent advances in software testing techniques by reading recent research papers and present them in class.
    5. Design, conduct, analyze, and write up empirical studies of software engineering techniques.

Pages