Computer Science (CSCI)

CSCI 1136  Programming Fundamentals I Laboratory  
Credit: 1 (0-1-0)
  

This is the accompanying laboratory for CSCI 1336: Programming Fundamentals I. Students will work hands-on in a computer laboratory to write programs on topics in software development methodology, data types, control structures, functions, arrays, and the mechanics of running, testing, and debugging. Meets College of Business Experiential Learning Requirements. TSI Restriction(s): Reading, Math, and Writing.

Prerequisites: Grade of ‘C’ or better in each: Math 1314 or equivalent.
Corequisites: CSCI 1336.

Restrictions: Enrollment is limited to Undergraduate level students.

CSCI 1137  Programming Fundamentals II La  
Credit: 1 (0-1-0)
  

This is the accompanying laboratory for CSCI 1337: Programming Fundamentals II. Students will work hands-on in a computer laboratory to write programs on topics in the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design as well as abstract data types. It provides additional experience with advanced programming concepts and applies the basic concepts of efficiency in algorithm development and implementation. Meets College of Business Experiential Learning Requirements. TSI Restriction(s): Reading, Math, and Writing.

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336).
Corequisites: CSCI 1337.

Restrictions: Enrollment is limited to Undergraduate level students.

CSCI 1336  Programming Fundamentals I  
Credits: 3 (3-0-0)
  

This course introduces the fundamental concepts of structured programming. Topics include software development methodology, data types, control structures, functions, arrays, and the mechanics of running, testing, and debugging.

Prerequisites: Grade of ‘C’ or better in each: MATH 1314 or equivalent.
Corequisites: CSCI 1136. TSI Restriction(s): Reading, Math, and Writing

Restrictions: Graduate level students may not enroll.

CSCI 1337  Programming Fundamentals II  
Credits: 3 (3-0-0)
  

This course introduces and applies the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design as well as abstract data types. It provides additional experience with advanced programming concepts and applies the basic concepts of efficiency in algorithm development and implementation.

Prerequisites: Grade of ‘C’ or better in each: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336).
Corequisites: CSCI 1137. TSI Restriction(s): Reading, Math, and Writing

Restrictions: Graduate level students may not enroll.

CSCI 1436  Programming Fundamentals I  
Credits: 4 (0-0-0)
  

This course introduces the fundamental concepts of structured programming. Topics include software development methodology, data types, control structures, functions, arrays, and the mechanics of running, testing, and debugging. Students are also briefly introduced to the fundamentals of object-oriented programming. This course has its laboratory component: Students will work hands-on in a computer laboratory to write programs related to course topics. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each: Math 1314 or equivalent.

Restrictions: Graduate level students may not enroll.

CSCI 1437  Programming Fundamentals II  
Credits: 4 (0-0-0)
  

This course introduces and applies the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design as well as abstract data types. It provides additional experience with advanced programming concepts, such as exceptions, GUI programming, and recursion. This course has its laboratory component: Students will work hands-on in a computer laboratory to write programs related to course topics. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336).

Restrictions: Graduate level students may not enroll.

CSCI 2322  Discrete Structures for Comput  
Credits: 3 (3-0-0)
  

This course provides the mathematical foundations from discrete mathematics for solving computational problems. Students will learn the basic discrete mathematical structures such as propositional logic, proof techniques, predicate calculus, sets, relations, counting techniques, functions, and graphs. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337).

Restrictions: Graduate level students may not enroll.

CSCI 2325  Computer Organization  
Credits: 3 (3-0-0)
  

This course introduces basic computer organization; digital representation of data and instructions; computer arithmetic, logic and shift units, data formats, address models, instruction sets and microcode (general Assembly language), systems including caches, and design of simple computer. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337).

Restrictions: Graduate level students may not enroll.

CSCI 2353  Web App Programming  
Credits: 3 (3-0-0)
  

This course covers the fundamental concepts of designing and developing web applications. The content is focused on strategies and techniques for designing and structuring web applications. Topics include designing interfaces in HTML, CSS, and JavaScript, writing basic scripts in PHP, and working with databases on a client-server architecture.

Prerequisites: CSCI 1337 and CSCI 1137.

Restrictions: Graduate level students may not enroll.

