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 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 2330 Digital Logic Design
Hardware implementation of arithmetic and logical functions, organization and design of digital systems.
CSCE 3301 Algorithms & Data Structures
Builds on the foundation provided by CSCE 1336 and CSCE 1337 with an increased emphasis on algorithms, data structures, and software engineering. The treatment of programming concepts will be both in terms of the object-oriented paradigm as well as independent of any programming language.
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.
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 3301.
CSCE 3335 Networks & Data Communication
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 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.
CSCE 3370 Databases
Introduces the concepts and techniques and database systems. Topics include information models and systems; database systems; data modeling to include conceptual, object-oriented and relational data models; relational databases; database query languages to include SQL and OQL; relational database design; transaction processing; distributed databases; and physical database design.
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.
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 4301 Software Engineering
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.
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 4301
CSCE 4310 Computer Security
Fundamental concepts and principles of computer security, operating system and network security, private key and public key cryptographic algorithms, hash functions, authentication, firewalls and intrusion detection systems, IPSec and VPN, wireless and web security.
Prerequisites: Senior standing and approval of instructor
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.
Prerequisites: ENGR 2305, ENGR 2105, CSCE 1336, and CSCE 1136.
CSCE 4320 Computer System Architecture
I/O organization, memory organization including virtual memory, cache memory mapping, pipelining, and multiprocessing, CISC and RISC microprocessors.
Prerequisites: CSCE 3340.
CSCE 4326 Operating Systems
Hardware/software evolution leading to contemporary operating systems; basic operating systems concepts; methods of operating systems design and construction including algorithms for CPU scheduling, memory and general resource allocation, process coordination and management.
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 3301 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 Programming Languages
An in-depth study of programming language design including syntax, semantics, behavior, and implementation issues in imperative, functional, logic, and object-oriented languages. Topics may include type theory, concurrency, data dependency, and nondeterminism.
Prerequisites: CSCE 3301
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 4360 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 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