Undergraduate Courses

  • 3410 - ADVANCED PROGRAMMING

    Advanced features and topics in modern programming languages and introduction to a variety of languages, and advanced programming concepts and methodologies. Topics vary by section and semester. May be repeated for credit as topics vary.

    Credit Hours: 3
    Coordinator: David Keathly
    Prerequisites:

    CSCE 2100

    Course Outcomes:

    For C++:

    1. Be able to develop, design and implement simple computer programs.
    2. Understand functions and parameter passing.
    3. Be able to do numeric (algebraic) and string-based computation.
    4. Understand object-oriented design and programming.
    5. Understand dynamic memory allocation and pointers.
    6. Be able to design, implement, and test relatively large C++ programs.

    For JAVA:

    1. Understand the format and use of objects.
    2. Understand basic input/output methods and their use.
    3. Understand object inheritance and its use.
    4. Understand development of JAVA applets vs. JAVA applications.
    5. Understand the use of various system libraries.

    For PHP:

    1. Understand process of executing a PHP-based script on a webserver.
    2. Be able to develop a form containing several fields and be able to process the data provided on the form by a user in a PHP-based script.
    3. Understand basic PHP syntax for variable use, and standard language constructs, such as conditionals and loops.
    4. Understand the syntax and use of PHP object-oriented classes.
    5. Understand the syntax and functions available to deal with file processing for files on the server as well as processing web URLs.
    6. Understand the paradigm for dealing with form-based data, both from the syntax of HTML forms, and how they are accessed inside a PHP-based script.

    For .NET:

    1. Display proficiency in C# by building stand-alone applications in the .NET framework using C#.
    2. Create distributed data-driven applications using the .NET Framework, C#, SQL Server and ADO.NET
    3. Create web-based distributed applications using C#, ASP.NET, SQL Server and ADO.NET
    4. Utilize DirectX libraries in the .NET environment to implement 2D and 3D animations and game-related graphic displays and audio.
    5. Utilize XML in the .NET environment to create Web Service-based applications and components.

    For Android Programming:

    1. Understand the existing state of mobile app development via researching existing apps, meeting with industry professionals, and formulating new ideas.
    2. Display proficiency in coding on a mobile programming platform.
    3. Understand the limitations and features of developing for mobile devices.
    4. Create a complete Mobile app with a significant programming component, involving the sensors and hardware features of the phone.
    5. Understand the economics and features of the app marketplace by offering the app for download.
  • 3420 - INTERNET PROGRAMMING

    Covers Internet programming in depth, including client-server, peer-to-peer, and web applications. Primary goal is to help students understand the principles of how distributed applications are built, while also giving them practical experience in creating common Internet applications.

    Credit Hours: 3
    Coordinator: Ryan Garlick
    Prerequisites:

    CSCE 2100 and CSCE 2110

    Textbook:

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

    Course Outcomes:
    1. Demonstrate knowledge of Internet structure and basic protocols, with an emphasis on the client-server paradigm.
    2. Demonstrate knowledge of and proficiency in basic techniques for web-based design.
    3. Demonstrate knowledge of programming techniques for a web application.
    4. Demonstrate knowledge of collecting and processing information obtained through an Internet application, including integration with data storage.
    5. Develop web-based interactive functionality to process user data on the server-side.
  • 3444 - SOFTWARE ENGINEERING

    Modular design and implementation of software systems. Topics include requirements and specifications development, documentation of the design using current design tools such as UML, testing of software implementation, and system and user documentation.

    Credit Hours: 3
    Coordinator: Renee Bryce
    Prerequisites:

    CSCE 3110

    Textbook:

    Software Engineering: A Practitioner's Approach, 8th edition, Pressman, Maxim, McGraw Hill, ISBN 9780078022128

    Course Outcomes:
    1. Use UML for design, such as use cases and class diagrams.
    2. Conduct software testing, such as validation, integration, and unit testing.
    3. Conduct usability testing, such as heuristic evaluations.
    4. Participate in peer reviews such as code inspections.
    5. Communicate software product and process results in oral and written form.
  • 3450 - Global Software Development

    Students will be provided knowledge of and practical experience in working within a distributed collaborative team to develop a complex software product in an academic environment. Students learn how to use professional collaborative development tools in order to facilitate the completion of a large software product within a scheduled time frame. Students learn how to work in teams and understand the processes that govern the effectiveness of developing software systems in a global setting.

    Credit Hours: 3
    Prerequisites:

    CSCE 2100

  • 3520 - DATA COMMUNICATIONS

    Overview of data communication, communication models and networking. Analog and digital data transmission, transmission impairments, channel capacity, asynchronous and synchronous transmission, error detection and correction, flow control and error control. Multiplexing and de-multiplexing techniques (FDM, STDM, ADSL, and xDSL). Ethernet interfaces, IEEE 802.3 and IEEE 802.11 MAC layer. Interface Standards (RS-232, RS-449 and X.21). Packet switching, Frame Relay and ATM switching, bridges, layer2 and layer3 switches.

    Credit Hours: 3
    Coordinator: Ram Dantu
    Prerequisites:

    CSCE 3600

  • 3530 - INTRODUCTION TO COMPUTER NETWORKS

    Introduction to data communications, asynchronous, synchronous, networks and current technology.

    Credit Hours: 3
    Coordinator: Ram Dantu
    Prerequisites:

    CSCE 3600

    Textbook:

    Computer Networking with Access 7th edition; Kurose, Pearson. ISBN 9780133594140

    Course Outcomes:
    1. Understand a conceptual view of the role of computers in communications.
    2. Understand communication protocols in the Internet.
    3. Be able to do fundamental network programming.
    4. Understand different network architecture.
    5. Recognize the role of application protocols.
    6. Understand different routing and forwarding protocols.
  • 3550 - 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: Mark Thompson
    Prerequisites:

    CSCE 3600

    Textbook:

    Security in Computing, 5th Edition, Pfleeger, Pfleeger, & Margulies, Prentice Hall, 2015, ISBN 978-0-13-408504-3. 
    Reference Textbook: Introduction to Computer Security, Matt Bishop, Pearson, 2005, ISBN 0- 321-24744-2.

    Course Outcomes:

    1.     Understand common security terminology, threats, vulnerabilities, and security design principles.

    2. Understand basic cryptography concepts, and specific commonly used algorithms and protocols.

    3. Understand common program vulnerabilities, and secure programming techniques.

    4. Understand formal security models, including Bell-LaPadula (MLS), Biba, and Chinese Wall security.

    5. Understand basic network security issues and controls.

    6. Understand administrative issues in security, such as planning, security policies, and risk analysis.

    7. Understand privacy concepts and data anonymization.

    8. Obtain hands-on experience in using common security tools, such as firewalls, intrusion detection systems, and port scanning software.

  • 3560 - Computer Systems Security

    Introduces theoretical and practical aspects of computer systems security and present ways to protect a computer system. Topics include operating system security, hardware security modules, cryptoprocessors, hypervisors, trusted platform modules, virtualization security, storage security, trusted hardware, application isolation, and cloud and IoT security. Students will also explore emerging security challenges facing computer systems based on recent research papers.
     

    Credit Hours: 3
    Prerequisites:

    CSCE 3600

  • 3600 - PRINCIPLES OF SYSTEMS PROGRAMMING

    Introduction to the design and operation of systems software. Analysis is made of current system software technology, including operating systems, language translation systems and file systems.

    Credit Hours: 3
    Coordinator: Mark Thompson
    Prerequisites:

    CSCE 2100

    Textbook:

    System Programming with C and Unix, 1st Edition, Hoover, Addison Wesley, ISBN 9780136067122

    Course Outcomes:
    1. Write robust, efficient, readable and correct system software using the C programming language.
    2. Demonstrate an understanding of processes and threads by developing applications using multiple processes and multi-threaded activities in a Linux environment.
    3. Demonstrate an understanding of deadlocks and synchronization through the development of application(s) that utilize a variety of mutual exclusion mechanisms.
    4. Develop shell scripts and utilities that demonstrate an understanding of memory, file and process management and interaction, including concepts such as virtual memory and disk scheduling.
    5. Create a Linux-based application that utilizes inter-process communication mechanisms such as pipes and sockets to communicate information between independently running processes on one or multiple platforms.
    6. Demonstrate an understanding of the use and interaction among compilers, macro processors, assemblers, linkers and loaders through their use in creating the applications described in previous outcomes.
  • 3605 - SYSTEMS ADMINISTRATION

    Prepares students with an understanding of virtual machines with universal principles that apply to all operating systems structure and operation including the concepts of processes, resource and file management and performance. Students also develop an understanding of the pervasive use of Unix based operating systems in the design of various systems such as switches, routers, Load balances, wireless controllers and network Management platforms to provide various services to support interaction between computer-based systems.

    Credit Hours: 3
    Coordinator: David Keathly
    Prerequisites:

    CSCE 3600

    Textbook:

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

    Course Outcomes:
    1. Identify and analyze user needs.
    2. Structure user requirements in the selection, creation, evaluation and administration of computer-based systems.
    3. Demonstrate an understanding of the principles of computer systems maintenance by providing and maintaining computers for users with a wide range of computing needs and abilities.
    4. Design various hardware components such as switches, routers, load balancers, wireless controllers and network management platforms to provide network services that support interaction among computer-based systems.
    5. Effectively integrate IT-Based solutions into the user environment.
  • 3610 - INTRODUCTION TO COMPUTER ARCHITECTURE

    Design of simple and pipelined processor, introduction to co-processor design, techniques to improve performance, memory hierarchy, cache memories, input-output system, and interrupts.

    Credit Hours: 3
    Coordinator: Robin Pottathuparambil
    Prerequisites:

    CSCE 2610; CSCE 3730.

    Textbook:

    Designer's Guide to VHDL 3rd Edition; Ashenden, Elsevier. ISBN 9780120887859        

    Computer Organization and Design ARM Edition; Patterson, Elsevier. ISBN 9780128017333                           

    Course Outcomes:
    1. Design ALUs to perform integer and floating point arithmetic including addition, subtraction, multiplication and division
    2. Design a simple single-cycle processor using Hardware Description Language (HDL)
    3. Design a simple processor pipeline
    4. Design a co-processor
    5. Apply compiler techniques to improve program performance
    6. Evaluate cache memories and various cache design alternatives
    7. Demonstrate understanding of input-output systems and interrupts by writing simple interrupt handlers.
  • 3612 - EMBEDDED SYSTEMS DESIGN

    Computer systems as embedded computing elements and micro-controllers. System specification using UML or other high-level abstract models. Issues and constraints on embedded computing systems, including power, performance, memory and size. Use of DSP, ASIC and micro-controllers in a single design.

    Credit Hours: 3
    Coordinator: Song Fu
    Prerequisites:

    CSCE 2610; ENGR 2720; ENGR 2730

    Textbook:

    Computers as Components, 4th Edition; Elsevier.                   ISBN 9780128053874

    Course Outcomes:
    1. Understand the differences between embedded computing systems and general purpose computing systems, including constraints on performance, energy consumption, memory and physical dimensions.
    2. Able to specify embedded systems using UML or other high level abstract models.
    3. Able to use modern micro-controllers, including programming and interfacing such micro-controllers.
    4. Understand the use of DSP processors and other Application Specific processors.
    5. Understand trade-offs associated with using micro-controllers, DSPs, ASICs and FPGAs to meet embedded system requirements.
  • 3615 - ENTERPRISE SYSTEMS ARCHITECTURE AND DESIGN

    Introduces upper division IT students to concepts of system architecture, design and software engineering that are needed for career opportunities as Software, System and Business Analysts. Topics include enterprise architecture design, requirements analysis, software and systems lifecycle methodologies, Unified Modeling Language, analysis and design methodologies and other related topics. Project activities will expose all students to the full design and specification of IT systems to meet a variety of business and technical problems, as well as prepare them for their capstone course experiences.

    Credit Hours: 3
    Coordinator: David Keathly
    Prerequisites:

    CSCE 2100

    Textbook:

    Systems Analysis and Design, 11th Edition; Cengage.            ISBN 9781305494602 

    Course Outcomes:
    1. Demonstrate an understanding of the multiple layers of abstraction in modern computer systems and the interface between software and hardware.
    2. Evaluate the hardware requirements for at IT System and select the proper architecture and components necessary to satisfy the requirements.
    3. Evaluate the software requirements for an IT System, and define a software architecture to satisfy the requirements.
    4. Demonstrate an understanding of the use of UML and analysis and design patterns in the development of a system design.
    5. Demonstrate understanding of design and development methodologies and architectural paradigms through laboratory assignments and a class project.
    6. Demonstrate communication skills that will enable clear reasoning and logical descriptions of problems and solutions in the design, implementation and management of large-scale IT Systems.
  • 3730 - RECONFIGURABLE LOGIC

    Advanced concepts in Boolean algebra, use of hardware description languages as a practical means to implement hybrid sequential and combinational designs, digital logic simulation, rapid prototyping techniques, and design for testability concepts. Focuses on the actual design and implementation of sizeable digital design problems using representative computer aided design (CAD) tools.

    Credit Hours: 3
    Coordinator: Song Fu
    Prerequisites:

    CSCE 2610

    Textbook:

    Required: FPGA-Based System Design, 2004, Wolf, Prentice Hall, ISBN 9780131424616; Optional: Designer's Guide to VHDL, 3rd edition, Ashenden, Morka, ISBN 9780120887859; VHDL: A Starter's Guide, 2nd Edition, Yalamanchili, Prentice Hall, ISBN 9780131457355

    Course Outcomes:
    1. Students will understand the concept of reconfigurable logic.
    2. Students will know how FPGA (most popular reconfigurable device) is designed.
    3. Have an overall view of Computer Aided Design (CAD) for FPGA.
    4. Understand specific algorithms utilized in technology mapping, placement and routing.
    5. Learn how to use the hardware description language -- VHDL to simulate and synthesis digital circuit system.
    6. Capable of using commercial CAD tools to design and simulate digital circuits.
  • 3850 - Introduction to Computational Life Science

    Survey treatment of the applications of computational paradigms in the natural and physical sciences. Designed to have a broad appeal to natural and physical science students as well as computer science students.

    Prerequisites:

    CSCE 2100

  • 3996 - HONORS COLLEGE MENTORED RESEARCH EXPERIENCE

    Research experience conducted by an honors student with at least junior standing under the supervision of a faculty member. May only be taken once for Honors College credit.

    Credit Hours: 3
    Coordinator: Stephanie Ludi
    Prerequisites:

    Admission to the Honors College, at least junior class status, consent of Honors College dean

    Textbook:

    Varies

    Course Outcomes:

    Varies

  • 4010 - SOCIAL ISSUES IN COMPUTING

    The effect of computer science and engineering on the home and the workplace, with emphasis on the role of the computer professional in modern society.

    Credit Hours: 3
    Coordinator: Xiaohui Yuan
    Prerequisites:

    CSCE 3600; Outside Department: Junior standing and advised from the Engineering Advising.

    Textbook:

    The Gift of Fire: Social, Legal and Ethic l Issues of Computing Technology (5th Ed). by Baase, Sara and Henry, Timothy. Pearson, 2018.

    ISBN-13: 9780137501946 (e-text) / 978-0134615271 (print)

    Click here to access book

    Course Outcomes:
    1. Demonstrate an awareness of the social responsibilities in all areas of computing.
    2. Explain the need for professional ethics.
    3. Generate an effective written communication incorporating a topic related to social and ethical issues in computing.
    4. Demonstrate team work skills on a project for a topic related to a social or ethical issue in computing.
    5. Demonstrate knowledge of contemporary issues in computing.
  • 4011 - ENGINEERING ETHICS

    The effect of technology in modern society with emphasis on the role of engineering and technical professionals.

    Credit Hours: 3
    Coordinator: Xiaohui Yuan
    Prerequisites:

    CSCE 3600; Outside Department: Junior standing and advised from the Engineering Advising.

    Textbook:

    The Gift of Fire: Social, Legal and Ethic l Issues of Computing Technology (5th Ed). by Baase, Sara and Henry, Timothy. Pearson, 2018.

    ISBN-13: 9780137501946 (e-text) / 978-0134615271 (print)

    Click here to access book

    Course Outcomes:
    1. Demonstrate an awareness of the social responsibilities in all areas of computing.
    2. Explain the need for professional ethics.
    3. Generate an effective written communication incorporating a topic related to social and ethical issues in computing.
    4. Demonstrate team work skills on a project for a topic related to a social or ethical issue in computing.
    5. Demonstrate knowledge of contemporary issues in computing.
  • 4050 - APPLICATIONS OF CRYPTOGRAPHY

    Aims to introduce students to concepts of cryptography and its applications. Cryptography is the fundamental building block of any computer security solution. The knowledge gained from the course will enable students to apply these cryptographic algorithms in a better way to design security solutions.

    Credit Hours: 3
    Coordinator: Kirill Morozov
    Prerequisites:

    CSCE 2100 and CSCE 2110

    Textbook:

    Introduction to Modern Cryptography, 2nd Edition; Taylor. ISBN 9781466570269  

    Cryptography Engineering, 2nd Edition; Wiley.                        ISBN 9780470474242

    Course Outcomes:
    1. Understand Symmetric and Asymmetric encryption systems.
    2. Understand various block cipher modes.
    3. Demonstrate knowledge of standard symmetric encryption systems, such as, DES and AES.
    4. Demonstrate knowledge of standard asymmetric encryption systems, such as, RSA.
    5. Demonstrate knowledge of common cryptography applications, such as, KERBEROS, PGP, and PKI Systems.
    6. Understand hash functions and message authentication codes.
  • 4110 - ALGORITHMS

    Time complexity of algorithms; algorithm design methodologies including divide and conquer, greedy, and dynamic programming; exposure to approximation algorithms for NP-hard problems; performance evaluation of algorithms.

    Credit Hours: 3
    Coordinator: Farhad Shahrokhi
    Prerequisites:

    CSCE 3110

    Textbook:

    Computer Ethics, 4th edition; Pearson.                                    ISBN 9780131112414          

    Introduction to Algorithms, 3rd; Triliteral MIT.                         ISBN 9780262033848

    Course Outcomes:
    1. Be able to analyze the time and space complexity of a nontrivial algorithm, using mathematical tools, and prove/justify the correctness.
    2. Understand the Divide and Conquer, Greedy, and Dynamic Programming strategies for algorithmic design.
    3. Be familiar with the algorithms for Matrix Multiplication (Strassen's), Activity Selection, Knapsack, Shortest Paths (single source, and all pairs), Minimum Spanning Tree (Prim's and Kruskal's), Matrix Chain, and Longest Common Subsequence problems.
    4. Be exposed to approximation algorithms for solving NP-hard problems.
    5. Be able to determine and measure the efficiency of a given algorithm, in practice, through different possible implementations, and by testing on suitable data sets.
    6. Be able to communicate clearly and precisely in writing about the theoretical analysis of an algorithm and its efficiency in practice.

Pages