CSCI 2436  Data Structures  
Credits: 4 (0-0-0)
  

This course introduces the fundamental concepts of data structures and expands on the concepts control structure, data types and algorithms. Topics include recursion, fundamental data structures (including tacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis. Includes basic analysis of algorithms, searching and sorting techniques, and an introduction to software engineering. Course includes lab component for lab based exercises. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337).

Restrictions: Graduate level students may not enroll.

CSCI 3304  Database Systems  
Credits: 3 (3-0-0)
  

This course examines file and database organization techniques including network, hierarchical, relational, object and SQL data models, commercially available and open source database systems, database design and implementation, query language, transaction processing, database administration and database security. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), and CSCI 2436 or (CSCI 2336 and 2136).

Restrictions: Graduate level students may not enroll.

CSCI 3321  Cyber Security  
Credits: 3 (3-0-0)
  

This course introduces penetration testing, web application security and cyber security ethics through hands-on experience that develops foundational offensive and defensive security skills. Students will learn the basics of cyber security and common vulnerabilities and attacks, receiving hands-on practice in both exploitation techniques and strategies for protecting and hardening applications. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), and CSCI 2436 or (CSCI 2336 and 2136).

Restrictions: Graduate level students may not enroll.

CSCI 3343  Algorithms  
Credits: 3 (3-0-0)
  

This course provides the basic tools to give students the ability to select algorithms appropriate to particular purposes and to apply them, recognizing the possibility that no suitable algorithm may exist. It examines the range of algorithms that address important sets of well-defined problems, recognizing their strengths and weaknesses, and their suitability in particular contexts. Time and space efficiency is a pervasive theme throughout this course. . TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of 'C' or better in each of; MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337, and (CSCI 2436 or (CSCI 2336 and CSCI 2136)), MATH 2314, and MATH 2114.

Restrictions: Graduate level students may not enroll.

CSCI 3344  Computer Architecture  
Credits: 3 (3-0-0)
  

This course introduces Basic Processor Design; Performance Evaluation; Pipelining; Memory Hierarchies: Caches, virtual memory; input/output and storage; Introduction to Instruction Level Parallelism. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2325.

Restrictions: Graduate level students may not enroll.

CSCI 3352  System Programming  
Credits: 3 (3-0-0)
  

A programming intensive course that investigates program implementation theory, methods, and tools, as well as system utility programming using operating system programming interfaces and system calls to provide computer and process management capabilities. TSI Restriction(s): Reading, Math

Prerequisites: Grade of C or better in each of; MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2325 and (CSCI 2436 or (CSCI 2336 and CSCI 2136)).

Restrictions: Graduate level students may not enroll.

CSCI 3353  Applications Programming  
Credits: 3 (3-0-0)
  

A programming intensive course that introduces key topic areas in Computer Science, such as graphics, intelligent systems, simulation and modeling, and parallel and distributed processing. Formerly CSCI 3351. TSI Restriction(s): Reading, Math

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), and CSCI 2436 or (CSCI 2336 and CSCI 2136)).

Restrictions: Graduate level students may not enroll.

CSCI 3354  Web Application Development  
Credits: 3 (3-0-0)
  

This course covers the fundamental concepts of designing and developing web application. The content is focused on strategies and techniques for designing and structuring web applications. Topics include designing interfaces in HTML, CSS, and JavaScript, writing basic scripts in PHP, and working with databases on a client-server architecture. TSI Restriction(s): Reading, Math

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CISA 2436 or (CSCI 2336 and CSCI 2136) or CISA 3309 (or CISA 4309).

Restrictions: Graduate level students may not enroll.

CSCI 3362  Operating Systems  
Credits: 3 (3-0-0)
  

This course provides a comprehensive study of key concepts in modern operating systems. Topics include operating system structures, process and threads, process synchronization, CPU scheduling, deadlock, main memory and virtual memory management, and file systems. TSI Restriction(s): Reading, Math

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2325 and (CSCI 2436 or (CSCI 2336 and CSCI 2136)).

Restrictions: Graduate level students may not enroll.

CSCI 3366  Programming Languages  
Credits: 3 (3-0-0)
  

