Computer Science (CS)

CS-ELE  -  Computer Science Elective   (3 cr)  

Computer Science elective courses

Corequisite: Please Choose a Computer Science Elective  
CS-610  -  Computer Architecture   (3 cr)  

This course teaches students the fundamentals of computer architecture. The course covers the basic organizations of computer systems including number systems, computer logic, ARM architecture, RISC, bus designs, multimedia, performance, processor control, memory hierarchy, secondary storage, I/O, parallel processing, and multithreading. It also addresses a wide range of micro- architecture issues geared toward to improving processor performance.

CS-615  -  Operating System Design   (3 cr)  

This course is an introduction to operating system (OS) and its functions regardless of the hardware that houses it. It is intended for students with a basic background in computing systems. The course presents the basic concepts of operating systems, and covers specific issues of storage, memory management, processor scheduling, process management, concurrent processes, device management, and networking functions of OS. Current operating systems such as Unix/Linux, Windows, and/or Android are explored through case studies.

CS-617  -  Statistical Computing   (3 cr)  

A widely used programming language among statisticians and data miners for developing statistical software and data analysis will be introduced. The language will be utilized as a tool for statistical computing, genetics, graphics and data mining. The purpose of this course is to set a foundation for full exploitation and creative use of the statistical language for computing and graphics. In this course the students will learn how to use a language for statistical programming, computation, graphics, and modeling, write functions and statistical models for effective data analysis and apply it in their own research. The course covers theoretical concepts of descriptive statistics as well as practical topics in statistical computing which includes programming, reading data into a program, accessing packages, data exploration, graphics, organizing and commenting code. Topics in statistical data analysis and optimization using working examples are also included. An open source programming language and software environment for statistical computing and graphics like R will be used.

CS-620  -  Software System Design   (3 cr)  

This course is a comprehensive, accessible, and concise introduction to core topics and methodologies of software development. The essential topics emphasized by IEEE Computer society-sponsored Software Engineering Body of Knowledge (SWEBOK) are included. Students are given an overview of programming concepts, system analysis and design, principles of software engineering, development and support processes, testing methodologies, and product management.

CS-625  -  Object Oriented Software   (3 cr)  

This course is a conceptual and practical study of object-oriented programming. Students learn how to use data structures known as "objects" to implement object-oriented problem solving. Topics covered include functions, multi-dimension arrays, lists, classes, objects, methods, inheritance, polymorphism, exception handling, recursion, multithreading, and graphics. Object-oriented languages like C#, Java, or Python are used.

CS-628  -  Data Science   (3 cr)  

Data Science is the study that focuses at the creation of knowledge from data. This course will introduce the students to the fundamental tools of Data Science using a popular programming language. Students will learn about powerful ways to store, analyze, and manipulate data. Corporations worldwide are using programming tools to gather insights from their data and gain a competitive advantage. Throughout the course the students will work on projects that explore the advanced data analysis techniques which will allow to understand how to import data, explore it, analyze it, learn from it, visualize it, and generate outcomes reports. The course covers variety of new Data Science techniques including Machine Learning, Natural Language Processing, Data Visualization, and Web Scraping. A general-purpose programming language that is appropriate for Data Science will be utilized.

CS-630  -  Database Systems   (3 cr)  

This course introduces the fundamental concepts of database management systems, with emphasis on relational model. Students are exposed to database design topics such as data models, ER modeling, normalization of database tables, SDLC, performance and query optimization, distributed systems, web technology and database connectivity, and data warehousing. Students learn how to create and maintain databases as well as perform queries using Structured Query Language (SQL). Advanced SQL topics such as joins, subqueries, set operators, and procedural SQL are also covered. Students use Oracle or a similar database package to complete several hands-on database projects.

CS-633  -  Data Mining   (3 cr)  

This course presents a conceptual and practical study of the basic concepts in data mining. Students learn the fundamental principles of data querying, data analysis, inferential statistics, and classification and then implement solutions to extract meaningful insights from the data. Building upon previous course requirements in coding, programmatic solutions are developed using an enterprise DBMS and a popular language environment.

Prerequisite: CS-630  
CS-635  -  Mobile Computing   (3 cr)  

