BS (Computer Science)
Introduction
The BS Computer Science program at QAU was started in 2013. It provides a well-integrated balance of theoretical and practical knowledge required for developing reliable and usable software tools for different fields. The program enables students to design, implement and manage systems combining scientific, computational, communication and multimedia facilities in different domains. The BS program is accredited by National Computing Education Accreditation Council (NCEAC).
Program Educational Objectives (Click to Expand)
The main objectives of the program are to enable students:
- PEO1: to use their computing knowledge for developing and maintaining software using modern tools and technologies
- PEO2: to benefit the society as responsible Computer Science professionals by practically applying their knowledge in diverse areas
- PEO3: to keep abreast of latest technological developments, participate in lifelong learning and progress in their chosen profession
Program Learning Outcomes (Click to Expand)
Following are the learning outcomes of the BS program.
| PLO1 | Academic Education | Completion of an accredited program of study designed to prepare graduates as computing professionals |
| PLO2 | Knowledge for Solving Computing Problems | Apply knowledge of computing fundamentals, knowledge of a computing specialization, and mathematics, science, and domain knowledge appropriate for the computing specialization to the abstraction and conceptualization of computing models from defined problems and requirements |
| PLO3 | Problem Analysis | Identify and solve complex computing problems reaching substantiated conclusions using fundamental principles of mathematics, computing sciences, and relevant domain disciplines |
| PLO4 | Design/Development of Solutions | Design and evaluate solutions for complex computing problems, and design and evaluate systems, components, or processes that meet specified needs |
| PLO5 | Modern Tool Usage | Create, select, or adapt and then apply appropriate techniques, resources, and modern computing tools to complex computing activities, with an understanding of the limitations |
| PLO6 | Individual and Team Work | Function effectively as an individual and as a member or leader of a team in multi-disciplinary settings |
| PLO7 | Communication | Communicate effectively with the computing community about complex computing activities by being able to comprehend and write effective reports, design documentation, make effective presentations, and give and understand clear instructions |
| PLO8 | Computing Professionalism and Society | Understand and assess societal, health, safety, legal, and cultural issues within local and global contexts, and the consequential responsibilities relevant to professional computing practice |
| PLO9 | Ethics | Understand and commit to professional ethics, responsibilities, and norms of professional computing practice |
| PLO10 | Life-long learning | Recognize the need, and have the ability, to engage in independent learning for continual development as a computing professional |
BS Program Structure
During the B.S. students will be informed through research expertise of the faculty about the current and future issues affecting the usage and development of computer-based systems. Initially students learn basics of computing discipline through foundation courses and will build their knowledge of the discipline through core courses. In the last four semesters students will extend their knowledge in a focus area of their choice through elective courses. The final year compulsory project will give students the opportunity to consolidate and demonstrate the knowledge and skills gained from the entire course material.
After providing the students with a solid foundation based on foundation and core courses in Computing, the BS program will give students the opportunity to enrich their knowledge in an area through elective courses. These elective courses will on one hand provide in-depth knowledge, and on the other will enable students to work on and solve practical problems in the area by using latest techniques and tools. Some focus areas are:
Four years of BS program is divided into eight semesters. In each semester, students are offered 15 to 18 credit hours of courses, where one credit hour means one hour of teaching (or three hours of lab) per week. The students have to complete 130 credit hours during their degree. The courses are divided into six groups:
- Computing Core courses mainly focus on the core concepts of the computing discipline. These courses are also studied by students of other computing domains like Artificial Intelligence, Data Science, Software Engineering, etc.
- Domain Core courses are related to the theoretical computer science. These courses develop the foundational concepts of the computer science domain.
- Domain Elective courses allow students to specialize in their field of interest like Artificial Intelligence, Deep Learning, Mobile Application Development, Software Engineering, Web Development, etc. They are offered in the last four semesters.
- Maths and Supporting courses develop the mathematical foundation.
- Elective Supporting course allows students to gain knowledge in supporting disciplines like social and management sciences.
- General Education courses give a breadth of knowledge to the students covering subjects like English, Mathematics, Physics, Ethics, etc.
Schemes of Study
| Semester 1 | |||||
|---|---|---|---|---|---|
| Code | Course Name | Th. | Lab | Total | Type |
| CSC-104 | Problem Solving and Programming | 3 | 1 | 4 | (DC) |
| CSC-110 | Applications of Information and Communication Technologies | 2 | 1 | 3 | (GE) |
| EN-100 | Functional English | 3 | 0 | 3 | (GE) |
| FQ-101 | Understanding Quran - I | 0 | 1 | 1 | (GE) |
| MA-101 | Calculus and Analytic Geometry-I | 3 | 0 | 3 | (ID) |
| SS-ELEC | Social Science Elective | 2 | 0 | 2 | (GE) |
| Total Credit Hours | 13 | 3 | 16 | ||
| Semester 2 | |||||
|---|---|---|---|---|---|
| Code | Course Name | Th. | Lab | Total | Type |
| CSC-103 | Introduction to Computer Organization | 3 | 0 | 3 | (DC) |
| CSC-121 | Object Oriented Programming | 3 | 1 | 4 | (DC) |
| EN-102 | Expository Writing | 3 | 0 | 3 | (GE) |
| FQ-102 | Understanding Quran - II | 0 | 1 | 1 | (GE) |
| MA-203 | Discrete Mathematics | 3 | 0 | 3 | (GE) |
| PK-101 | Pakistan Studies | 2 | 0 | 2 | (GE) |
| Total Credit Hours | 14 | 2 | 16 | ||
| Semester 3 | |||||
|---|---|---|---|---|---|
| Code | Course Name | Th. | Lab | Total | Type |
| CSC-211 | Data Structures | 3 | 1 | 4 | (DC) |
| CSC-224 | Database Systems | 3 | 1 | 4 | (DC) |
| IS-100 | Islamic Studies | 2 | 0 | 2 | (GE) |
| MA-104 | Linear Algebra | 3 | 0 | 3 | (ID) |
| NAT-001 | Natural Science Elective | 3 | 0 | 3 | (GE) |
| Total Credit Hours | 14 | 2 | 16 | ||
| Semester 4 | |||||
|---|---|---|---|---|---|
| Code | Course Name | Th. | Lab | Total | Type |
| CSC-226 | Operating Systems | 3 | 0 | 3 | (DC) |
| CSC-227 | Software Engineering | 3 | 1 | 4 | (DC) |
| CSC-228 | Computer Architecture and Assembly Language | 3 | 1 | 4 | (DC) |
| CSC-331 | Theory of Automata | 3 | 0 | 3 | (DC) |
| PK-100 | Ideology and Constitution of Pakistan | 2 | 0 | 2 | (GE) |
| SW-100 | Civics and Community Engagement | 2 | 0 | 2 | (GE) |
| Total Credit Hours | 16 | 2 | 18 | ||
| Semester 5 | |||||
|---|---|---|---|---|---|
| Code | Course Name | Th. | Lab | Total | Type |
| CSC-311 | Analysis and Design of Algorithms | 3 | 0 | 3 | (DC) |
| CSC-312 | Computer Communications and Networks | 3 | 0 | 3 | (DC) |
| CSC-414 | Artificial Intelligence | 3 | 0 | 3 | (DC) |
| IDS-003 | Interdisciplinary - III | 3 | 0 | 3 | (ID) |
| IDS-004 | Interdisciplinary - IV | 3 | 0 | 3 | (ID) |
| ST-101 | Probability and Statistics | 3 | 0 | 3 | (GE) |
| Total Credit Hours | 18 | 0 | 18 | ||
| Semester 6 | |||||
|---|---|---|---|---|---|
| Code | Course Name | Th. | Lab | Total | Type |
| CSC-411 | Compiler Construction | 3 | 0 | 3 | (DC) |
| CSC-413 | Information Security | 3 | 0 | 3 | (DC) |
| CSC-418 | Cloud Computing | 3 | 0 | 3 | (DC) |
| DE-1 | Domain Elective I | 3 | 0 | 3 | (DE) |
| DE-2 | Domain Elective II | 3 | 0 | 3 | (DE) |
| DE-3 | Domain Elective III | 3 | 0 | 3 | (DE) |
| Total Credit Hours | 18 | 0 | 18 | ||
| Semester 7 | |||||
|---|---|---|---|---|---|
| Code | Course Name | Th. | Lab | Total | Type |
| ART-001 | Arts and Humanities Elective | 3 | 0 | 3 | (GE) |
| CSC-419 | Professional Certification | 3 | 0 | 3 | (CE) |
| CSC-488 | Software Entrepreneurship | 2 | 0 | 2 | (GE) |
| DE-4 | Domain Elective IV | 3 | 0 | 3 | (DE) |
| DE-5 | Domain Elective V | 3 | 0 | 3 | (DE) |
| DE-6 | Domain Elective VI | 3 | 0 | 3 | (DE) |
| Total Credit Hours | 17 | 0 | 17 | ||
| Semester 8 | |||||
|---|---|---|---|---|---|
| Code | Course Name | Th. | Lab | Total | Type |
| CSC-415 | Field Experience | 0 | 0 | 0 | (FE) |
| CSC-499 | Final Year Project | 6 | 0 | 6 | (CP) |
| DE-7 | Domain Elective VII | 3 | 0 | 3 | (DE) |
| DE-8 | Domain Elective VIII | 3 | 0 | 3 | (DE) |
| Total Credit Hours | 12 | 0 | 12 | ||
Elective Courses by Focus Area
CSC-324: Web Application Development (DE) (3 cr.h)
Contents: Markup languages: HTML, XML; Responsive web applications (using advanced features of markup languages and style-sheets); Web based programming language (open source or proprietary); Database connectivity; Web security (SQL injection, HTML injection, cross site scripting XSS); cookies; sessions; user authentication; Model View Controller (MVC) architecture; web application framework (open source or proprietary); web application deployment; Document Object Model (DOM); JavaScript; AJAX; JavaScript frameworks; DTDs; XML Schema; XPath; XSLT style sheets.
CSC-355: Creative Programming for Interactive Apps and Generative Art (DE) (2 cr.h)
Contents: Introduction to the IDE for creative programming; creating interactive apps; working with colors and shapes; working with text; working with audio (understanding audio signal, loading audio files in an app, synthesizing sounds); working with images (understanding image format, loading image into an app, developing image filters); working with videos (understanding video formats, loading videos in an app from files or camera, developing video filters); creating animations; generating art; controlled randomness using Perlin noise; drawing spirals; generative art agents; fractals.
CSC-417: Software Interaction Design (DE) (3 cr.h)
Contents: Interaction design basics; interaction design elements; interaction design dimensions; software products usability aspects; user experience design; design-thing-process; user interface components; design layouts; navigation design; user interface design; usable interaction design; interaction design patterns; usable product design; interaction design instantiation and evaluation.
CSC-421: Professional Practices (DE) (2 cr.h)
Contents: Historical, social, and economic context of Computing (software engineering, Computer Science, Information Technology); Definitions of Computing (software engineering, Computer Science, Information Technology) subject areas and professional activities; professional societies; professional ethics; professional competency and life-long learning; uses, misuses, and risks of software; information security and privacy; business practices and the economics of software; intellectual property and software law (cyber law); social responsibilities, software related contracts, Software house organization. Intellectual Property Rights, The Framework of Employee Relations Law and Changing Management Practices, Human Resource Management and IT, Health and Safety at Work, Software Liability, Liability and Practice, Computer Misuse and the Criminal Law, Regulation and Control of Personal Information. Overview of the British Computer Society Code of Conduct, IEEE Code of Ethics, ACM Code of Ethics and Professional Conduct, ACM/IEEE Software Engineering Code of Ethics and Professional Practice. Accountability and Auditing, Social Application of Ethics.
CSC-472: Information Interfaces (DE) (3 cr.h)
Contents: Human Information Interaction in Information Age; Information an Introduction; Interaction Basics; A brief history of information; Types/Structures of Information Resources; Information Need, Information Seeking Process; Information seeking Behavior; Information Design: Guidelines of Information Design; Information Interaction; User Modeling for Information Interaction; Designing Information Interaction; Information Search Process: Searching in Textual Documents and Multimedia Document, Advanced Filtering and Search Interface; Information Visualization; Evaluation of Information Interaction; Emerging trends in Information Interaction.
CSC-474: Software Testing Techniques (DE) (3 cr.h)
Contents: Software verification and validation; Static approaches and dynamic approaches for software testing; Validation planning; documentation for validation; Different kinds of testing: human computer interface, usability, reliability, security, conformance to specification; Testing fundamentals, including test plan creation and test case generation black-box and white-box testing techniques; Test harness, oracles; Defect seeding; Unit, integration, validation, and system testing; Object-oriented testing; systems testing; Measurements: process, design, program; Verification and validation of non-code (documentation, help files, training materials); Fault logging, fault tracking and technical support for such activities; Regression testing; Inspections, reviews, audits.
CSC-483: Software Quality Assurance (DE) (3 cr.h)
Contents: Software Attributes, Quality in general; Quality in Software (Product Vs Process); Software Defects, Reasons of Poor Quality; How to Assure Quality; Cost and Economics of SQA, Quality Measurements, Software Quality Assurance Plan; Software Requirements and SQA; Requirements Defects, Writing Quality Requirements, Quality Attributes of Requirements Document; Software Design Model and Software Design Defects; Quality Design Concepts, Inspections and Formal Technical Reviews; Programming and SQA, SQA Reviews, Software Inspections, Introduction to Quality Metrics, Measuring software quality, Software quality standards. A Process Model of Software Quality Assurance.
CSC-484: Software Engineering (DE) (3 cr.h)
Contents: The need for Software Engineering; The Software Process: Generic process view, Software process models; Analysis: Concepts and principles Overview of software management activities; Software configuration management: Planning for change, Change management, Version management; Software evolution: Software maintenance, Software evolution process, Legacy systems, re-engineering; Software metrics: Product metrics for analysis, design, coding and testing, Process metrics; Quality management: Quality concepts, Planning for quality, Quality control, Quality assurance, metrics for quality; Process evaluation and improvement: Process characteristics, Measuring processes, analyzing and changing processes, Process improvement frameworks; Introduction to project management; Risk management; Software Engineering Standards, Code of Ethics, Specialized systems: Issues and approaches for developing and evolving specialized systems, CASE Tools.
CSC-486: Software Project Management (DE) (3 cr.h)
Contents: The need for software project management; Introduction to nature of software project management. Management of Software Development Schemes; The Software Process: Generic process view, Software process models; Analysis: Concepts and principles Overview of software management activities; Team management: team processes, team organization and decision making, roles and responsibilities in a software team, role identification and assignment, project tracking, team problem resolution; Project scheduling: software measurement and estimation techniques; Risk analysis: security issue, high integrity / safety critical systems, role of risk in software life cycle; Software quality assurance: role of measurements; Software configuration management and version control, release management; Project management tools: Software process models and process measurements.
CSC-487: Formal Methods for Software Engineering (DE) (3 cr.h)
Contents: Introduction and background to formal methods; System specification using: Predicate logic, Algebraic specification, Temporal logic; System Modeling using a formal notation like Z or SMV; System Analysis: Static and dynamic analysis of software by different static checking and testing techniques; System Verification: Verification of a software system using a model checker like Spin or NuSMV; Abstraction: Use of abstraction to analyze complex systems where ordinary application of formal techniques is not possible.
CSC-351: AI Assisted Programming (DE) (2 cr.h)
Contents: Benefits and Drawbacks of AI assisted programming; Introduction to Generative AI and Large Language Models (LLMs); Types of LLMs; Prompt Engineering: Zero-Shot and Few-Shot Learning, Chain of Thought Prompting, Autonomous AI Agents; Integrating LLM APIs into IDE; Comparison of AI Assisted Programming Tools; Idea Generation; Market Analysis; Requirements Analysis; Managing Code; Debugging and Testing; Deployment.
CSC-425: Introduction to Computer Vision (DE) (3 cr.h)
Contents: Introduction to computer vision, image processing in spatial and frequency domains, image segmentation, feature detection and extraction, image registration, Camera calibration, stereo vision, neural networks, deep neural networks, convolutional neural networks, object detection and recognition, object tracking, context and scene understanding, modern applications of computer vision.
CSC-444: Knowledge Based Systems (DE) (3 cr.h)
Contents: Types of knowledge based systems, Acquisition of knowledge: Sources of knowledge, levels of knowledge, Knowledge categories, Techniques for acquisition, Issues in acquisition, Knowledge representation and reasoning: Semantic nets, logic, uncertain reasoning. Iterative improvement algorithms: Hill climbing, Genetic algorithms. Inductive learning, Neural networks, Support Vector Machines, Bayesian methods, Case based reasoning, Tools for development of knowledge based systems.
CSC-447: Neural Networks (DE) (3 cr.h)
Contents: Neural network concepts. Anatomy of a neural node. Types of neural network. Classification of learning algorithms. Single layer network model and multi-layer network and their limitations. Application of neural network.
CSC-455: Introduction to Natural Language Processing (DE) (3 cr.h)
Contents: What is language processing? Zipf's law, collocations, elementary probability theory, essential information theory, corpora, natural language and formal language: regular expressions and finite state automata, regular expressions in NLP, word tokenization, word normalization and stemming, morphology, sentence segmentation, string edit distance and alignment, introduction to information retrieval, evaluation of information retrieval, text clustering and classification, sentiment analysis.
CSC-458: Introduction to Data Mining (DE) (3 cr.h)
Contents: The knowledge discovery process in databases, data mining process, types of attributes, role of data mining from machine learning perspective, supervised and unsupervised learning, Pre-processing: data cleansing and data preparation, classification and prediction: Naïve Bayes, decision tree, K-Nearest Neighbors, mining association rules, rules interestingness measures, Apriori algorithm, Clustering: K-means, K-median, Divisive, Hierarchical, Density based. Case studies of data mining application in the domains of Management e.g. Churn Detection and Surveys Analysis, Financial e.g. fraud detection, Information Security e.g. hacking patterns, Science e.g. climate change prediction, Medicine e.g. patient disease diagnosis, Psychology e.g. behavior analysis.
CSC-459: Introduction to Machine learning (DE) (3 cr.h)
Contents: Introduction to machine learning, concept learning and version spaces, Supervised learning algorithms: Decision trees, Naïve Bayes, Nearest Neighbour, Artificial Neural Network and Support Vector Machine basics, Measuring classifier accuracy, Regression, Unsupervised learning algorithms: Partitional and hierarchical clustering algorithms, Self-organizing maps, Reinforcement learning, Handling overfitting and noisy data, Machine learning platforms and applications.
CSC-460: Introduction to Deep Learning (DE) (3 cr.h)
Contents: Neural network and machine learning basics, multilayer networks, training a neural network, activation functions, gradient descent, deep neural network, learning algorithms, regularization and optimizations, hyperparameter tuning, Convolutional Neural Networks and their applications, automated feature learning, object detection and recognition, transfer learning, unsupervised learning, autoencoders.
CSC-464: Modeling and Simulation (DE) (3 cr.h)
Contents: Introduction to the course; Modelling principles: Fundamental laws, Monte Carlo simulation, stochastic state transition systems; Discrete-event simulation (DES): Principles of DES; formalisation as a Generalized Semi-Markov Processes (GSMPs); random number generation; distribution sampling; analysis of simulation output; Markov Processes (MPs): Numerical solution of MPs, analytical solution of MPs.
CSC-412: Introduction to Cyber Security (DE) (3 cr.h)
Contents: Introduction to Cyber security; Aspects of Security; Cybersecurity ecosystem; Authentication: Methods, Two-Factor, Multi Factor Authentication, Access Control, Passwords, Biometrics; Offensive security: Cyber Threat Landscape, Malwares, Exploits, Social Engineering; Cryptography: Symmetric Cryptography, Block Cipher, Stream Cipher, PKC, Hash, MAC Algorithms, Digital Signatures; Security Tools & Technologies: Firewalls, Virtual private networks (VPNs), Intrusion Detection / Prevention (IDS/IPS); Privacy: Concepts, Principles and Policies, Authentication and Privacy, Data Mining, Privacy on the Internet, Social Media, Email, Anonymity & Onion Routing; Security Management & Risk Assessment: Security Planning, Risk Management & Implementation, Security and Personnel, Incidence Response & CERT; Cyber Crimes: Cyber Bullying, Cyber Harassment, Cyber Stalking, Cyber Fraud, Logic Bombs, Web Jacking, Identity Theft; Laws & Ethics, Market, Standards & Certifications; Legal Issues; Basics of Digital Forensics Process.
CSC-416: Introduction to Cryptography (DE) (3 cr.h)
Contents: Elementary number theory: Prime numbers, Factoring, Modular arithmetic, Fermat's & Euler's theorems, gcd, Euclid's algorithm, Discrete logarithm problem. Public key encryption: Public key crypto systems, RSA algorithm, Elliptic curve cryptography. Hash digests: Properties of cryptographic hash functions, Merkle Damgard construction, MD family, SHA family, Digital signatures, SHA3. Block ciphers: Block cipher principles, Feistel networks, S boxes and P boxes, Block cipher modes of operation, DES, 3DES, AES, Secure Protocols, Two-Party Secure Computation, Multiparty Secure Computation, Chosen Cipher text Security.
CSC-443: Network Architecture (DE) (3 cr.h)
Contents: Review of Networking Basics; Internet Design and Architecture; Overview of Network Architectures: Wireless and Sensor Networks, 3G/4G Networks, Overlay Networks, P2P Networks, Content Delivery Networks; Routing Principles: Router Design, IP Address Lookup, Flow Classification and Scheduling; TCP Congestion Control and Active Queue Management; Inter-domain and Intra-domain Routing; Border Gateway Protocol (BGP); Internet Measurement; Large Scale Enterprise Networks: Overview of Cloud Computing and Data Center Networks; Design and Architecture of Future Internet Architecture.
CSC-446: Introduction to Multimedia Communication (DE) (3 cr.h)
Contents: Introduction to Multimedia and Multimedia Communication; Frameworks for Multimedia Standardization; Multimedia Compression Standards; Networking Technology for Multimedia; Multimedia Services and Applications: Multimedia PC: Multimedia TV and Storage Media: Multimedia Conferencing, Streaming Media, and Interactive Broadcasting: Overview of Media Description, Searching and Retrieval: Media Distribution and Consumption: Digital Media Broadcasting; Overview of Middleware for Multimedia; Quality of Service (QoS) in Network Multimedia Systems.
CSC-448: Network Management (DE) (3 cr.h)
Contents: Introduction to network management, MIB: management information base, SMI: data definition language, Fault management (Maintain error logs, handle fault notifications, trace faults, diagnostic tests, correct faults), configuration management(Record configuration, record changes, identify components, init/stop system, change parameters), Accounting management(Establish charges, identify utilization costs, billing), performance management(Optimize QoS (Quality of Service), detect changes in performances, collect statistics), security management(key management (authorization, encryption & authentication), firewalls, security logs), management standards(SNMP, RMON).
CSC-456: Introduction to Web Services (DE) (3 cr.h)
Contents: Service Oriented Architecture (SOA); Introduction to web services; top down web services; bottom up web services; traditional web services: XML, Describing web services using Web Services Description Language (WSDL), exchanging information between web services using Simple Object Access Protocol (SOAP), web services publishing using Universal Description Discovery and Integration (UDDI); Representational State Transfer (REST) based web services: http protocol, resource oriented architecture, web 2.0, web 2.0 APIs; comparison between traditional and REST based web services.
CSC-461: Introduction to Blockchain Technologies (DE) (3 cr.h)
Contents: Introduction to Blockchain technologies; applications of blockchain technologies; blockchain protocols; introduction to cryptocurrencies; Consensus algorithms; Smart contracts; Ethical and legal aspects of blockchain.
CSC-431: Introduction to Recommender Systems (DE) (3 cr.h)
Contents: Introduction to Recommendation Systems; Recommender Systems Function, Data and Knowledge Sources, Recommendation Techniques, Application and Evaluation, Recommender Systems and Human Computer Interaction; Collaborative recommendation; Content-based recommendation; Evaluating Recommendation Systems; Recent topics in Recommender Systems.
CSC-451: Introduction to Social Computing (DE) (3 cr.h)
Contents: Introduction to programming and data structures used for social computing - syntax, programming constructs (conditional, iterative, functions, classes) and data structures (lists, dictionaries, tuples, sets); Understand Representational State Transfer (REST) APIs; Authentication for social computing platforms; Working with Microblogging Services - searching data from the past, crawling user timelines, obtaining spatial data, crawling data in real-time; Understanding Graph APIs; Working with online social network platforms - understanding nodes, edges, and objects in Graph API, obtaining user specific data, exploring friends, publishing status, working with media; Working with professional social computing platforms; Machine learning basics - using classification algorithms, using clustering algorithms; Introduction to data visualization - single variable visualization plots, two dimensional data visualization, multi-dimensional data visualization.
CSC-454: Introduction to Semantic Web (DE) (3 cr.h)
Contents: Introduction to ontology from philosophical and computer science point of view; Overview of KR formalisms such as FOL, predicate calculus, description logic; Resource Description Framework; RDF schema; Web Ontology Language; using rules in ontology; usage of ontology editors; ontology query language; ontology development methodology; Semantic Web frameworks for building semantic web applications.
CSC-459: Introduction to Machine learning (DE) (3 cr.h)
Contents: Introduction to machine learning, concept learning and version spaces, Supervised learning algorithms: Decision trees, Naïve Bayes, Nearest Neighbour, Artificial Neural Network and Support Vector Machine basics, Measuring classifier accuracy, Regression, Unsupervised learning algorithms: Partitional and hierarchical clustering algorithms, Self-organizing maps, Reinforcement learning, Handling overfitting and noisy data, Machine learning platforms and applications.
CSC-466: Digital Image Processing (DE) (3 cr.h)
Contents: Mathematics of images and imaging, analog verses digital imaging, representation of two-dimensional data, time and frequency domain representations, filtering and enhancement, the Fourier transform, convolution, interpolation, color images, Image Compression, Multi-resolution image analysis, Morphological Image Processing, Image Segmentation, Representation and Description, and Object Recognition.
CSC-479: Web Information Retrieval (DE) (3 cr.h)
Contents: Introduction and historical perspectives of information retrieval and web search; Anatomy of web search engines; IR techniques for the web, including crawling, link-based algorithms, and metadata usage; Web retrieval types; Text indexing techniques; text retrieval models; web search interfaces; search evaluation; and advance topics in web search.
CSC-521: Introduction to Data Science (DE) (3 cr.h)
Contents: Introduction: What is Data Science? Big Data and Data Science hype, Datafication, Current landscape of perspectives, Skill sets needed; Statistical Inference: Populations and samples, Statistical modeling, probability distributions, fitting a model, Intro to Python; Exploratory Data Analysis and the Data Science Process; Basic Machine Learning Algorithms: Linear Regression, k-Nearest Neighbors (k-NN), k-means, Naive Bayes; Feature Generation and Feature Selection; Dimensionality Reduction: Singular Value Decomposition, Principal Component Analysis; Mining Social-Network Graphs: Social networks as graphs, Clustering of graphs, Direct discovery of communities in graphs, Partitioning of graphs, Neighborhood properties in graphs; Data Visualization: Basic principles, ideas and tools for data visualization; Data Science and Ethical Issues: Discussions on privacy, security, ethics, Next-generation data scientists.
CSC-522: Introduction to Big Data Analytics (DE) (3 cr.h)
Contents: Introduction and Overview of Big Data Systems; Platforms for Big Data, Hadoop as a Platform, Hadoop Distributed File Systems (HDFS), MapReduce Framework, Resource Management in the cluster (YARN), Apache Scala Basic, Apache Scala Advances, Resilient Distributed Datasets (RDD), Apache Spark, Apache Spark SQL, Data analytics on Hadoop / Spark, Machine learning on Hadoop / Spark, Spark Streaming, Other Components of Hadoop Ecosystem.
CSC-531: Parallel and Distributed Computing (DE) (3 cr.h)
Contents: Asynchronous/synchronous computation/communication, concurrency control, fault tolerance, GPU architecture and programming, heterogeneity, interconnection topologies, load balancing, memory consistency model, memory hierarchies, Message passing interface (MPI), MIMD/SIMD, multithreaded programming, parallel algorithms & architectures, parallel I/O, performance analysis and tuning, power, programming models (data parallel, task parallel, process-centric, shared/distributed memory), scalability and performance studies, scheduling, storage systems, synchronization, and tools (Cuda, Swift, Globus, Condor, Amazon AWS, OpenStack, Cilk, gdb, threads, MPICH, OpenMP, Hadoop, FUSE).
CSC-535: Cloud DevOps (DE) (2 cr.h)
Contents: Working with Linux (installation, using linux commands, setting environment variables, etc.); Basic concepts of DevOps; Comparison of Open Source Solutions for DevOps; Understanding Version Control Systems (staging, committing, branching, etc.); Working with Containers (portability, isolation, resource efficiency); Continuous Integration (streamlining deployment process); Continuous Deployment; Infrastructure as a Code; DevOps Monitoring; DevOps Configuration; DevOps Security.
CSC-432: Information Retrieval Exploration (DE) (3 cr.h)
Contents: Information retrieval essentials; open sources for indexing, retrieval, and ranking; search user interfaces: capabilities and limitations; web search engines/systems results extraction; search paradigms; fact finding, explanatory, and exploratory search; information retrieval and exploration services; linear and non-linear data models; search user interface design for search paradigms; information retrieval exploration evaluation; emerging trends in information retrieval exploration.
CSC-473: Multimedia Application and Design (DE) (3 cr.h)
Contents: Multimedia technology: basic elements of a multimedia system. Architecture of a typical multimedia computer system. Audio-visual data recording and playback devices and tools. Multimedia information storage devices and formats. Multimedia on networks and the World Wide Web. Applications of multimedia in different fields. Multimedia design principles; Multimedia design practice: Putting principles into practice using tools. Creation of multimedia objects (images, sounds, animations, etc.) and combining these objects into hypertext documents. Interactive presentations. Authoring multimedia materials for the World Wide Web.
CSC-477: Interactive Application Design (DE) (3 cr.h)
Contents: Introduction and historical perspectives of interactive applications; Human capabilities, limitations, and interactive processing; Usable interactive and platforms; Interaction patterns and models; State-of-the interaction paradigms; Interactive application development life cycle; Interactive application evaluation; Advanced topics in interactive application design.
CSC-481: Rapid Interaction Design (DE) (3 cr.h)
Contents: Introduction and overview of interactive applications; Best-of-breed interactive application: inputs, outputs, and processing; Interaction design principles, conventions, standards, best practices and rules-of-thumb; Interaction patterns; Design principles and usability; Design-think process; Interaction design stages; Prototyping methods, tools and practices; Interaction design evaluation.
CSC-435: Frontend Web Application Frameworks (DE) (2 cr.h)
Contents: Modern Javascript: latest concepts related to JavaScript, arrow functions, spread operator, classes and inheritance, modules, named and default exports, synchronous and asynchronous programming, callback hells and promises, etc; Introduction to the framework, installation and setup, framework architecture and usage, visual styling in framework, event handling, working with forms, routes and nested routing, fetching data from APIs, state management, handling CRUD operations, introduction to typescript.
CSC-436: Backend Web Application Frameworks (DE) (2 cr.h)
Contents: Fundamentals: Javascript essentials, synchronous and asynchronous programming, eventloop, callback hells and promises, NodeJS: Introduction to NodeJS, Node architecture, REPL (Read-Eval-Print-Loop) in NodeJS, module system: core modules, custom build modules, create and export user-defined modules, file system core module, synchronous and asynchronous CRUD (Create, Read, Update, Delete) operations using file system module, os module, path module, event module, handling events with event emitter, nodemon, creating web server, routing, JSON data, creating simple API, ExpressJS: introduction to ExpressJS, creating a web server, routing, sending HTML and JSON data, build RESTful APIs, API testing using ThunderClient or Postman, middleware, creating custom middleware, built-in middleware, third party middleware, template engines, introduction to GraphQL API, query basics, making a GraphQL server, schema & types, resolver functions, query variables, related data, mutations NoSQL Databases: introduction, installation, basic usage, collections and documents creation, CRUD operations, installing GUI, CRUD operations using GUI, cloud-based access, connecting with NodeJS, ExpressJS to NoSQL using a library, CRUD operations on connected database through a web server, validation, built-in validation, custom validation, schema and models, modelling relationships between connected data, connect to a frontend application.
CSC-442: Mobile Application Development (DE) (3 cr.h)
Contents: A Brief History of Mobile: From Candy Bar Era, to Touch Era; The Mobile Ecosystem: Operators, Networks, Devices, Platforms, Licensed, Proprietary, Open Source, Operating Systems, Application Frameworks; Mobile as a Medium; Designing for Context; Developing a Mobile Strategy; Mobile Applications; Mobile Information Architecture; Mobile Design: The Elements of Mobile Design; Mobile Web Apps Versus Native Applications; Mobile 2.0; Mobile Web Development; Mobile Native Application Development; Web Services for Mobile Phones; Developing Mobile Applications for different Platforms: Android, iOS, Windows Mobile, Blackberry; Future of Mobile Applications.
CSC-445: Information Systems (DE) (3 cr.h)
Contents: Organization, Management and Networked Enterprise; Information Technology Infrastructure; Types of Information Systems, Key Information System Applications within an enterprise: Operational Level, Knowledge Level, Management Level, Strategic Level; Building and managing Information Systems, Case Study covering Operational and Management Levels: IS requirements collection and analysis, requirements verification phase, database design, application design, IS implementation and testing, installation and maintenance, retirement plan.
CSC-452: Introduction to Game Development (DE) (2 cr.h)
Contents: Introduction to game development; getting familiar with a game development engine (e.g. Unity 3D, Unreal engine); gaming resources and tools; 3D axes, position, scaling, and rotation; controlling a character; 3D modeling (e.g. Blender, Maya); vectors; ray casting; first person shooter games; object templates; white boxing; animations; GUI in games, immediate vs. retained mode; third person shooter games; quaternions; collision handling; sharing data among game objects; getting and posting data from internet; sounds and music; game integration; game deployment.
CSC-457: Web Application Frameworks (DE) (3 cr.h)
Contents: Introduction to Model-View-Controller architecture - push-based MVC, pull-based MVC, push-pull based MVC; Single Page Applications (SPA) vs. Server Side Rendered (SSR) Applications; introduction to client side web application frameworks (e.g. Angular, React, Vue) - form validation, data binding, templates, components, state handling, DOM wrapping, web sockets, detailed concepts about one of the frameworks; introduction to server side web application frameworks (e.g. ASP.NET Core, JavaServer Faces, Spring, Node.js, Express.js, Laravel, Django, Ruby on Rails) - Object Relational Model, NoSQL databases, templates, form validation, scaffolding, caching, testing, security, detailed concepts about one of the modern web application frameworks; web components; web APIs, cookies, sessions, authentication.