This course covers the syntax and semantics of programming languages and different programming language paradigms such as functional programming, logic programming, and object-oriented programming. TSI Restriction(s): Reading, Math

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2322 and (CSCI 2436 or (CSCI 2336 and CSCI 2136)).

Restrictions: Graduate level students may not enroll.

CSCI 4101  Ethical Issues in Computing  
Credit: 1 (1-0-0)
  

In this course students will identify the various ethical issues and values as it relates to future careers within their discipline. Students will study various cases and identify the ethical issues, and seek mechanisms for addressing and resolving the issues. Through mock debates, studying, writing and presenting professional ethical analysis studies, students will be prepared to understand and address the ethical issues within their discipline.

Restrictions: Students with a semester level of Freshman or Sophomore may not enroll.Graduate level students may not enroll.

CSCI 4313  Artificial Intelligence  
Credits: 3 (3-0-0)
  

The course gives a comprehensive and up-to-date introduction to artificial intelligence (AI) theory and practice. Covered topics include machine learning, deep learning, transfer learning, multiagent systems, robotics, natural language processing, causality, probabilistic programming, privacy, fairness, and safe AI.

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436, CSCI 1437, and CSCI 2436.

Restrictions: Graduate level students may not enroll.

CSCI 4314  Big Data Systems  
Credits: 3 (3-0-0)
  

This course introduces the concepts, principles, and applications of big data systems. The course focuses on big data management systems, where the scale of data is often much larger than traditional data management systems and tools can handle. It covers the development of efficient solutions for different types of data, including relational, distributed, graph, NoSQL, NewSQL, machine learning, and neural networks. Additionally, it covers the data from various disparate sources, often characterized by noise, and generated at a very high rate. TSI Restriction(s): Reading, Writing, and Math

Prerequisites: A grade of C or better in CSCI 2436, or by the program coordinator’s approval.

Restrictions: Graduate level students may not enroll.

CSCI 4315  Computer Graphics  
Credits: 3 (3-0-0)
  

Man-machine communication in graphical form. Graphics hardware and software. Use of a commercial graphics package. Representation and manipulation of two- and three-dimensional data. Use of color. TSI Restriction(s): Reading, Math

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), and (CSCI 2436 or (CSCI 2336 and CSCI 2136)) or instructor approval.

Restrictions: Graduate level students may not enroll.

CSCI 4316  Software Engineering I  
Credits: 3 (3-0-0)
  

This course introduces an engineering approach to software development with software process models, software design principles, software requirements analysis, specification, design, and development. TSI Restriction(s): Reading, Math

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2436 (or CSCI 2336 and CSCI 2136).

Restrictions: Graduate level students may not enroll.

CSCI 4317  Software Engineering II  
Credits: 3 (3-0-0)
  

This course covers engineering principles applied in the software process improvement, software quality assurance, software testing, software project management, and software maintenance. Course materials also address current topics in software engineering. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314,CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2436 (or CSCI 2336 and CSCI 2136), and CSCI 4316.

Restrictions: Graduate level students may not enroll.

CSCI 4321  Computer Security  
Credits: 3 (3-0-0)
  

This course covers the topics of computer security and information security in greater detail. Topics will include cryptography, security protocols, web security, network security, software-security, mobile security, intrusion detection and prevention systems, vulnerability assessment, and other security technologies. Special emphasis is on application and software security issues. Hands-on exercises are included to reinforce the material. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), (CSCI 2436 or (CSCI 2336 and CSCI 2136)), CSCI 3321, CSCI 4406 (or CSCI 4306 and CSCI 4106), and MATH 3340.

Restrictions: Graduate level students may not enroll.

CSCI 4322  Cyber Intelligence  
Credits: 3 (3-0-0)
  

This course will integrate knowledge from introductory security courses with knowledge from data science and analytics. Major subjects include cyber operation and management, cyber defense and offense, malware analysis, and revere engineering. The course will be built based on NIST NICE Cyber framework. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), and (CSCI 2436 (or CSCI 2336 and 2136) or CISA 3309 (or CISA 4309)) and (CSCI 3321 or CISA 4321).

Restrictions: Graduate level students may not enroll.

CSCI 4325  Mobile App Development I  
Credits: 3 (3-0-0)
  