This course introduces students to mobile computing, device security, and mobile application development. The overall goal of this course is to provide an in depth understanding of the fundamental problems in the area of mobile computing and study the existing and proposed solutions for these problems from both research and development perspective. Mobile computing is discussed from three standpoints: mobile technology, application development, and user interaction. The course will first overview various mobile computing applications, technologies and wireless communication. Next, students learn about common paradigms in mobile computing such as low power computing, computing in an environment with limited resources, fault tolerance, security measures in mobile devices and persistence. Students are introduced to and use the cross-platform mobile development environment to reinforce concepts covered in lectures. User interface and user experience are discussed and application development guidelines from various platforms are analyzed. Lastly, the course will look at some current research in mobile computing.

Prerequisite: CS-625 and CS-630  
CS-637  -  Designing E-Commerce Site   (3 cr)  

The phenomenal growth in the last few years of the Internet and its related technologies has created new ways of communicating and trading. The most obvious effects of this growth is the great impact of e-commerce on business transactions in today's marketplace. This course presents concepts and skills for the strategic use of e-commerce and related information system technologies needed to plan, design, analyze develop and evaluate an e-commerce website. Through this project oriented course, students learn essentials of e-commerce Web site development including design techniques, shopping carts, payment options, security, ethical and legal issues. Students design and create a fully functioning e-commerce site and online shops for small business clients. In class projects guide the students step by step through the design and business decisions that are critical to success.

Prerequisite: CS-625 and CS-630  
CS-640  -  Computer Networks   (3 cr)  

This course explores the fields of computer networks and data communications in detail. Students become familiar with network topologies and standards necessary to support computer network systems and their applications. Emphasis is to achieve a balance between the technical aspects of data communications and everyday practical aspects. Topics include networking protocols, Ethernet standards, OSI model, transmitting media, interfaces, various Network Operating Systems case studies, Internet protocols, network management, and network security.

CS-645  -  Computer Security & Privacy   (3 cr)  

This course expands students' knowledge of computer network and business security. Emphasis is on hands-on projects to guide students through several key security activities. Students will also apply the concepts to case projects. The course topics include the ten domains of CISSP (Certified Information Systems Security Professional) Security: access control; telecommunications and network security; information security governance and risk management; software development security; cryptography; security architecture and design; security operations; business continuity and disaster recovery and planning; legal regulations, investigations, and compliance; and physical environment security.

Prerequisite: CS-640  
CS-650  -  Artificial Intelligence   (3 cr)  

This course surveys of the field of Artificial Intelligence. The focus is on theory of AI, problems in the field of AI, and techniques and algorithms for solving those problems. Various computer languages of AI from LISP to Python are discussed. Students are exposed to many applications of AI in game programming, intelligent agents, neural networks, pattern recognition, data mining, and more. Students are not expected to have any prior knowledge of AI, but they are expected to have good programming skills and basic understanding of theoretical techniques for analyzing computer algorithms.

Prerequisite: CS-625 or CS-628  
CS-655  -  Machine Learning   (3 cr)  

This course provides a broad introduction to machine learning and statistical pattern recognition based on fundamental knowledge of computer science principles and skills, probability and statistics theory. The course will discuss recent applications of machine learning including: supervised and unsupervised learning, robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing. Machine learning uses statistics, optimization, and computer science to create automated systems that can sift through large volumes of data at high speed to make predictions or decisions without human intervention. Machine learning as a field is now incredibly pervasive, with applications spanning from business intelligence to homeland security, from analyzing biochemical interactions to structural monitoring of aging bridges, and from emissions to astrophysics, etc. This class will familiarize students with a broad cross-section of models and algorithms for machine learning, and prepare students for research or industry application of machine learning techniques.

Prerequisite: CS-628  
CS-660  -  Managing Projects, Resources and Risks   (3 cr)  

This course helps students develop the knowledge and skills necessary to successfully addressthe complex and unique issues in an Information Technology project environment. The emphasis is on learning how to accomplish project objectives on time and within budget. The course focuses on the nine knowledge areas specified by the Project Management Institute (PMI). Team-based and discovery-based methodology is stressed. An industry recognized software is used in conjunction with this course, and students participate in group projectsto investigate the scopes, deadlines, and constraints of actual industry problems.

Prerequisite: CS-620  
CS-665  -  Analytic Techniques   (3 cr)  

