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 3214 Networks & Data Communication

Introduction to 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.

Prerequisites: CSCE 2330 and CSCE 3320.

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

Prerequisites: CSCE 2330

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 4101 Software Engineering Lab

Laboratory course to accompany CSCE 4201. Laboratory exercises help students to gather and document the requirements of the project that is defined in CSCE 4201. Students will also develop and document a design solution for the project. This course places importance on scientific communication and collaboration methods.

Prerequisites: CSCE 3301 and CSCE 3390.

Corequisites: CSCE 4201.

CSCE 4201 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 CSCE 3390.

Corequisites: CSCE 4101.

CSCE 4203 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.

Prerequisites: CSCE 2330 and CSCE 3314

CSCE 4210 Computer Engineering Design

This course emphasizes hardware design and debugging. Topics include combinational and sequential logic design using VHDL based upon PLA/PLD.

Prerequisites: CSCE 3340.

CSCE 4220 Programming Languages

The 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 4240 Intro to Unmanned Aerial Vehic

Overview of unmanned aerial systems: history, platforms, operations, command and control, sensor systems, payloads, regulations, policy. Review of Communications, Roles of Satellites, Image Capturing, Airframe and Propulsion Components, Stability and Control. Current developments in unmanned aerial systems and its relevance to border security.

Prerequisites: Senior Standing or approval of instructor.

CSCE 4302 Software Engr&Proj Develop II

Continuation of CSCE 4201 and CSCE 4101 to work on the software project initiated in the prior semester.

Prerequisites: CSCE 4201 and CSCE 4101.

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 or 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 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 4350 Comp Approach to Crim Justice

Statistical and algorithmic methods in criminal justice system, predictive policing, sentencing, applications of this approach to real-time risk assessments for bail decisions and tests for discrimination in traffic stops.

Prerequisites: Senior Standing or approval of instructor

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.

Prerequisites: Permission of the instructor.

CSCE 4385 Special Topics in CSCE

Selected topics in an identified area of computer science and engineering.

Prerequisites: Junior or Senior standing and permission of instructor.

CSCE 4390 Comp Eng Senior Design Project

This capstone course provides students the experience of implementing (including building, testing, and documenting) a project, within budget and on schedule. Course requirements include a written report and oral presentation. To be taken during the semester of graduation.

Prerequisites: Senior Standing

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