This course covers the fundamental concepts of designing and developing software applications targeted for mobile devices such as those running the Android operating system. The content is focused on strategies and techniques for designing and structuring mobile applications, including user interface screen layouts, the definition of program logic, and the connection between them. The application life cycle in the mobile environment and its important implications on application design is also examined. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2436 or (CSCI 2336 and CSCI 2136) or CISA 3309 (or CISA 4309).

Restrictions: Graduate level students may not enroll.

CSCI 4328  Internship in Computer Science  
Credits: 3 (3-0-0)
  

The course provides students the opportunity to gain an off campus learning experience allowing the acquisition and application of computer science skills in a professional work environment.

Prerequisites: Grade of 'C' or higher in CSCI 2436, minimum junior standing, and department chair permission .

Restrictions: Enrollment limited to students with a semester level of Junior.Graduate level students may not enroll.

CSCI 4331  Cryptography  
Credits: 3 (3-0-0)
  

This course covers an introduction to various topics in cryptography including conventional and public-key cryptography, authentication and digital signatures, pseudo-random sequences, hash functions, key management. Software applications using these techniques will be studied in addition to an introduction to current cryptographic techniques and applications. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2436 (or CSCI 2336 and CSCI 2136), MATH 2314, MATH 2114, MATH 3340, CSCI 3321, CSCI 3343, and CSCI 4406 (or CSCI 4306 and 4106).

Restrictions: Graduate level students may not enroll.

CSCI 4335  Mobile App Development II  
Credits: 3 (3-0-0)
  

This course covers the technologies, tools, and techniques used to develop software applications targeted for mobile devices running software such as the iOS operating system. The content is focused on strategies and techniques for designing and structuring mobile applications, including user interface layouts, gesture-based interfaces, integrated location services, multi-touch event handling, Apple iOS platform, Xcode IDE, and Swift programming language. The application life cycle in the mobile environment and its important implications on the application design is also examined. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), and (CSCI 2436 (or CSCI 2336 and CSCI 2136) or CISA 3309 (or CISA 4309)).

Restrictions: Graduate level students may not enroll.

CSCI 4341  Machine Learning  
Credits: 3 (3-0-0)
  

This course examines the concepts, principles, and application of machine learning (ML), the major driving force of current AI development. This course provides fundamental knowledge of ML and hands-on experiences to develop ML models in real-world scenarios. The topics of this course include supervised learning, unsupervised learning, classification, and regression. This course will introduce a wide range of ML algorithms, such as K-Nearest Neighbor, K-Means Clustering, Logistic Regression, Principal Component Analysis, and Neural Networks. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: A grade of C or better in CSCI 2436, or by the program coordinator's approval.

Restrictions: Graduate level students may not enroll.

CSCI 4359  Advanced Topics in Comp Sci  
Credits: 3 (3-0-0)
  

Research in selected fields of computer science. May be repeated once for additional credit. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: consent of instructor.

Restrictions: Graduate level students may not enroll.

Repeat Status: Course may be repeated 1 time(s).

CSCI 4391  Senior Project  
Credits: 3 (3-0-0)
  

Students will work individually or as teams on topics/projects related to the industry or research. Faculty will help students in the selection process and students will produce several deliverables within the course toward the goal of their project completion. Meets College of Business Experiential Learning Requirements. TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of C or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2436 (or CSCI 2336 and 2136), CSCI 4316.

Restrictions: Enrollment limited to students with a semester level of Senior.Enrollment is limited to students with a major in Computer Science.Enrollment limited to students in the BS_CSCI program.Graduate level students may not enroll.

CSCI 4406  Computer Networks  
Credits: 4 (3-3-0)
  

This course covers subjects related to computer networks including TCP/IP and OSI models, network applications, distributed systems and an introduction to network security. The course focuses on concepts, principles and technologies that enable the use of current computer networks and protocols. Course includes a lab component for lab-based exercises. . TSI Restriction(s): Reading, Math, and Writing

Prerequisites: Grade of ‘C’ or better in each of: MATH 1314, CSCI 1436 (or CSCI 1136 and 1336), CSCI 1437 (or CSCI 1137 and 1337), CSCI 2436.

Restrictions: Graduate level students may not enroll.