Undergraduate Computer Science Courses
COSC 1100. Transitioning to University Studies in Computer Science. 1 Credit Hour (Lecture: 1 Hour, Lab: 1 Hour).
Practical study designed to prepare the student for university life, aid in the development of skills for academic success, promote personal growth and responsibility, and encourage active involvement in the learning process from an individual college perspective. These skill sets are presented in the context of engineering and computer science disciplines.
COSC 1302. Introduction to Computer Science. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
History of computers and of their applications in a variety of fields, both as PCs and as embedded systems. Overview of programming paradigms. Overview of today's most dynamic computer-related technologies, including communication networks and the Internet. A modern programming language is used to present types of problems that can be solved with computers, the underlying algorithms, and the fundamental limitations. We adopt early in this course the information-centric viewpoint, exploring the role of computers in all stages of the information life-cycle. Students apply their newly-acquired programming skills to performing basic information-processing tasks. Lab fee $15.
COSC 1310. Procedural Programming. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
Introduces the fundamental concepts of structured programming. Topics include software development and methodology, data types, control structures, functions, arrays, pointers and the mechanics of running, testing, and debugging. Prerequisite: One of the following: MATH 1314, MATH 1316, MATH 2412, or MATH 2413. Lab fee: $2.
COSC 2321. C++ Programming. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
Applies the object-oriented programming paradigm using the C++ programming language. The focus is on the definition and use of classes, interfaces, data encapsulation, inheritance, and polymorphism, templates and exceptions. Presents an introduction to object-oriented design. Prerequisite: COSC 1310. Lab fee: $2.
COSC 2331. Java Programming. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
The main parts of the Java programming language are covered, including classes, methods, interfaces, inheritance, polymorphism, generics, lambda expressions, annotations, exceptions, threads and synchronization, collections, Java IO and NIO API. Prerequisite: COSC 1310 Lab fee: $2.
COSC 2341. Data Structures. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
Application of programming techniques, introducing the fundamental concepts of data structures and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis. Prerequisite: COSC 1310 or BCIS 3332 or BCIS 3333 Lab fee: $2.
COSC 2448. Introduction to Digital Systems Design. 4 Credit Hours (Lecture: 3 Hours, Lab: 3 Hours).
Combinational and sequential digital system design techniques; programmable logic devices; computer components (ALU, memory, IO circuits); hardware description language (VHDL); introduction to machine and assembly languages. Credit for both COSC 2448 and ELEN 2448 will not be awarded. Prerequisite: COSC 1310 (coreq) or ELEN 1212 (prereq) Lab fee: $2.
COSC 3330. Games, Graphics and GUIs. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
2D and 3D graphics; the main building-blocks of game design, from a programmer's perspective, such as character animation, scene navigation, shading, modeling, game rules, and GUI. Prerequisites: COSC 2321 and COSC 2341 Lab fee: $2.
COSC 3344. Computer Applications in Analysis. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
Binary representations of integers, floating-point numbers and characters; solutions to specific and general polynomial equations; regression and iteration techniques; approximate derivation and integration; error analysis; linear systems and matrix algorithms; other selected numerical algorithms. Prerequisites: MATH 2414 and one of the following: COSC 1310 or BCIS 3332 or BCIS 3333 Lab fee: $2.
COSC 3360. Python Programming for Data Science. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
Programming tools are used to illustrate the components of the data pipeline: data collection, cleaning, exploration, dimensionality reduction, modeling, visualization, and applications. The course includes an introduction to machine learning. Prerequisite: COSC 1310, or COSC 2321, or COSC 2331, or BCIS 3332, or BCIS 3333 Lab fee: $2.
COSC 3365. NoSQL Databases. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
This course provides an introduction to NoSQL database management systems, with emphasis on the document-centric model. Topics include Create, Read, Update, Delete (CRUD) operations, data processing pipelines, replication, sharding, and the MapReduce paradigm. Prerequisite: COSC 1310, or COSC 2321, or COSC 2331, or BCIS 3332, or BCIS 3333 Lab fee: $2.
COSC 3366. Introduction to Computer Vision. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
This course provides an introduction to the field of computer vision. It covers a broad range of topics, from simple to complex, such as: image formation, camera calibration, image processing, edge detection, filtering, feature extraction, image segmentation, multiple-view geometry, optical flow. The course also provides an introduction to deep learning and robotics applications. Prerequisite: COSC 1310 or COSC 2321 or COSC 2331 or BCIS 3332 or BCIS 3333 Lab fee: $2.
COSC 3380. Operating Systems. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
Introduction to the design and development of operating systems. Analysis of current system software technology, including process management, memory organization, security, and file systems. Prerequisite: COSC 1310; COSC 2341 Lab fee: $2.
COSC 3390. Software Engineering II. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
The course is a follow-up to Software Engineering I. The main topics are: tools used in software development, coding practices, design patterns, code smells and refactoring, and testing. Prerequisite: COSC 3489 Lab fee: $2.
COSC 3443. Computer Architecture. 4 Credit Hours (Lecture: 3 Hours, Lab: 3 Hours).
Hardware and software structures found in modern digital computers. Instruction set architecture, hardwired design of the processor, assembly language programming, microprogramming, I/O and memory units, analysis of instruction usage, hardware complexity, and parallel computer architectures and programming. Credit for both COSC 3443 and ELEN 3443 will not be awarded. Prerequisite: COSC 2448 or ELEN 2448. Lab fee: $2.
COSC 3489. Software Engineering I. 4 Credit Hours (Lecture: 3 Hours, Lab: 3 Hours). [WI]
The course is an introduction to software engineering. The main topics are software development process, software requirements, Unified Modeling Language, conceptual and behavioral modeling, software architecture, software design, and design principles. Prerequisite: COSC 2331 Lab fee: $2.
COSC 4086. Special Problems. 1-4 Credit Hours (Lecture: 1-4 Hours, Lab: 1-4 Hours).
Directed study of selected topics in Computer Science. May be repeated with approval of department head.
COSC 4088. Undergraduate Research Project. 1-3 Credit Hours (Lecture: 1-3 Hours, Lab: 0-0 Hours).
Methods of research in computer science through a research project directed by a departmental faculty member. The student is required to prepare a final report and presentation. No credit is earned until the final report and presentation are certified as completed by the faculty member directing the project. Prerequisites: Junior standing.
COSC 4360. Machine Learning. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
This course is a broad introduction to machine learning algorithms, with emphasis on their application in data science and cybersecurity. Topics include dimensionality reduction, regression, clustering, support vector machines, decision trees, naïve Bayes, and neural networks. The course includes a significant project component, with real-world data. Prerequisites: COSC 2341, COSC 3360, and either MATH 1342 or MATH 3311 Lab fee: $2.
COSC 4389. Programming Languages Fundamentals. 3 Credit Hours (Lecture: 3 Hours, Lab: 2 Hours).
The course is about the principles of programming languages, concepts of language processing, program representation, and language translation and execution. The main topics are formal description of programming languages, syntax analysis, semantic analysis, code generation, and runtime systems. Prerequisite: COSC 2331, COSC 2341 Lab fee: $2.
COSC 4401. Database Theory and Practice. 4 Credit Hours (Lecture: 3 Hours, Lab: 3 Hours).
Fundamental types of database models, with emphasis on relational databases. SQL, conceptual modeling, relational algebra, functional dependency theory, normalization and normal forms. File and data management principles underlying database construction. Optimization algorithms and indexing. Prerequisites: Either COSC 2341 by itself, or (MATH 3310 and one of the following: COSC 1310 or BCIS 3332 or BCIS 3333) Lab fee: $2.
COSC 4441. Microprocessor System Design. 4 Credit Hours (Lecture: 3 Hours, Lab: 3 Hours).
Introduction to microprocessors; 8/16 bit single board computer hardware and software designs; chip select equations for memory board design, serial and parallel I/O interfacing; ROM, static and dynamic RAM circuits for no wait-state design; assembly language programming, stack models, subroutines and I/O processing. Credit for both COSC 4441 and ELEN 4441 will not be awarded. Prerequisite: COSC 1310; ELEN 2448 or COSC 2448. Lab fee $2.
COSC 4451. Distributed Applications. 4 Credit Hours (Lecture: 3 Hours, Lab: 3 Hours).
A study of the architecture and design of distributed applications. N-tier application and supporting technologies are investigated including client/server architecture, supporting languages, transaction processing, and distribution of processes. Prerequisites: COSC 2331 and COSC 2341. Lab fee $2.
COSC 4478. Computer Networks. 4 Credit Hours (Lecture: 3 Hours, Lab: 3 Hours). [WI]
Bottom-up presentation of computer network hardware and protocols, going through the five main layers: physical, data link, network, transport, and application. Special emphasis is placed on the medium access control sub-layer for local area networks, IP routing, security and modern wireless access technologies. Prerequisites: Either COSC 2341 by itself, or (MATH 3310 and one of the following: COSC 1310 or BCIS 3332 or BCIS 3333) Lab fee: $2.