Computer Science (COSC)

COSC 1436. Programming Fundamentals I. 4 Hours. [TCCN: COSC 1436]

This course is an introduction to programming. Topics include fundamental concepts of computer programming and software development methodology, including data types, control structures, functions, arrays, and the mechanics of programming running, testing, and debugging. The development of procedures and the writing and testing of programs to implement them are emphasized. This course includes a 2-hour lab-based component. This course assumes a general familiarity with computers.
Prerequisite: Grade of C or better in MATH 1410, MATH 1314, or MATH 1316, basic keyboarding, and PC skills.

COSC 1437. Programming Fundamentals II. 4 Hours. [TCCN: COSC 1437]

Students build upon the concepts learned in COSC 1436 as they design, implement, and reuse computer programs using abstract data types. They explore key concepts of object-oriented design and programming paradigms. Topics may include core abstract data types such as lists, stacks, and queues; basic algorithm analysis; searching and sorting techniques; and graph-related data structures and algorithms. In a required two-hour lab component, students gain hands-on programming experience in multiple development environments.
Prerequisite: COSC 1436.

COSC 2327. Introduction to Computer Networks. 3 Hours.

Students are introduced to installation, usage, and management of computer hardware and operating systems for business. Topics may include scripting, macros, intelligent agents. Installation and management of networks, the Internet, and communications software is covered.
Prerequisite: COSC 1436.

COSC 2329. Computer Organization & Machine Language. 3 Hours. [TCCN: COSC 2425]

Students are introduced to instruction set architectures, emphasizing central processor organization and operations. Specific topics may include data representations, register architectures, addressing modes, the fetch/ execute cycle; interrupts, subprogram calls, I/O services, digital logic gates and basic Boolean algebra, and sequential and combinational circuits. Programs are assigned in a representative assembly language to explore these areas.
Prerequisite: COSC 1436.

COSC 2340. Special Topics in Computer Science. 3 Hours.

Topics and courses are selected to suit individual needs of students. The course may be repeated for additional credit as long a different topic is covered.
Prerequisite: COSC 1437.

COSC 2347. Special Topics/Programming. 3 Hours.

Students engage in an in-depth study of a programming language used to implement information systems. Real time components, visual techniques, and artificial intelligence are utilized as appropriate. This course may be repeated for credit with the approval of the undergraduate advisor. A different language must be covered to receive approval for repeat credit.
Prerequisite: COSC 1437.

COSC 3312. Numerical Methods. 3 Hours.

Student study the concepts underlying the use of the computer for interpolation, approximations, solutions of equations and the solution of both linear and nonlinear systems equations. Mathematical software and/or user written programs are utilized. Also offered as MATH 3394.
Prerequisite: COSC 1436 and MATH 1430 or consent of instructor.

COSC 3318. Data Base Management Systems. 3 Hours.

Students explore the design of information systems using database software and query language/programming interfaces. Data warehouse concepts are introduced. Legacy systems, LAN and distributed systems based systems are used to give the student hands-on experience in systems development.
Prerequisite: COSC 1437 .

COSC 3319. Data Structures and Algorithms. 3 Hours.

Student are introduced to such topics as orthogonal lists, strings, arrays, linked lists, multilinked structures, indexed and direct files, and generalized data management and database management systems.
Prerequisite: COSC 1437.

COSC 3321. Digital System Design. 3 Hours.

This course is an introduction to Boolean Algebra and graph theory with emphasis on their applications in the design of digital computer software and hardware. Logic systems are designed and analyzed.

COSC 3327. Computer Architecture. 3 Hours.

COSC 3327. Computer Architecture. 3 Hours.This course is a continuation of COSC 2329, exploring computer organization and architectures in more depth and breadth. Specific topics may include milestones in the philosophy of computer design, Karnaugh maps for circuit minimization, memory types and organization, caching, pipelining, micro-architectures, parallel architectures, I/O devices, buses and bus protocols. Throughout the course, physical and performance considerations are stressed along with the hardware's interaction with operating systems.
Prerequisite: COSC 2329.

COSC 3331. Human-Computer Interaction. 3 Hours.

Students gain an in-depth understanding of the fundamental principles and methodologies of human computer interaction (HCI). They investigate the event-driven programming model by designing and implementing applications within graphical development environments and employ rapid prototyping techniques to explore a range of interaction paradigms. The course may emphasizes interface design for mobile and other emerging or non-traditional computing platforms. Topics may include AI-assisted tools for interface ideation, prototyping, and evaluation, aligning their work with current developments in contemporary UI and UX design.
Prerequisite: COSC 1437.

COSC 3332. Game Programming and Design. 3 Hours.

(Prior Course ID: CS 378); This course allows those students who desire to learn more about game programming to apply what they have learned in their foundation courses in that area. Gaming is a compelling way to motivate students to learn challenging technical concepts such as programming, software engineering, algorithms, and project management.
Prerequisite: COSC 2329.

COSC 3337. Information Systems Design & Management. 3 Hours.

Students examine the design and implementation of large-scale file and persistent object-based information systems. They explore the evolution of file structure design from early computing architectures to contemporary techniques used in modern operating systems and database systems. Topics may include storage devices, file organization methods, and data persistence mechanisms. Through a series of hands-on projects and assignments, students design and implement file structures to gain practical experience.
Prerequisite: COSC 2347.

COSC 4050. Independent Study. 1-3 Hours.

