Computer Science (CS)
Computer Science elective courses
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.
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.
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.
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.
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.
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.
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.
This course is designed to provide a comprehensive understanding of data structures and algorithms, with a strong emphasis on their practical applications in the field of Public Health. Students will explore how data structures and algorithms can be harnessed to address complex challenges encountered in Public Health practice. Through a combination of theoretical knowledge and hands-on Python programming, participants will learn how to effectively manage and analyze Public Health data, make data-driven decisions and develop solutions that contribute to improved Public Health outcomes. This course will equip students with the essential skills needed to leverage data structures, algorithms, and Python for meaningful impact in Public Health practice.
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.
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.
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.
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.
This course focuses on the principles and practical applications of data visualization in the field of Public Health. Students will learn how to effectively communicate complex health information to diverse audiences through visual representations. The course covers various data visualization techniques, tools, and programming languages used in Public Health research and practice. Through hands-on exercises and projects, students will develop the skills necessary to create visually compelling and informative data visualizations using real-world Public Health datasets.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.