The Computer Science program offers a major for students who are interested in cyber security, data science, and software engineering. Programs of specialization in computer science provides opportunities and guided experiences through which the student will be introduced to the knowledge and skills essential to pursue careers in industrial and governmental research, professional careers, and attending graduate school in the various areas of computer science.
Major:
CS 110, 155, 210, 220, 310, 320, 345, 400, 425, SCI 402; Select SCI 480 or SCI 406 and 407. Choose One Track: Cyber Security Track: CS 325 and 435 or Data Science Track: CS 300 and 415. Related Requirements: MAT 209, 230, 250. Recommended: MAT 131.
Cyber Security Minor: 21 credits
Required Courses: CS 110, 155, 210, 310, 325, 345, 435
Data Science Minor: 21 credits
Required Courses: CS 110, 155, 220, 300, 345, 400, 415
Course Descriptions
CS 110 3 credits
Introduction to Computer Science
This course provides a broad yet practical overview and realistic understanding of the entire field of computer science. Computer sciences is not just programming and web browsing. The scope of computer science is quite broad, and is contributed to by many diverse disciplines such as mathematics, engineering, psychology, biology, business administration, and linguistics. Topics in the class include computer systems organization, computer languages, networking, algorithms, data abstraction, systems software, databases, and artificial intelligence. For each topic, its history, current state, future potential, and associated legal and ethical issues will be presented. This course has an integrated computer lab component.
CS 155 3 credits
Introduction to Object-Oriented Programming
this course will enable students to get hands-on experience to build programs. This course teaches object oriented classes, inheritance as well as testing and debugging a program. Object-oriented programming paradigm will be taught in this course. Through overview of concepts of object-oriented analysis and design methods, students will learn an object oriented program design and fundamental software development. Python will be used as the programming language. This course has an integrated computer lab component.
CS 210 3 credits
Computer Organization and Assembly Language
The purpose of this course is to present, as clearly and completely as possible, the nature and characteristics of modern-day computer systems with an emphasis on the impact of computer organization on software development. This course covers the basics of computer organization with emphasis on the lower level abstraction of a computer system including computer abstractions and technology, digital logic, instruction set, computer arithmetic, memory hierarchies, and assembly language programming. This course as an integrated computer lab component. Pre-requisites: CS 110 and CS 155; or permission of the Chair.
CS 220 3 credits
Data Structures and Algorithms
This course will cover the basic approaches and mindsets for analyzing and designing algorithms and data structures. Topics include the following: (1) Analysis of Algorithms; iterators, recursion, searching and sorting; (2) Data structures; stacks, queues, lists, binary search trees, heaps, hash tables; (3) Possible additional topics: graphs. This course introduces various data structures and their application. The course will be taught using Linux and/or the Integrated Development Environment Eclipse. Java will be used as the programming language. Pre-requisites: CS 110 and CS 155; or permission of the Chair.
CS 300 3 credits
Data Analytics
Data Analytics course is designed as a bachelor-level course of data science track in computer science program which is an interdisciplinary, problem-solving oriented subject that learns to apply scientific techniques to practical problems. Students will gain extensive experience with the open-source R programming language. The goal of this course is to mainly teach applied and theoretical aspects of R programming for data sciences. The course will cover R programming language concepts. Course content focuses on design and implementation of efficient R programs to meet routine and specialized data manipulation/management and analysis tasks. This course is required for the data science track of the computer science major. Pre-requisites: CS 110 and CS155; or permission of the chair. A background in statistics and calculus is desirable.
CS 310 3 credits
Operating Systems
This course introduces students to a broad range of operating system concepts, such as processes and threads, scheduling, synchronization, memory management, file systems, input and output, deadlocks, device management and security. Students will also get practical experience with the Linux operating system. C will be used as the programming language in the course. Pre-requisites: CS 110 and CS 155; or permission of the chair.
CS 320 3 credits
Algorithm Design & Analysis
In this course, students are given a thorough grounding in the design and analysis of algorithms, with an emphasis on practical yet efficient algorithms. Different algorithms for a given computational task are presented, and their relative merits are evaluate based on performance measures. This course includes algorithm design techniques (e.g. divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, randomization); algorithms for fundamental graph problems (e.g. minimum-cost spanning tree, connected components, topological sort, and shortest paths); and possible additional topics (e.g. Network Flows, Max Flow-Min Cut theorem, Capacity Scaling Algorithm, Traveling Salesman Problem, Polynomial Time Reductions Scaling Algorithm, Traveling Salesman Problem, Polynomial Time Reductions and NP-completeness. Pre-requisites: CS 110 and CS 155; or permission of the chair.
CS 325 3 credits
Computer Networking and Cyber Security
This course is an introduction to structure, implementation, security, and theoretical underpinnings of computer networking and the applications. Major topics include networks technologies, communications architecture and protocols, cyber attacks, vulnerability assessment and management, security policies, network security, security threats and countermeasures against them, cryptography, risk analysis and data privacy. Pre-requisites: CS 110 and CS 155; or permission of the chair.
CS 345 3 credits
E-Commerce
This course introduces the concepts, procedures, models and issues associated with E-Commerce and the internet with emphasis on security. The student gains an overview of all aspects of E-Commerce. Topics include development of the internet and E-Commerce, cryptography, digital signatures, features of Websites and the tools used to build an E-Commerce website, payment options, certificates and public key infrastructure (PKI_ and security-conscious programming for web-based applications. Students will also get practical experience with interaction between technical issues and business, legal and ethical issues. Pre-requisites: CS 110 and CS 155; or permission of the chair.
CS 400 3 credits
Database Systems
This course introduces the necessary concepts of database systems. Principles and methodologies of database design and techniques for database application development will be presented. Topics in the course include database and database users, database system concepts, data modeling using the entity-relationship model, relational data model and relational database constraints, complex queries, relational algebra and relational calculus, introduction to SQL programming techniques, web database programming using PHP, etc, Pre-requisite: CS 220; or permission of the chair.
CS 415 3 credits
Data Mining and Machine Learning
In this course, how this interdisciplinary field brings together techniques from databases, statistics, machine learning, and its recent applications is explored. The main data mining methods currently used, the basic concepts, principles, methods, implementation techniques, and applications of data mining for the purpose of analytical processing and decision support are discussed. This course includes data preparation, linear regression, logistic regression, clustering, association rules mining, classification, decision tree, text mining and web mining. Pre-requisite: CS 300; or permission of the chair. A background in statistics and calculus is desirable.
CS 425 3 credits
Software Development
The main objective of this course is ot give students the fundamental principles of system development with object-oriented technology and to help students build up an understanding of how to develop a software system. This course covers the software development process, requirements analysis, software design concepts and methodologies, and related programming. In the course, students will complete a significant software project. The project is aimed at helping students strive to achieve customer satisfaction and focus on software reliability. Pre-requisite: CS 220 and CS 320; or permission of the chair.
CS 435 3 credits
Computer Forensics
this course will introduce students to the fundamentals of computer forensics and cyber-crime scene analysis. The course includes security incident investigations; processing crime and incident scenes; file systems and storage analysis, data hiding techniques, network forensics; computer forensics analysis and validation, design of current computer forensics tool; and email investigation as well as cell phone and mobile device forensics. Topics of advanced computer forensic science such as tools for data duplication, recovery and analysis, and development of pre-search or on-scene computer investigative techniques will be presented. Pre-requisite: CS 325; or permission of the chair.