Students conduct individual research on specific topics that are not covered in the current Computer Science undergraduate curriculum. Each student will participate in comprehensive research activities with a faculty member who is specialized in the student's interest area. Therefore, the course content will vary based upon the topic that both the student and the mentoring faculty member choose. Students' performance will be evaluated based on their research progress and output. Variable Credit (1 to 3).
Prerequisite: Consent of the instructor.

COSC 4149. Seminar in Computer Science. 1 Hour.

Students prepare for entry into the computer science profession by exploring fundamental concepts related to emerging technologies and their practical applications in dynamic software and hardware environments. Topics may include current trends, contemporary issues, and essential professional skills relevant to the field of computing. Course topics may vary by semester to reflect developments in the discipline.
Prerequisite: Senior standing in Computer Science.

COSC 4314. Data Mining. 3 Hours.

Students explore the rapid growing field of data mining, which focuses on the automated discovery of meaningful patterns, information, and knowledge from large datasets in real-world contexts. Topics may include fundamental principles of data mining, data types, data preparation and feature engineering, commonly used algorithms such as classification, regression, clustering, association analysis, and web mining, as well as the evaluation and application of data mining techniques across various domains.
Prerequisite: COSC 3318 and COSC 3319.

COSC 4316. Compiler Design & Construction. 3 Hours.

Students study the design and implementation of assemblers, interpreters and compilers. Topics may include symbol tables, lexical scanning, syntactic analysis, object code generation and storage allocation. Programming assignments will involve implementation of functional components of a translator.
Prerequisite: COSC 2329 and COSC 3319.

COSC 4318. Advanced Language Concepts. 3 Hours.

Students study programming languages which support the Object-Oriented Programming (OOP) paradigm. Programming assignments are used to illustrate the features and weaknesses of the language and to develop the student's proficiency in the use of OOP technology.
Prerequisite: 3 advanced hours of COSC.

COSC 4319. Software Engineering. 3 Hours.

This course is an introduction to formal methods of specifying, designing, implementing and testing software for large programming projects. Methods of estimating and predicting reliability are discussed.
Prerequisite: 6 advanced hours of COSC and COSC 3318.

COSC 4320. System Modeling and Simulation. 3 Hours.

This course is an introduction to modeling and simulation for analysis of computer software and hardware. Application of simulation analysis to design and development of computer software and systems, including modeling of computer and software components are discussed. Design, coding and use of discrete event simulation software will be covered.
Prerequisite: 6 advanced hours COSC and MATH 3379.

COSC 4326. Network Theory. 3 Hours.

Students examine the theoretical basis for data communication together with an examination of the structures and protocols associated with the control of error, congestion and routing. The course may include an examination of network administration fundamentals and socket programming in client-server applications.
Prerequisite: 6 advanced hours of COSC.

COSC 4327. Computer Operating Systems. 3 Hours.

Students explore the design and implementation of generic operating systems, actively examining system architecture, operating system services, process management, storage management, I/O and interrupt management, computer networking, and security issues.
Prerequisite: COSC 3327 and COSC 3319.

COSC 4329. Software Engineering: Testing, Quality, and DevOps. 3 Hours.

Students learn advanced practices in software testing, quality assurance, and development and operations (DevOps) within a complete engineering lifecycle. Students work individually on a pre-built software product to apply professional-quality processes for validation, deployment, and continuous improvement. Emphasis is placed on designing multi-layered tests, implementing continuous integration and continuous development (CI/CD) pipelines, performing security and performance evaluations, and maintaining traceable and auditable documentation. The course develops practical expertise in integrating databases securely, managing quality metrics, and ensuring software reliability through disciplined engineering workflows.
Prerequisite: COSC 3318, may be taken concurrently with COSC 4319.

COSC 4332. Computer Graphics. 3 Hours.

Students explore graphical APIs for developing graphical user interfaces and multimedia applications. They work with technologies such as PHIGS, Windows, Presentation Manager, X-Windows, digital video, and other relevant tools. Students apply 2D and 3D transformations, create interactive 3D graphics using OpenGL, and implement shading, lighting, texture mapping, and animation techniques. The course emphasizes both the mathematical and geometric foundations of computer graphics and the practical skills needed to build complete 3D graphics programs.
Prerequisite: 6 advanced hours of COSC.

COSC 4337. Digital Signal Processing. 3 Hours.

Students examine the nature of signal processing and its application to real-world applications such as speech synthesis, video processing, genomics, and biomedical signal processing, and distributed sensor networks. Students address theoretical, algorithmic and practical issues.
Prerequisite: COSC 3327.

COSC 4340. Special Topics in Computer Science. 3 Hours.

Topics of general interest are offered on a timely basis. Previous topics include Cognitive Computing, Embedded Linux Systems, Visual Graphics/Component Systems. advanced COSC and senior standing.
Prerequisite: 6 hrs.

COSC 4347. Embedded System Design and Internet of Things. 3 Hours.

Students learn theoretical concepts and hands-on skills for the design and implementation of embedded and IoT (Internet of Things) systems using embedded hardware development tools. Topics may include hardware integration, real-time operating systems, serial and wireless communication, digital/analog input and output, registers and memory management systems, embedded system programming techniques, and designing IoT systems.
Prerequisite: COSC 2329.

COSC 4349. Professionalism and Ethics. 3 Hours.

Students examine the nature, need and value of well-formed ethical constructs within the digital forensics profession. Included in this course is a discussion, through case studies, of the nature of professionalism, personal and professional codes of ethics and conduct, and the professional handling of ethical and moral conflict. Students also explore the role of the professional in public policy and the awareness of consequences of ethical dissent and whistle blowing.
Prerequisite: Junior standing.