Undergraduate Courses

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

  • 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.
  • 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.
  • 4510 - INTRODUCTION TO WIRELESS COMMUNICATIONS

    Fundamentals of wireless communications and networking, with emphasis on first, second, and third generation cellular systems and satellite communication. Topics include point-to-point signal transmission through a wireless channel, cellular capacity, multi-user transmissions, and mobility management.

    Credit Hours: 3
    Coordinator: Robert Akl
    Prerequisites:

    CSCE 2610, MATH 2730

    Textbook:

    Wireless Communication Networks & Systems; Beard, Pearson. ISBN 9780133594171

    Course Outcomes:
    1. Calculate path loss, bit error rate and channel capacity in various wireless channel conditions.
    2. Model various analog and digital modulation techniques mathematically as well as demonstrate their applications.
    3. Describe advanced multiplexing techniques such as spread spectrum and OFDMA including their advantages, disadvantages and applications.
    4. Design channel coding schemes for error control.
    5. Describe the architecture and physical and MAC layers of Wireless LANs, Wireless PANs and cellular networks including 4G and LTE.
  • 4520 - WIRELESS NETWORKS AND PROTOCOLS

    Architecture and elements of a wireless network. Use and process of mobility management. Signaling schemes used in wireless networks, network signaling, protocols and standards (GSM, IS-95, WAP, MobileIP, GPRS, UMTSand CDMA2000m, 4G/LTE). Analyze the operation and performance of wireless protocols. Interworking of wireless and wireline networks.

    Credit Hours: 3
    Coordinator: Ram Dantu
    Prerequisites:

    CSCE 3600

    Textbook:

    No textbook required

    Course Outcomes:
    1. Basic operation of a cellular network.
    2. Understanding basic operation of different network elements of a cellular network.
    3. Basic understanding of soft and hard handoff.
    4. Basic understanding of function of interfaces between BTS, BSC, MSC and PSTN.
    5. Understanding basic issues related to supporting QoS in voice and data services in cellular networks.
    6. Understanding the basic operation of 4G networks and interworking of wireless and wireline networks.
  • 4530 - COMPUTER NETWORK DESIGN

    Fundamental concepts, requirements and design tradeoffs, particularly as related to scheduling, congestion control, routing, and traffic management. Wireless access, mobility (including WLAN), VoIP and applications. Firewalls, NATs, VPN, high availability and optical rings.

    Credit Hours: 3
    Coordinator: Ram Dantu
    Prerequisites:

    CSCE 3530

  • 4535 - INTRODUCTION TO NETWORK ADMINISTRATION

    Students explore topics in network administration in theoretical and practical way, study different software platforms, control, shared resources, administration, security, anti-virus procedures and methodologies.

    Credit Hours: 3
    Coordinator: Pradhumna Shreatha
    Prerequisites:

    CSCE 3530

    Textbook:

    Unix + Linux System Admin Handbook 5th Edition; Nemeth, Pearson. ISBN 9780133594140

    Course Outcomes:
    1. Demonstrate understanding of IP addressing, sub-netting and networks configuration but configuring and setting up a network across a heterogeneous group of computers.
    2. Describe network planning and design of local-area-network (LAN) and wide-area-network (WAN) networks.
    3. Describe quality of service (QoS) parameters and how they relate to network availability.
    4. Configure, operate and troubleshoot routing protocols such as Open-Shortest-Path-First (OSPF) and Border-Gate-Protocol (BGP).
    5. Install and configure simple network security tools such as Intrusion-Prevention-System (IPS), Intrusion-Detection-System (IDS), firewalls and virus scanners.
    6. Evaluate network performance both by simulation and by designing, gathering, and analyzing experiments.
  • 4540 - TCP/IP PROTOCOLS

    Investigation of the TCP/IP protocol suite, components, and interaction with operating systems. Topics include special protocols, routing protocols, MobileIP, as well as some applications: FTP, TELNET, SMTP, DHCP, HTTP, DNS, etc.

    Credit Hours: 3
    Coordinator: Ram Dantu
    Prerequisites:

    CSCE 3530

  • 4550 - INTRODUCTION TO COMPUTER SECURITY

    Security goals, threats and vulnerabilities. Cryptography, program security and operating system security issues. Basic network security. Planning, policies and risk analysis.

    Credit Hours: 3
    Coordinator: Hassan Takabi
    Prerequisites:

    CSCE 3600

    Textbook:

    Security in Computing, Charles Pfleeger, Shari Pfleeger, 2006, ISBN 9780132390774

    Course Outcomes:

    1.    Demonstrate an understanding of common security and privacy terminology, concepts, threats, vulnerabilities, and security design principles.
    2.    Demonstrate an understanding of basic cryptography concepts, and specific commonly used algorithms and protocols.
    3.    Demonstrate an understanding of common program vulnerabilities, and secure programming techniques.
    4.    Demonstrate an understanding of formal security models, including Bell-LaPadula (MLS), Biba, and Chinese Wall security.
    5.    Demonstrate an understanding of basic network security issues and controls.
    6.    Demonstrate an understanding of administrative issues in security, such as planning, security policies, and risk analysis.
    7.    Obtain hands-on experience in using common security tools, such as firewalls, intrusion detection systems, and port scanning software.
     

  • 4555 - COMPUTER FORENSICS

    Security goals, threats and vulnerabilities, Cryptography, program security and operating system security issues. Basic network security. Planning, policies and risk analysis.

    Credit Hours: 3
    Coordinator: Mark Thompson
    Prerequisites:

    CSCE 3600

    Course Outcomes:

    1. Demonstrate general knowledge and comprehension of computer forensics and computer investigations.

    2. Describe and explain the Windows, Macintosh, and Unix/Linux operating systems data storage and methodologies.

    3. Describe and explain the methods used for digital evidence control, processing crime and incident scenes, and data acquisition for computer forensic analysis.

    4. Demonstrate knowledge and comprehension of basic tools and techniques used in the field of computer forensics sciences.

    5. Describe and explain writing investigation reports and being an expert witness.

  • 4560 - SECURE ELECTRONIC COMMERCE

    Electronic commerce technology, models and issues, with emphasis on security issues. Supporting technology such as cryptography, digital signatures, certifiticates and public key infrastructure (PKI), Security-conscious programming for web-based applications. Exposure to interaction between technical issues and business, legal and ethical issues.

    Credit Hours: 3
    Coordinator: Mark Thompson
    Prerequisites:

    CSCE 2100 and CSCE 2110

    Textbook:

    Lecture Notes, Slides and Online Resources. http://www.cse.unt.edu/~garlick/

    Course Outcomes:
    1. Knowledge of and experience with secure web development, with exposure to at least three current technologies (such as XML, Perl, PHP, ASP, JSP, JavaScript, etc.)
    2. Knowledge of how cryptography can be used to support confidentiality and integrity of electronic transmissions and transactions.
    3. Knowledge of electronic transaction and payment systems.
    4. Knowledge of Public Key Infrastructure (PKI) settings and trust models, with specific systems such as X.509 certificates and PGP\\'s decentralized web of trust.
    5. Familiarity with basic network and system security, and the ability to set up a typical electronic commerce setting of networks and hosts.
    6. Familiarity with business, legal, and ethical issues related to electronic commerce, and the interaction of these issues with technical issues.
  • 4600 - INTRODUCTION TO OPERATING SYSTEMS

    Concepts in operating system analysis and design. General topics of process, resource and file management are presented and analyzed in the context of different system architectures and performance constraints.

    Credit Hours: 3
    Coordinator: Armin R. Mikler
    Prerequisites:

    CSCE 3600

    Textbook:

    Operating System Concepts Essentials, Abraham Silberschatz, Peter Galvin, Greg Gagne, 2010, ISBN 9780470889206

    Course Outcomes:
    1. Use the principles of processes and threads for abstraction of real-world events.
    2. Formulate solutions for mutual exclusion and process synchronization.
    3. Understand the concept of deadlock to develop deadlock free systems of processes.
    4. Understand principles of memory and resource management.
    5. Identify different process scheduling paradigms and utilize them in system development.
    6. Develop fundamental security features to protect systems and data.
  • 4610 - COMPUTER ARCHITECTURE

    Study of performance issues and power requirements related to modern computer systems, including Instruction Level Parallelism, out-of-order instruction scheduling, branch prediction, speculative execution, cache memory, and concurrency.

    Credit Hours: 3
    Coordinator: Krishna Kavi
    Prerequisites:

    CSCE 3610; CSCE 3612

    Textbook:

    Computer Architecture w/CD, 5th edition, Hennessy, Morgan Kaufmann Publishers, ISBN 9780123838728

    Course Outcomes:
    1. Apply metrics to evaluate performance and power requirements of modern computer systems. Represent performance using arithmetic, harmonic and geometric means.
    2. Understand Amdahl’s law as applied to a single core and multicore systems.
    3. Design a pipelined processor to meet design specifications.
    4. Design an out-of-order and speculative processor to improve performance.
    5. Understand cache memory performance issues.
    6. Understand cache memory issues in multicore systems include cache coherency management.
    7. Understand hardware support for concurrency including multithreading, locks and barriers.
  • 4620 - REAL-TIME OPERATING SYSTEMS

    Basic real-time operating systems concepts and services, including interrupt processing, process and thread models, real-time software architectures and development environments. Detailed study of the design and implementation of real-time applications using real-time operating systems. Focus on commercial real-time operating systems/development environments, including vxWorks, RTOS and pOSEK/pOSEKSystem.

    Credit Hours: 3
    Coordinator: Song Fu
    Prerequisites:

    CSCE 3612

    Textbook:

    Real Time Concepts for Embedded Systems, 2nd Edition, Li, Elsev, ISBN 9781578201242

    Course Outcomes:
    1. Understand the differences between general purpose and real-time operating systems.
    2. Understand multithreading in real-time environment.
    3. Understand task and thread scheduling in real-time operating systems.
    4. Understand memory management in real-time systems.
    5. Be able to program using system proved timers, signals, mutual exclusion, semaphores, message queues and exception handlers.
    6. Be able to program real-time applications to run in a realistic operating environment.

Pages