This course covers an integrated system of software applications that enables the user to perform: data entry, management, mining reports, statistical analysis, forecasting, decision support, operations research and project management, applications development, data warehousing (extract, transform, load), platform independent and remote computing. In addition, the utilized system integrates with many business solutions that enable large scale software solutions for areas such as financial management, business intelligence, and customer relationship management. In this course the students will learn how to use programs to access, explore, prepare, and analyze data. The course explores how to use the software tool for data science, machine learning, and artificial intelligence as main applications. The students will study theoretical concepts as well as hands on applications for various topics that includes: Base Programming, Data Visualization, Enterprise Management Integration, Scalability & Performance, Statistics, and Operations Research. Students will use an industry-standard software tool such as The SAS System (Statistical Analysis System).

CS-670  -  Cloud Computing   (3 cr)  

This course provides a comprehensive study of Cloud concepts and capabilities across the various Cloud service models including Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), and Identity as a Service (IDaaS). The course also covers data storage, collaboration, virtualization, security, and disaster recovery aspects in the cloud. Students learn to design and code scalable applications using Cloud-based software applications on top of various Cloud platforms. Students are introduced to different layers of the cloud technologies, as well as practical solutions such as Google, Amazon, Microsoft, and SalesForce.com.

Prerequisite: CS-640  
CS-675  -  Big Data: Management & Analytics   (3 cr)  

Organizations today are generating massive amounts of data that are too large and unstructured to fit in relational databases. Organizations and enterprises are turning to massively parallel computing solutions such as Hadoop. The Apache Hadoop platform allows for distributed processing of large data sets across clusters of computers using the map and reduce programming model. Students will gain an in-depth understanding of how MapReduce and Distributed File Systems work. In addition, they will be able to author Hadoop-based MapReduce applications in Java and use Hadoop subprojects Hive and Pig to build powerful data processing applications. Industry systems, such as IBM InfoSphere BigInsights and Spark 2.0 will be studied.

Prerequisite: CS-617 and CS-630  
CS-700  -  Special Projects in Computer Science I   (3 cr)  

Students work on a special project in the computer science field, to complete degree requirements. Students are required to find an appropriate adviser to guide and monitor the project. The project must be industry standard, and it adequately demonstrate mastery in the project design, creation, execution, and implementation. An oral presentation of the project in front of a panel of professors is required. Students must register for the special project in two semesters for 3 credits each.

CS-701  -  Special Projects in Computer Science II   (3 cr)  

Students work on a special project in the computer science field, to complete degree requirements. Students are required to find an appropriate adviser to guide and monitor the project. The project must be industry standard, and it adequately demonstrate mastery in the project design, creation, execution, and implementation. An oral presentation of the project in front of a panel of professors is required. Students must register for the special project in two semesters for 3 credits each.

CS-703  -  Applied Data Science Project   (3 cr)  

Students are required to work on a special hands-on project in Data Science field, for which 3 credits can be earned toward the degree requirement. Students will work with a professor assigned as a primary faculty for guidance. The project must be industry standard, and it should adequately demonstrate the student's mastery in the project design, creation, execution and implementation. An oral presentation of the project in front of a panel of professors is required. Student may register for this capstone project in the last semester of their studies with the program director/department dean's permission.

CS-705  -  Computer Science Thesis I   (3 cr)  

Exceptional students may elect to write a master's thesis in computer science, for which 6 credits can be earned toward the degree requirement. Students are required to find an appropriate adviser to guide and monitor the research. The research may or may not be original, but it should adequately demonstrate the student's proficiency in the subject matter. An oral defense of the thesis in front of a panel of professors is required. Students must register for the thesis in two semesters for 3 credits each.

CS-706  -  Computer Science Thesis II   (3 cr)  

Exceptional students may elect to write a master's thesis in computer science, for which 6 credits can be earned toward the degree requirement. Students are required to find an appropriate adviser to guide and monitor the research. The research may or may not be original, but it should adequately demonstrate the student's proficiency in the subject matter. An oral defense of the thesis in front of a panel of professors is required. Students must register for the thesis in two semesters for 3 credits each.

Prerequisite: CS-705  
Corequisite: CS-705  
CS-707  -  Research Topics in Data Science   (3 cr)  

Data Science is an up-and-coming field that uses databases, scientific methods, processes, programming/algorithms and systems to extract knowledge. It is a concept that unifies statistics, data analysis, machine learning and their related methods in order to understand and analyze data. Students are required to select an advanced research topic in this growing field, for which 3 credits can be earned toward the degree requirement. Students are required to find an appropriate adviser to guide and monitor the research. The research might or might not be original, but it should adequately demonstrate the student's proficiency in the subject matter. An oral defense of the research in front of a panel of professors is required. Student may register for the research class either in second-to-the-last or in the last semester of their studies with the department dean's permission.