Computer Science & Engineering (CSCE)
CSCE 1136 Funds of Programming Lab
Laboratory course to accompany CSCE 1336. Laboratory exercises reinforce the particular paradigms that are stressed in CSCE 1336. Students will develop and run functional programs that solve elementary algorithmic problems. Students will also gain experience with compiling, finding, correcting syntax errors, and executing programs. This course places importance on scientific communication and collaboration methods.
Corequisites: CSCE 1336.
CSCE 1137 Object-Oriented Program Lab
Laboratory course to accompany CSCE 1337. Laboratory exercises reinforce the particular paradigms that are stressed in CSCE 1337. Students will develop programs in an object-oriented programming language by practicing the use of a variety of abstract data types and data structures. Students will also gain experience on using advanced design tools and the skills to analyze, debug and correct errors in programs. This course places importance on scientific communication and collaboration methods.
Prerequisites: CSCE 1336 and CSCE 1136.
Corequisites: CSCE 1337.
CSCE 1300 Discrete Math for Computing
This course introduces students to various topics in discrete mathematics, including set theory, mathematical logic, trees, and graph theory. It focuses on the foundations, basic structures, proof techniques, counting principles, relations, Boolean algebra, graphs, trees, and graph algorithms. The objective of this course is to equip students with a thorough understanding of the core concepts of discrete mathematics, enabling them to understand and construct mathematical arguments effectively.
Prerequisites: MATH 2413
CSCE 1336 Fundamentals of Programming
Introduces the fundamental concepts of a high‐level programming language and provides a comprehensive introduction to programming for STEM majors. Topics include data types, flow of control, functions, I/O streams, arrays, and the mechanics of running, testing, and debugging. This course assumes computer literacy.
Corequisites: CSCE 1136
CSCE 1337 Object Oriented Programming
A continuation of CSCE 1336. Emphasis is placed upon applying the object-oriented paradigms to develop the skills in data abstraction and object design where language features, essential programming techniques, and design guidelines are presented from a unified point of view.
Prerequisites: CSCE 1136 and CSCE 1336.
Corequisites: CSCE 1137.
CSCE 2300 Algorithms & Data Structures
Builds on the foundation provided by fundamentals of programming and object-oriented programming courses with an emphasis on data structures, and algorithms analysis. Students learn how to select and implement various Abstract Data Types (ADTs), select optimal data structures to solve problems and analyze the impact of data structure choices on program performance.
CSCE 2310 Fundamentals of A.I.
This course covers fundamental techniques and applications of artificial intelligence (AI) in domains such as computer vision, natural language processing, and planning. It emphasizes core AI principles, including search, representation, reasoning, and learning, while exploring knowledge representation, logic, inference, problem-solving, search algorithms, and uncertain reasoning. Additionally, students will learn about concepts related to expert systems, genetic algorithms, signal and image processing.
Prerequisites: CSCE 2300
CSCE 2330 Digital Logic Design
Hardware implementation of arithmetic and logical functions, organization and design of digital systems.
CSCE 3300 Machine Learning
This course covers the fundamental concepts and techniques of machine learning. Students will learn about supervised learning, unsupervised learning, and reinforcement learning. They will also learn how to apply machine learning algorithms to real-world problems using Python.
CSCE 3310 Algorithm Design & Analysis
Introduces formal techniques to support the design and analysis of algorithms focusing on both the underlying mathematical theory and practical considerations of efficiency. Topics include asymptotic complexity bounds, techniques of analysis, algorithmic strategies, and an introduction to automata theory and its application to language translation.
Prerequisites: CSCE 2300
CSCE 3314 Electronic Devices & Apps
Theory and application of solid state electronic devices. Physical principles of carrier motion in semiconductors leading to operating principles and circuit models for diodes, bipolar transistors, and field effect transistors. Applying the skills in designing amplifiers and op-amp based circuits.
CSCE 3320 Signals and Systems
Introduction to the continuous-time and discrete-time signals and systems; time domain characterization of linear time-invariant systems; Fourier analysis; filtering; sampling; modulation techniques for communication systems.
CSCE 3330 Computer Organization
Introduces the organization and architecture of computer systems, beginning with the standard von Neumann model and then moving forward to more recent architectural concepts.
Prerequisites: CSCE 2300
CSCE 3335 Computer Networks & Data Comm
This course covers the fundamental concepts of computer communication networks. Topics include the OSI reference model, the physical, data link, network, and transport layers, TCP/IP, network topologies, routing and flow control. The course also covers routing technologies and the deployment of ethernet solutions, while also understanding security concepts as they relate to networks and data communications.
CSCE 3340 Microprocessor Systems
Basic computer structure, the instruction set, addressing modes, assembly language programming, assembly language subroutines, arithmetic operations, programming in C, implementation of C procedures, elementary data structures, input and output and a survey of microprocessor based design. This course is interchangeable with SENG 3345.
Prerequisites: CSCE 1300, CSCE 1337, CSCE 1137, and CSCE 2330
CSCE 3345 Robotics and Automation
Study of the use, design, and deployment of industrial automation and robotics technologies in high-precision, multi-product manufacturing environments. Robot manipulators, kinematics and dynamics, robot automation and control, integrated robotic systems for manufacturing, automation in manufacturing, programmable logic controllers, applications to industrial systems. Interchangeable with SENG 3340.
CSCE 3350 Human Computer Interaction
Presents a comprehensive introduction to the principles and techniques of human-computer interaction.
Prerequisites: CSCE 2300
CSCE 3355 Software Engineering-WIN
Principles of software engineering and their applications to the development of a software product. Students work in teams to gather projects’ requirements, design a solution, and implement their designs. The students also practice good project management using state-of-the-art software engineering processes. The instructor defines projects, and teams formally document the requirements. The teams then work on designing and implementing their solutions, culminating in a formal presentation of the results at the end semester.
Prerequisites: CSCE 2300
CSCE 3360 Cyber Forensics
This course covers essential cyber forensics concepts, including real-world case studies, practical examples, and step-by-step instructions for using key forensic tools. Students will explore volatile and non-volatile data analysis, digital forensics lab setup, data collection methods, forensic analysis techniques, file system and log analysis, windows registry and artifacts, network data analysis, memory forensics, and browser and email forensics.
Prerequisites: Junior standing and approval from instructor
CSCE 3365 Computer Vision
This course introduces fundamental concepts of image processing and computer vision using artificial intelligence (AI) and Machine Learning techniques (ML). Key topics in the course are as follows: image analysis methods, image formation, edge detection, feature detection, and image segmentation, three-dimensional object recognition, object detection and classification. Students will be able to perform basic image analysis using algorithmic techniques.
Prerequisites: CSCE 3300
CSCE 3370 Database Systems
This course surveys database systems database design and entity-relationship (ER) data model, basic features of the ER model, conceptual design with ER model, relational model, querying relational data, logical database design, views, relational algebra and calculus, SQL queries, constraints, and triggers, schema refinement, normal forms, normalization, physical database design, database tuning, database security, access control. The objective of this course is to provide a thorough understanding of the main concepts and principles of database management systems.
Prerequisites: CSCE 2300
CSCE 3390 Software Design
Provides an intensive implementation-oriented introduction to the software-development techniques used to create medium-scale interactive applications, focusing on the use of large object- oriented libraries to create well-designed graphical use interfaces. Topics include event-driven programming, computer graphics, human-computer interaction (HCI), and graphical user interfaces.
Prerequisites: CSCE 2300
CSCE 4152 Internship in Comp Sci & Engr
A directed internship in a public/private organization that is appropriate to the student's career objective or desire in a computer science setting. Students will apply analytical and technical knowledge acquired in the program in a real world setting and receive on-the-job training experience. Seminar and training will be held to discuss field experience from theoretical and applied perspective. Evaluation of performance is on a Pass or Fail basis.
Prerequisites: Permission of the instructor
CSCE 4185 Special Topics in CSCE
Selected topics in an identified area of computer engineering and science. May be repeated for credit when the topic changes.
Prerequisites: Junior or Senior standing and permission of instructor
CSCE 4195 Undergraduate Research
Students work on a computer engineering research project. The topic is chosen by the student and approved by the instructor. Evaluation of performance is on a Pass or Fail basis. May be repeated twice for credit.
Prerequisites: Permission of instructor and department.
CSCE 4199 Directed Study in CSCE
A directed study course. Topics selected from contemporary developments in the field of computer engineering. May be repeated for credit.
Prerequisites: Permission of instructor
CSCE 4252 Internship in Comp Sci & Engr
A directed internship in a public/private organization that is appropriate to the student's career objective or desire in a computer science setting. Students will apply analytical and technical knowledge acquired in the program in a real world setting and receive on-the-job training experience. Seminar and training will be held to discuss field experience from theoretical and applied perspective. Evaluation of performance is on a Pass or Fail basis.
Prerequisites: Permission of the instructor
CSCE 4285 Special Topics in CSCE
Selected topics in an identified area of computer engineering and science. May be repeated for credit when topic changes.
Prerequisites: Junior or Senior standing and permission of instructor
CSCE 4295 Undergraduate Research
Students work on a computer engineering research project. The topic is chosen by the student and approved by the instructor. Evaluation of performance is on a Pass or Fail basis.
Prerequisites: Permission of instructor and department
CSCE 4299 Directed Study in CSCE
A directed study course. Topics selected from contemporary developments in the field of computer engineering. May be repeated for credit.
Prerequisites: Permission of instructor
CSCE 4300 Dig Electronic Circuit Design
Theory of digital and electronics circuits. Digital logic families TTL, IIL, ECL, NMOS, CMOS, and GaAs. Large signal models for transistors. The course includes the study of the MOS device, critical interconnect and gate characteristics that determine the performance of VLSI circuits, using CADENCE VLSI tools, and the development - via simulated environment - of different electronic circuits containing MOSFET and BJT devices.
CSCE 4302 Advanced Software Engineering
Continuation of CSCE 4201 and CSCE 4101 to work on the software project initiated in the prior semester.
Prerequisites: CSCE 3355
CSCE 4310 Computer Security
This course surveys basic cryptography and security principles and foundations. It focuses on the elements of a cryptographic system, the differences between symmetric cryptographic algorithms and asymmetric cryptographic algorithms, hash functions, public key cryptography, key management, cipher techniques, and authentication. It introduces several access control mechanisms, security, confidentiality, integrity, availability, hybrid policies, design principles, identity representation, malware, vulnerability analysis, auditing, intrusion detection, and attacks and responses. Application areas include network, system, user, and program security.
Prerequisites: CSCE 3335
CSCE 4315 Embedded Systems
Characteristics of embedded systems, microprocessors and microcontrollers, system design, modular programming, interface devices, memory management, interrupts, input/output applications, multitasking, and simulation. Interchangeable with SENG 4315.
CSCE 4320 Computer Architecture
This course surveys the foundation of networking, data link networks, packet switching, internetworking, end-to-end protocols, congestion control and resource allocation, end-to-end data, network security, and applications.
Prerequisites: CSCE 3340.
CSCE 4326 Operating Systems
This course introduces fundamental concepts of operating systems, focusing on their design, implementation, and resource management techniques. Students will study process scheduling, memory management, virtual memory, file systems, I/O, concurrency, synchronization, and security. Upon completion the students will have a deep understanding of the very important role the operating system has on modern computer systems and how they enable efficient execution of modern applications.
CSCE 4330 Parallel Programming & HPC
This course covers the fundamental concepts and techniques of parallel programming and high-performance computing (HPC). Students will learn how to examine, design, and implement parallel algorithms and programs for a range of problems and using a variety of programming models and languages, including OpenMP, MPI, and CUDA.
Prerequisites: CSCE 2300 or permission of Instructor
CSCE 4335 Computer Engineering Design
This course emphasizes hardware design and debugging. Topics include combinational and sequential logic design using VHDL based upon PLA/PLD, as well as the synthesis, design, implementation, and verification of a CPU.
Prerequisites: CSCE 3340
CSCE 4340 Intelligent Systems
Introduction to methods for the analysis and design of intelligent engineering systems. Topics include reinforcement learning, optimal estimation, Bayesian networks, expert systems, neural networks, and genetic algorithms. Applications emphasize control and decision-making in engineering, finance, and computer science. Interchangeable with SENG 4340.
CSCE 4345 Languages and Computation
This course focuses on the studies of modern programming languages, covering their practical applications and theoretical foundations. Students will develop an understanding of common language features, organizational structures, and trade-offs, including semantics, garbage collection, memory management, and type systems. In addition to practical aspects, the course will also cover the theoretical foundations of languages and computation. Topics include regular expressions, language classification, grammar, and finite state automata.
Prerequisites: CSCE 2300
CSCE 4352 Internship in Comp Sci & Engr
A directed internship in a public/private organization that is appropriate to the student's career objective or desire in a computer science setting. Students will apply analytical and technical knowledge acquired in the program in a real world setting and receive on-the-job training experience. Seminar and training will be held to discuss field experience from theoretical and applied perspective. Evaluation of performance is on a Pass or Fail basis.
Prerequisites: Permission of the instructor.
CSCE 4355 Digital Logistics
This course explores the role of technologies in modern logistics and supply chain management. Students will study how automation, machine-learning algorithms, and artificial intelligence are transforming traditional logistics operations. Some topics that will be covered are real-time tracking, predictive analysis, blockchain for supply chain, freight route optimization among others. Upon completion the student will understand how to design and implement digital logistics to optimize supply chain performance.
Prerequisites: CSCE 3300
CSCE 4365 Mobile Autonomous Networks
This course focuses on autonomous drones and ground vehicles. It covers Advanced Driver Assistance Systems (ADAS), network architectures and software powering autonomous vehicles, autonomous and connected vehicles, common issues affecting autonomous and connected vehicles, autonomous vehicle sensors, networks and architecture.
Prerequisites: CSCE 3335 and Senior Standing
CSCE 4370 Mobile Device Forensics
This course provides a thorough survey of mobile forensics, including the internals of iOS devices, data acquisition from iOS devices and backups, data analysis and recovery, and the use of iOS forensic tools. Students will also learn about Android forensic setups, pre-data extraction techniques, data extraction, analysis and recovery, Android app analysis, and malware detection and reverse engineering. Additionally, the course offers an in-depth exploration of memory forensics and digital investigation tools, focusing on volatile memory, acquisition techniques, file systems, operating system structures, malware detection, and kernel analysis.
Prerequisites: CSCE 3360
CSCE 4375 Cryptography
This course surveys basic cryptography and security principles and foundations. It focuses on the fundamental concepts in number theory, the elements of a cryptographic system, the differences between symmetric and asymmetric cryptographic algorithms, basic symmetric cryptographic algorithms, secure hash functions, public key, cryptography, common symmetric cryptographic protocols, digital signatures, key exchange, key management, and authentication.
Prerequisites: Senior Standing
CSCE 4380 Senior Design I-WIN
This is the first course in the senior design sequence. This course provides students the experience of devising a system, component, or process to address predefined needs and requirements within constraints, such as time, cost, technology, etc. Students are expected to propose an iterative and innovative engineered design solution for implementation in CSCE 4390. This course should be taken the semester preceding CSCE 4390.
Prerequisites: ENGL 2311 and Senior Standing
CSCE 4385 Special Topics in CSCE
Selected topics in an identified area of computer engineering and science. May be repeated for credit when topic changes.
Prerequisites: Junior or Senior standing and permission of instructor.
CSCE 4390 Senior Design II
This is the second and final course in the senior design experience. This course provides students with the experience of implementing/constructing the system, component, or process devised as part of the proposed engineering design in CSCE 4380. Students are expected to demonstrate their ability to complete their projects under identified constraints and using applicable engineering standards. A comprehensive technical report and oral presentation accessible for technical and non-technical audiences will be produced with documentation illustrating the iteration involved in students' engineered designs.
Prerequisites: CSCE 4380
CSCE 4395 Undergraduate Research
Students work on a computer engineering research project. The topic is chosen by the student and approved by the instructor.
Prerequisites: Permission of instructor and department
CSCE 4399 Directed Study in CSCE
A directed study course. Topics selected from contemporary developments in the field of computer engineering.
Prerequisites: Permission of instructor