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.

Prerequisites: CSCE 1336 and CSCE 1136.

Corequisites: ENGR 2305 and ENGR 2105.

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.

Prerequisites: CSCE 1137 and CSCE 1337.

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 3301 and MATH 3365.

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.

Prerequisites: ENGR 2305 and ENGR 2105.

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.

Prerequisites: ENGR 2305, ENGR 2105, and MATH 2415.

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.

Prerequisites: CSCE 2330 and CSCE 3320

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.

Prerequisites: ENGR 2305, ENGR 2105, and MATH 3310

CSCE 3350 Human Computer Interaction

Presents a comprehensive introduction to the principles and techniques of human-computer interaction.

Prerequisites: CSCE 3301 and MATH 3365.

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.

Prerequisites: CSCE 3301 and MATH 3365.

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 3301 and MATH 3365.

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.

Prerequisites: CSCE 2330 and CSCE 3314.

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.

Prerequisites: CSCE 3301 and MATH 3365

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.

Prerequisites: CSCE 3301 and MATH 3365.

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.

Prerequisites: CSCE 1336, ENGR 2372, and 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