Computing Electives (2020-2021), FAST School of Computing, NUCES, Islamabad S. # Course Title Course Contents Introduction to the tools and APIs required to build mobile applications for the iPhone and iPad platforms: Introduction to Swift and Xcode, Model-View Controller (MVC) and Multiple MVC’s, Drawing, Gestures and Animations, App Lifecycle, Multithreading, Data Management, Drag and Drop, Views, Auto layout, Multi Screen Apps & Multiple Screens for Same Data, Multiple Device Support, Advanced AR, ML, Wearable Apps Background and molecular biology primer. Biological databases, genome assembly and sequence alignment. Database searching, clustering and indexing. Protein structure prediction, protein folding, protein networks, molecular dynamics and function annotation. Data Centers and Virtualizations, SDN, SD-WAN, DevOps, Cloud Native architecture, microservices and serverless Introduction to the course; Cloud Computing Concepts and Architectures; Governance and Enterprise Risk Management; Legal Issues, Contracts and Electronic Discovery Compliance and Audit Management; Information Governance; Management Plane and Business Continuity; Infrastructure Security; Virtualization and Containers; Incident Response; Application Security; Data Security and Encryption; Identity, Entitlement, and Access Management; Security as a Service; Related Technologies (IoT, Fog/Edge, Azure, AWS, GCP) Introduction to computer graphics algorithms, software and hardware. Topics include: ray tracing, the graphics pipeline, transformations, texture mapping, shadows, sampling, global illumination, splines, animation and color Introduction to Cryptography, Classical substitution and transposition ciphers, Stream ciphers, Block Ciphers (DES, AES, Triple DES) / Private Key Cryptography, Cipher block chaining, Public Key Cryptography (RSA, DH, ECC), Data Integrity (Cryptographic Hashing), Message Authentication Codes, Digital Signatures, Applications and tools of Cryptography, IP SEC, SSL/TLS, Kerberos, Keys sharing and revocation 1 Advanced Mobile Application Development 2 Bioinformatics 3 Cloud Computing 4 Cloud Security 5 Computer Graphics 6 Cryptography & Data Security 7 Data Mining Classification, regression, gradient descent, optimization, loss and objective functions, decision trees, random forests, clustering techniques, kmeans, dbscan, mean-shift, k nearest neighbor, bayesean methods and classification. Apriori algorithm, data cleaning, dimensionality reduction, pca, isomaps, neural networks for classification and regression, feature selection. 8 Data Stream Warehousing Offline data warehousing, Stream processing and fundamentals, Building data stream warehousing, Continuous queries and optimisation, Online ETL, Join Operators for Data Stream Transformation, Data lake and future research topics Data Visualization Visualization Theory and Methodology; Visualization Pipeline; Visual Perception and Cognition; Data Encoding and Transformation Techniques (including Aggregation, Filtering and Dimensionality Reduction); Methods for Visual Encoding and Representation (including Marks and Channels); Interaction and Exploration Techniques (such as Brushing, Linking, Navigation, Coordinated Views etc.); Information Visualization Designs for specific Abstract Data Sets (such as Tabular, Networked, Hierarchical, and Textual data); Data Visualization Programming using State-of-the-art Visualization Libraries; Leading Trends in Data Visualization Data Warehousing Importance & significance of Data Warehousing (DWH), Main concepts and solutions for Data Warehousing, Key concepts underpinning the logical design, physical design and implementation of data warehouses: Data collection, data extraction, cleansing, transformation and loading methods, Query optimization techniques, Differentiation between OLAP & OLTP, Data warehousing applications and solutions for managing Big Data. 9 10 11 Deep Learning for Perception Theory, applications and practical issues in training and deploying deep neural networks. Different layers and architectures (GoogleNet, Vgg, ResNet, AlexNet), in-depth discussion of gradient based learning. Dimensionality reduction with auto-encoders, proposal generation with selective search, face recognition with FaceNet, object detection with YOLO and RCNN. GANs and their training and loss functions. Review of RNNs and LSTMs. Use of deep neural networks for object tracking as well as deep Q-learning. 12 Digital Image Processing Image analysis, edges and shapes, shape description and analysis, watershed based segmentation and deformable models, image registration, object detection with HoG descriptors and ORB features, Scikit-image and OpenCV packages 13 Empirical Software Engineering Introduction to empirical software engineering, Systematic mappings/reviews, Experimentation in SE, Qualitative and quantitative analysis, Statistical tests, Introduction to R, Interpretation of data, Visualization of data, Reporting experiments, New directions in empirical software engineering Enterprise Information System Fundamentals of an Enterprise and Industries artifacts. Introduction to Enterprise Resource Planning (ERP). ERP Implementation life cycle methodologies and strategy. Business processes, architecture, User Interface Designs and their modeling. ERP Security, workflows, data integration, applications migration and data migration. Study of business modules Human Resource, Procurement, Sales and Distribution, Material Management, and Manufacturing. Concepts and tools of designing and implementing an ERP system. Emerging trends in ERP and special topics such as Supply Chain Management (SCM), Customer Relationship Management (CRM), Business Intelligence (BI). 14 15 Ethical Hacking 16 Evolutionary Computations 17 Internet of Things Introduction and basic terminologies regarding ethical hacking, Stages of Ethical Hacking, Hacker Classes, Vulnerability Research, Legal Implications of Hacking, Linux environment setup, Scope of Penetration Testing, documentation techniques of penetration testing, Linux basics, Introduction to foot printing, Information gathering methodology, DNS Enumeration, Whois and ARIN Lookups, Introduction to Social Engineering, Common type of social engineering attacks, Scanning phase, Vulnerability Assessment, Nessus, OpenVas, dirbuster, OwaspZap, Nmap, NSE and Zenmap, Setup vulnerable server, DOS attacks, Malware threats, Network and OS threats, Metasploit, Armitage, Hacking OS and Wireless network, MITM, sniffing, wireshark, network miner, session hijacking, OWASP Top 10 vulnerabilities, web application testing using burp suite, hacking a web server, Maintaining Access, Clearing logs, Hacking mobile platforms Introduction to Evolutionary Computation, Biological evolution – introduction and basic properties, Evolutionary Algorithms: theoretical foundation, basic distribution; Genetic algorithms (GA) Fundamentals: representations, genetic operator, selection mechanism, Evolution Strategies, Evolutionary Programming, Parameter Control in EC, Multi objective problems and constraints handling, Multi models (Island, Co-evolution), Hybrid systems: Evolving machine learning algorithms, Application of EC in the dynamic and real-world environment This course takes methods known from the computer networks to mobile devices and mobile communication in the context of Internet of Things (IoT). Wireless transmission technologies and media access control mechanisms used by different Internet of Things applications, Information dissemination techniques in sensor and mobile adhoc networks, systematic explanation of data and location management in IoT environments. Introduction to Blockchain and Cryptocurrency Introduction to basic terminologies, Attack Vector and hacking techniques, Cryptographic Hash Functions and Applications, Encryption techniques, hash cracking, Introduction to Blockchain, introduction to ledger, centralized Vs Decentralized approach. Types of blockchain, Introduction to cryptocurrency, Mechanics of Bitcoin, Distributed Applications, how to Store and Use Bitcoins , Issues in blockchain, Double Spending, Bitcoin resolution to double spending issues Mining in bitcoin, Introduction to miners, Attacks on blockchain and bitcoin and its protection schemes, Block creation, Proof of Work, Verification of transaction, Merkle tree for verification, Bitcoin mining, incentives to miners, transaction verification, Consensus in bitcoin, Ethereum introduction and Wallets, Metamask, EOA and contracts , Writing Smart Contracts, Blockchain Applications 19 IOT Security Introduction to Internet of Things (IoT), Introduction to IoT security, data classification and privacy controls in IoT, Cryptography and its role in securing the IoT, Cryptographic algorithms, Attack surface in IoT and threat assessment, Embedded devices, IoT communication and messaging protocols (Application, Transport, Network and Data link layers), Examining cryptographic controls for IoT protocols, Security and identity management, Use-cases and its security 20 Introduction to Knowledge Graphs, Linked Data and the Web of Data; Towards a Universal Data Representation; Understanding the foundation of Semantic Web Technology, Knowledge, vs Information vs. Data, RDF and RDFS for Knowledge Graph Knowledge Graphs and Linked Data Representation, SPARQL, Linked Data Vocabularies and Knowledge Graphs/Ontologies: First Steps in OWL, OWL and beyond, Linked Data Mash-ups and Applications: How to publish Linked Data, Publishing Linked Data, Linked Data Visualization, Linked Data Analytics, Knowledge Graph Design Methodologies, Advanced Linked Data Based Applications 21 MultiAgent Systems 22 Natural Language Processing 23 Network Security 18 24 Parallel Processing 25 Social Network Analysis 26 Software Engineering in Industrial Automation Game theory, Social choice, Voting theory, Mechanism Design, Fair Division, Matching, Security games, peer prediction and elicitation, humans in the loop, networks Deterministic and stochastic grammars, Parsing algorithms, CFGs, Representing meaning/Semantics, Semantic roles, Temporal representations, Corpus-based methods, N-grams and HMMs, Smoothing and Backoff, POS tagging and morphology, Information retrieval, Vector space model, Precision and recall, Information extraction, Language translation, Text classification, categorization, Bag of words model, Text Ranking Basic security concepts and security terminology, Malware classification.,Types of malware, Application layer Attacks, Network protocols and service models, Transport layer security, Network layer security, Wireless security, Trust based security Introduction to parallel computing architectures. Difference between conventional and parallel systems. Learning fundamental concepts of parallel computing. Programming parallel computers using OpenMP, MPI, and OpenCL. Understanding the performance aspects of parallel programs and analyzing it. Dependence analysis to design parallel algorithms and programs. Optimizing the performance of parallel applications. State-of-the-art research issues in parallel computing. State-of-the-art research in Parallel and Distributed Computing. Course Introduction and Introduction to graphs, Measuring Networks and Random Graph Models, Link Analysis and Page Rank, Network Construction and Inference, Community Structure and Detection in Networks, Link Prediction, Graph Representation Learning, Influence Maximization, Outbreak detection, Network Robustness and Preferential Attachment, Network Centrality, Network Evolution, Network Analysis with R, igraph programming sessions Application and usage of SE approaches in industrial automation systems (IAS), traditional Software development lifecycle activities w.r.t industrial automation systems including advanced topics like requirements quality for IAS, Requirements patterns for IAS, design practices for IAS, and testing and commissioning of IAS, industrial automation standards, risk management approaches for industrial automation, functional safety and cyber security of IAS, SCADA systems and cyber security issues and mechanisms for scada systems. 27 Software Fault Tolerance 28 Software for mobile devices Software Engineering, Software Fault Tolerance, Backward and forward recovery, Checkpointing Mobile Application Platform Introduction, Mobile Application design and development lifecycle, Core Application components in the Android, Navigation Patterns, Data Persistence Methods, Mobile User Experience. 29 Software Process Modeling Introduction to basic terminology, Type of process models, Prescriptive process models and Engineering models, Descriptive process models Goals of Descriptive process modelling, Lifecycle models, How do small companies improve? Improvement through learning, Project based learning, Improvement through measurement Goal Question Metric method, Simulating processes, Process representation in organizations, Process guides, Deploying prescriptive process models, Model based process improvement approaches (such as CMMI, ISO, etc.) and using them for process improvement, CMMI KPAs, Techniques for building processes, Process assessment, Process Modelling Notation and Tools Characteristics of process modelling notations, Multi-view Process Modelling Language, Six Sigma 30 Software Project Management Basic concepts of Project, Project Quality Management, Quality management planning and assurance, The tools and techniques for quality control, Project Cost Management, Risk Management 31 Software Testing Basics of Testing, White-Box Testing, Path Testing, Loop Testing, Dataflow Testing, Object Oriented Testing, GUI Testing, Regression Testing, Test Data Generation, Usability Testing, Static Analysis, Quality Metrics and Software Inspection 32 User Experience Engineering 33 Web Programming Introduction to User Experience Engineering, UX Process, Methods, Components, Personas for Representing users, User Stories, UX Design, Prototyping Techniques, Evaluating Designs with Users, State of the Art UX trends in Web and Mobile Application Development Web Development Technologies, Front end & backend technologies, HTML, CSS, JavaScript, Bootstrap, ASP.NET MVC, ADO.NET, Entity Framework and LINQ, Angular, Express, Mongo, React.js, Node.js, Vue.js, MEAN Stack, MERN Stack Deployment and best practices in web programming