CSC420Computer Networks
3 credits | Pre-requisite: CSC212
This course covers the architecture and protocols of modern computer networks. It presents the networking protocol models: OSI and TCP/IP by discussing the different layers, their functions, roles, and services.
CSC212Computer Organization and Assembly Language
3 credits
The course is designed to introduce Computer Science and Information Technology students to the basics of computer architecture and low-level programming. i.e. assembly code and hardware manipulation.
The course focuses on the Intel x86 Assembly language, number representations, logic circuits, Boolean algebra and logic simplification, addressing modes, Input/Output devices, system buses, memory systems, memory systems, memory occupation, computer arithmetic, instruction sets and the design, control, and structure of CPUs.
CSC441Cybersecurity Fundamentals
3 credits | Pre-requisite: CSC420
This course introduces the fundamentals of cybersecurity, including the security concepts, principles, technologies, and practices that protect networks, systems, and data from cyber threats. Students will learn about different types of cyber-attacks, security policies and standards, risk assessment, and security controls. The course will also cover the legal and ethical issues related to cybersecurity.
CSC320 And STA220Data Analysis and Visualization
3 credits
This course introduces data analysis and its importance in business decision-making. Students will learn about the different types of data sources and how to acquire and prepare data for analysis. Basic data analysis techniques and visualization methods will be covered using popular tools and software. Additionally, students will learn about business intelligence (BI) and how it can improve decision-making using dashboards and other technologies.
CSC428Database Administration
3 credits | Pre-requisite: CSC320
In this course, students will learn about the following subjects: tasks of the database administrator; identifying the various components of the Oracle architecture; managing Oracle instance; creating a database; using a data dictionary and dynamic performance views; maintaining the control file; maintaining redo log files; managing table spaces and data files; storage structure and relationships; managing undo data; managing tables; managing indexes; maintaining data integrity; managing password security and resources; managing users; managing privileges; managing roles; backup; and about recovery, environment and applications.
CSC320Database Management Systems
3 credits | Pre-requisite: (CSC214 Or CSC210) And CSC211
This course is designed to provide students with a comprehensive understanding of the concepts and techniques used in database systems. Topics covered in the course include Introduction to database systems and the relational data model, Entity-relationship (ER) modeling and database design, SQL programming and query optimization, normalization, denormalization, partitioning, Database indexing and transaction management, non-relational database systems (e.g., document-oriented, key-value, graph databases). The course includes lab workshops where students will apply these concepts in practice.
CSC443E-Commerce and Web Analytics
3 credits | Pre-requisite: CSC331 And CSC375
This course provides students with an in-depth understanding of the principles and practices of e-commerce and web analytics. It explores the dynamic field of electronic commerce, focusing on the technological and business aspects of conducting online transactions. Students will gain knowledge and skills necessary to design, develop, and manage e-commerce websites and leverage web analytics for data-driven decision making.
CSC440Information Systems Architecture
3 credits | Pre-requisite: CSC428 And CSC429
This course covers the fundamentals of Information Systems Architecture and how it relates to the design, development, and maintenance of enterprise information systems. Topics include Business Process Analysis and Modeling, Enterprise Architecture Frameworks (TOGAF, Zachman, and FEAF), Information Systems Security (risk assessment, access control, and policy), Data Management and Analytics (database, data warehousing, modeling, BI), Cloud Computing and Virtualization, and Emerging Technologies (IoT, blockchain, AI).
CSC439Internship
1 credits | Pre-requisite: CSC429
CSC210Introduction to Programming
3 credits
This course introduces the fundamental concepts of programming, including basic programming constructs and programming paradigms, and builds on those concepts to cover more advanced topics in programming. Students will learn how to write simple programs using a high-level programming language such as Java. Topics cover the basics of programming, including basic programming constructs (e.g., variables, data types, operators, expressions), control flow structures (e.g., conditional statements, loops), functions and modular programming, basic data structures (e.g., arrays), recursion, and data files (e.g., text files).
Additionally, students will learn about programming style and comments, including best practices for writing readable, maintainable code and using comments effectively to document their code. The course includes lab workshops where students will practice programming and apply these concepts in practice.
CSC369IT Project Management
3 credits | Pre-requisite: CSC266
This course provides an overview of project management in the context of information technology. It covers the fundamentals of project management, including project initiation, planning, execution, monitoring and control, and closure. The course also covers project management frameworks, tools, and techniques used in IT projects, as well as leadership and communication skills required for successful project management. The course also includes case studies and hands-on experience with project management software.
CSC266IT Workshop I
1 credits | Pre-requisite: CSC210
IT Workshop I is a course focused on applied data structures. The course will explore fundamental data structures and algorithms used in software applications. Students will learn how to analyze and design data structures for practical programming problems. The course will cover various topics including arrays, linked lists, stacks, queues, trees, heaps, and graphs. Students will also be exposed to algorithms such as sorting, searching, and graph traversal. In addition to lectures and demonstrations, students will engage in hands-on activities and programming exercises to reinforce concepts covered in class.
CSC366IT Workshop II
1 credits
This course is a workshop-based course that focuses on the implementation and deployment of IoT (Internet of Things) solutions. The course covers the architecture of IoT systems and networks, protocols used in IoT, IoT data management and analytics, and security in IoT. Students will have hands-on experience in using IoT devices, programming IoT solutions, and implementing and managing IoT networks.
CSC429Microcomputer Support
3 credits | Pre-requisite: CSC420
This course covers the essentials of microcomputer support, with a focus on practical skills needed to manage computer hardware, software, networking, and security. Students will learn about different types of hardware and networking devices, as well as operating systems such as Windows and Linux. The course also includes an introduction to virtualization and cloud computing, security concepts, and operational procedures.
CSC314Object Oriented Programming
3 credits | Pre-requisite: CSC214 Or CSC210
This course introduces students to the principles of object-oriented programming and design. It is designed for students pursuing a Computer Science degree and assumes prior programming experience. The course provides an in-depth understanding of object-oriented programming and design principles using UML, with a focus on the use of a programming language such as Java. Students will learn how to design and implement classes and objects, how to use inheritance and polymorphism to build complex software systems. Topics covered in the course include introduction to OOP concepts (classes, objects, inheritance, encapsulation, polymorphism), object-oriented design principles using UML diagrams, exception handling and error checking. The course includes lab workshops where students will OOP concepts in practice.
CSC421Operating Systems
3 credits | Pre-requisite: CSC212 And CSC315
Operating Systems is a fundamental course in the Bachelor of Science in Computer Science curriculum. The course is designed to provide students with a deep understanding of the fundamental concepts, principles, and algorithms underlying modern operating systems, with a particular focus on multiuser and multitasking operating systems like Unix/Linux. The course covers the principles of operating systems design and implementation, with an emphasis on the management of resources such as memory, processes, and input/output. Topics include mutual exclusion and synchronization problems, process scheduling algorithms, memory management, file systems, and device management. The course includes a practical component in which students will learn to use the Unix/Linux operating system commands language and multi-tasking programming techniques featuring process management, anonymous and named pipes, signals, shared memory, semaphores, and message queues.
CSC400Professional Ethics
3 credits | Pre-requisite: CSC265 Or CSC266
This course introduces Computer Science students to the ethical issues and challenges that arise in the practice of computer science. The course provides an overview of the ethical principles that underlie responsible computing practice and explores case studies that highlight the practical application of these principles. Topics covered in the course include: the ethical challenges of emerging technologies, ethical frameworks and principles, privacy and data protection, intellectual property and copyright, cybersecurity and cybercrime, social responsibility and sustainability, professional codes of conduct and ethical decision-making. The course will involve case studies
CSC442Systems Administration
3 credits | Pre-requisite: CSC440
Systems Administration is a comprehensive course that explores the principles and practices of managing and maintaining computer systems and networks. This course is designed to provide students with the knowledge and skills necessary to effectively administer computer systems within an organizational context. Throughout the course, students will delve into various aspects of systems administration, including system installation, configuration, monitoring, security, user management, backup and recovery, and troubleshooting techniques. Emphasis will be placed on understanding the underlying concepts and principles, as well as handson practice with industry-standard tools and technologies.
CSC331Web Programming
3 credits | Pre-requisite: CSC210
This course introduces web programming, focusing on client-side web app development. Students will learn how to create dynamic and interactive web pages using HTML, CSS, JavaScript, XML, and DTD. The course will also cover the basics of server-side web programming, including an introduction to web servers, databases, and server-side scripting languages. The course includes lab workshops where students will practice Web programming and apply these concepts in practice.