0% found this document useful (0 votes)
33 views20 pages

CU BCA AllSemesters Syllabus

Uploaded by

samsharma24010
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views20 pages

CU BCA AllSemesters Syllabus

Uploaded by

samsharma24010
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Course Grid - BCA

The Bachelor of Computer Applications Program is structured for learners who wish to start their career
in the domains of Software Development and Testing or Analytics. BCA is a three-year online program,
where any learner who has completed plus two from any recognized board can apply. This curriculum is
structured and back tailored to fill the gap between theoretical learning and practical application by
interacting with industry-experts, BCA graduates, tech hiring managers etc., The curriculum which
enhances the learners in obtaining in-depth knowledge on programming languages, data structures and
algorithms, Database management, Business Analytics, Machine Learning etc. The learning method of this
program includes case studies and projects which provide learners real and practical application of
concepts and practices.

Towards the end of the three-year BCA program, learners will gain the critical thinking ability to keep pace
with the dynamic industrial changes, and technological expertise.

Semester I Semester II
Subjects Credits Subjects Credits
Computer Programming 5 Object Oriented Programming 5
Communication Skills 3 Data Structures and Algorithms 5
Introduction to Management &
Finance & Economics 3 3
Leadership
Discrete Mathematics 4 Soft Skills 3
Electrical and Electronic Circuits 4 Computer Systems Architecture 4
Total 19 Total 19

Semester III Semester IV


Subjects Credits Subjects Credits
Design and Analysis of algorithms 4 Python programming 4
Environmental, Waste and Disaster
3 Computer Graphics 4
Management
Database Management Systems 4 Computing Systems 4
Operating Systems 5 Computer Networks 5
Web Application 4 Probability & Statistics 4
Total 21 Total 21

Semester V Semester VI
Subjects Credits Subjects Credits
Data Visualization 4 Business Analytics 4
Linear Algebra & Optimization 3 Software Engineering 4
Data Warehousing and Data Mining 4 Machine Learning 4
Cloud Computing 4 Cloud Native Development 4
Minor Project 4 Major Project 5
Total 20 Total 21

Total No. of credits for the Program 120


Outline for Semester–1 Courses

● Computer Programming (5 Credits)


C Fundamentals-
○ Introduction to C
○ Decision Control Structures
○ Loop Control Structures
Data Types, Functions and Pointers in C
The C Preprocessor and Arrays-
○ Arrays
○ Pointers
○ Multidimensional Arrays
Strings, Structures and I/O
Bitwise Operators, Secondary Data Types & Linked Lists
Learning Objectives
○ Understand Data and Data Types
○ Implement Structured Data Types like Arrays, Records, and (Disjoint) Unions, and perform
operations on them.
○ Implement Dynamic Memory Management, Dynamic Allocation and Deallocation,
Incremental Allocation, Incrementally allocated Lists (linked lists) and perform operations on
them.
○ Understand code modularity and practice it to improve reusability

● Communications Skills (3 Credits)

Grammar:
○ Introduction to the basics of the English language
○ Getting Started with Sentence Creation
○ Key to Good English
Paragraph writing
Letters and Resumes
Composition:
○ Note Making
○ Technical Writing and Visual Aids
○ Technical Report
○ Email Writing and White Paper
Introduction to Reading:
○ Introduction to Reading Skill
○ Skimming and Scanning
○ Reading Comprehension
Analysing Texts:
○ Introduction to Reviewing
○ Sample Reviews
○ Review Project - I
Learning Objectives:
○ Analyze different types of (scientific) reports/articles and their objectives and audiences:
○ Identify and understand (the potential) readers; Organize the content, structure the
document/report
○ Understand and debate on Scientific Material: (i) Books on Scientific thesis and (iii) Science
Fiction
○ Summarize and critically analyze the above.
○ Write and present scientific articles, posters etc.

● Economics & Finance (3 Credits)

Microeconomics:
○ Economics: Its Definition and Its Scope
○ Microeconomics: Demand and supply
○ Consumer Behaviour: How Consumers Choose
○ How Producers Make Decisions
○ Markets: Merging Demand and Supply
Macroeconomics:
○ Macroeconomics - Subject, History and Development
○ Measurement of Key Macroeconomic Variables
○ Macroeconomic Models and Frameworks
○ Fiscal and Monetary Policies
○ Business Cycle and Economic Growth
Basics of Accounting:
○ Accounting Framework and Concepts
○ Interpreting Financial Statements
○ Analyse Financial Statements
○ Outline of an Annual Report
Learning Objectives:
○ Understand and interpret Financial Statements
○ Analyse Financial Statements
○ Understand the outline of an Annual Report

● Discrete Mathematics (4 Credits)

The following topics will be covered:


○ The need for discrete mathematics in the context of computing sciences
○ Sets, their properties and various operations performed on them
○ Classification of sets based on their cardinality
○ Relations, their properties and various types of relations
○ Functions, their properties and various types of functions
○ Fundamental concepts behind combinatorics such as the fundamental principle of counting
○ Permutations and their applications in various cases
○ Combinations and their applications in various cases
○ Derangements
○ The Pigeonhole principle
○ Fundamental concepts behind asymptotics such as growth rates
○ Various notations such as the Big ‘O’ notation and the Big Omega notation
○ Recurrence relations
○ Various types of graphs and their components
○ Structural properties of graphs
Tools used:
○ C
Significance:
○ As a computer scientist, you will be required to work with computing devices at every level.
On the lowest level, you will be working with processors and on the highest level, you will be
working with applications. The basis of all computing techniques rests in the concrete
concepts of discrete mathematics. Hence, it is essential for a computer scientist to be well
versed in the theory and techniques of discrete mathematics including sets, relations,
functions and graphs.

● Electrical and Electronic Circuits (4 Credits)

Basic DC Circuits , DC Circuits with RLC elements:


○ Charge and Current, Voltage; Resistors and Resistance, Ohm’s Law;
○ Power and Energy; Combining Resistors in Serial or Parallel;
○ Sensors, Types of Sensors and Examples, Use of Resistors in Sensors.
○ Kirchhoff’s Voltage Law and Kirchhoff’s Current Law
○ Capacitors and Inductors
○ Transient Analysis with RL & RC circuits
○ Steady State Analysis
○ Introduction to Passive Filters
AC Circuits:
○ AC Signals – Sinusoids, Square Wave and Triangle Wave
○ Voltage Types – Peak and Peak-to-Peak Voltages, Average Voltage and Root-Mean-Square
Voltages
○ Laplace Transforms
○ Introduction to AC Circuit Analysis
○ Impedance and Admittance
○ Sinusoidal response of RLC Circuit
○ Maximum Power Transfer
○ Passive Filters – High Pass and Low Pass
○ Band Pass, and Band Stop Filters.
Semiconductors and Diodes, Transistors:
○ Conductors vs Semiconductors: Atomic Structures
○ Doping and Doped Materials: N-type and P-Type
○ PN-junctions and Diodes; Biasing; Diode Characteristics
○ Diode Circuit Models
○ Bipolar Junction Transistor (BJT)
○ Biasing, NPN BJT
○ Current gains, ꞵ and Variations in ꞵ
○ Ebers-Moll Model
○ BJT Biasing: Need for Biasing
○ Amplifiers: The basic model
○ Compliance and Distortion
○ Frequency Response and Noise
○ Small Signal Amplifiers: Simplified AC model
○ Amplifier Characteristics (Voltage Gain, Input and Output Impedance)
○ Simple Transistor-based Circuits: Logic Gates using NPN-transistors.
○ Introduction to Junction Field Effect Transistors (JFET) and its biasing
Learning Objectives:
○ Design Basic Electrical Circuits
○ Analyze the circuits and build the applications using the concepts learned.
● Computer Architecture (3 Credits)

● Module 1 - Components of a typical computer


● Processor Design
● Instruction Set Architecture - CISC vs. RISC
● Addressing modes
● Typical instruction codes or OPCodes
● Arithmetic Circuits
● Bus – Address bus and Data bus
● Module 2 - Instruction Execution
● Pipeline Design
● Hazards and ways to overcome hazards
● Stalls
● Instruction Prefetching
● Branch Prediction
● Function Pipelining
● Address Pre-Computation
● Write Buffers
● Register renaming
● Module 3 - Caching and Prefetching
● Cache Design – AddressingDirect, Associative, and Set-Associative
● Cache Design – Cache Line Replacement.
● Module 4 - Instruction Level Parallelism
● Multiple Functional Units
● Superscalar architectures – Limitations
● Multi-threaded architectures
● Vector Processing;
● Multi-core Architectures
● Multiple processors
● Symmetric cores and asymmetric cores
● On-chip-caching and sharing.
● Learning Objectives
○ Understand the internal working of computer components
○ Know about the different types of computer architectures and their working
○ Learn how a computer instruction gets executed in parallel architectures

● Introduction to Management & Leadership

● Leadership Styles
● Self Awareness
● Business Leadership
● Organizational Understanding
● How to interact with different stakeholders
● How to lead with and without authority
● Negotiation skills
● Communicating effectively

● Learning Objective:

○ Understand and apply various skills required for effective leadership


● Data Structures and Algorithms (5 Credits)

Proposed Course Outline

Module 1 - Abstraction
● Separation of Concerns
● Data Abstraction and Data Encapsulation
● Data Types vs. Representation
● Interface vs. Implementation
● Abstract Data Types
Module 2 - Lists
● Static allocation vs Dynamic allocation (Arrays vs Linked Lists)
● Access Restricted Lists
● Stacks
● Queues
● DEQueues
Module 3 - Algorithm Analysis
● Time Complexity and Space Complexity
● Review and use of Big-O Notation
● Recurrence Relations and Simple Solutions
● Use of Divide-and-conquer in designing operation on data Structure
Module 4 - Searching and Sorting
● Linear Search (UnSorted Lists) vs. Binary Search (Sorted Lists) – Cost Comparison
● Design of Sorting Algorithms
● Application Context of Sorting Algorithms (In-memory vs. Sequential Storage; Short lists vs. long lists;
Semi-sorted vs. Random lists)
Module 5 - Sets and Dictionaries
● HashTables
● HashMaps and HashSet
● Binary Trees & Binary Search Trees (BSTs)
● Height-balanced BSTs – AVL Trees
● Priority Queues
● Heaps,
Module 6 - Strings
● Tries
● Huffman Coding using Binary Trees.
Module 7 - Graphs
● Graphs for capturing relations; Storing graphs
● Basic operations on Graphs – Connectivity, Traversals, and Paths
Learning Objectives
➢ Design data structures and implement them
➢ Apply divide-and-conquer to design algorithms for operations on data structures
➢ Analyse time complexity and space complexity of the operations on data structures

● Object Oriented Programming (4 Credits)

Proposed Course Outline


Module 1 - Introduction to Object Oriented Programming
● Abstraction and Encapsulation using Classes and Interfaces
● Composition and Delegation using object hierarchies
● Polymorphism using Inheritance
● Overloading
● Generics (or Template Types)
Module 2 - Object Oriented Design
● Designing for Reuse
● Refactoring
● Design Communication – UML Diagrams
○ Use Cases and Use Case Diagrams
○ Class Diagrams
○ Object Diagrams
○ Activity / Sequence Diagrams
○ Deployment Diagrams
Module 3 - Patterns
● Recurring idioms and patterns in programming and design
● Object-oriented design patterns
● Applying design patterns in design and development

Learning Objectives
➢ Discuss the importance of object-oriented design
➢ Translation OO concepts into working programs

Proposed Outline for Semester–3 Courses

● Probability and Statistics (4 Credits)

The following topics will be covered:


○ Data in Excel and Python as data tables and data frames
○ Deriving statistics from data and interpreting the meaning of various statistical measures
○ Basic visualizations such as bar plots and histograms for the given data and meaningful
insights derived from these charts
○ Categorical, discrete and continuous features
○ Calculating important statistics for the given data such as mean, median, mode, standard
deviation and various quantiles
○ Distributions of data and their basic properties such as skewness and centering
○ Probability and various properties associated with it
○ Various common types of probability distributions
○ Sampling and the various types of sampling methods
○ Creating hypotheses for a given problem statement in order to test them
○ Various metrics used to judge the validity of a hypothesis such as p-values
○ Calculating confidence intervals for various metrics derived from the given data
○ Various types of hypothesis tests such as t-test and A/B tests
Tools used:
○ Excel, Python
Significance:
○ As a computer scientist, you may be required to take part in projects related to data science
as per the industry trends. Statistics help to understand which types of statistical measures
to use in various situations. These measures will allow you to test certain claims through the
process of statistical inference, in which you will frame hypotheses and then test them.
● Design and Analysis of Algorithms (4 Credits)

Proposed Course Outline

Module 1 - Basic Algorithm Design Techniques


● Review of Divide-and-Conquer
● Dynamic Programming; Greedy
● Analysis of Time Complexity and Space Complexity;
Module 2 - Problems and Solutions from Specific Domains
● Text Processing
○ String Matching – Boyer Moore and Knuth-Morris-Pratt algorithms
○ Graph Algorithms
○ Path Problems
■ Dijkstra’s, Bellman-Ford
■ DFS and BFS
■ Topological Sort
■ Minimal Spanning Trees – Kruskal’s
■ Geometry
● Convex Hull
● Finding a closest pair of points
Module 3 - Advanced Design Techniques
● Backtracking and Branch-and-Bound
● Modelling the problems as Linear Programming problems
● Introduction to Randomization

Learning Objectives
➢ Solve problems by designing algorithms
➢ Implement algorithms
➢ Analyze algorithms on paper and compare with the measured runtime performance of the
implementation
➢ Use the analysis and measurements to tune the implementation and/or redesign the algorithm

● Environmental Science (3 Credits)

Proposed Course Outline

Module 1 - Understanding Ecosystems and environment


● Civic, Biological, and Global
● Pollution and Climate Change
● Plant and Animal Biodiversity
Module 2 - Dimensions of Impact on environment
● Population Growth
● Resource Consumption and Production
● Poverty vs. economic growth
● Policies and Politics
● Development and use of resources
● Policies, Practices, and Constraints
Module 3 - Manifestation of Hazards and Science
● Modelling of Issues: Global Warming
○ Pollution
■ Air
■ Water
■ Food
○ Resource Depletion
■ Fuel
■ Water
○ Impacted Habitats
■ Corals
■ Fish
■ Plants
■ Trees
● Scientific Solutions
○ Conservation
○ Alternative Methods for Production / Distribution / Consumption / Disposal
○ Alternative Resources (e.g. Renewable Energy).
Learning Objective
➢ Discuss the environmental issues in news and debates and take an educated position and act
accordingly.

● Database Management Systems (5 Credits)

Proposed Course Outline

Module 1 - Relational Queries


● Indexing and Query Interpretation
● Query Efficiency and Optimization
● Stored Procedures;
Module 2 - Properties of Relational databases
● ACID properties
● Concurrency and Synchronization
● Transactions and Roll-backs
Module 3 - NoSQL and Object Databases

● Semi-structured and Unstructured Data


● Hierarchical Data
○ XML Schemas and DTD
○ DOMs and Parsing
● Data Exchange Formats (e.g. JSON)
● Queries
● Implementation of NoSQL databases
● Object databases and ORM
Module 4 - Distributed Databases

● BASE properties
● Consistency vs. Availability
● CAP Theorem and Implications
● Consistency vs. Latency
● PACELC Theorem;
Module 5 - Application-specific Data Data on the Web
● Documents
● Indexing
● Scraping
● Named Entity Extraction
● Image Databases
● Geo-location Data
● Applications.

Learning Objective
➢ Understand and apply various concepts in Database management systems.
➢ Gain knowledge about the various forms of databases, query languages, applications, etc

● Operating Systems (5 Credits)

Proposed Course Outline

Module 1 - Introduction
● The purpose of Operating Systems
● Hardware Requirements
● Approaches to Design - Monolithic, Kernel-based, and Micro-Kernel-based
Module 2 - Processes
● Creating and Allocation
● Scheduling Techniques
● Multiprocessing and Multithreading Systems
● Concurrency and Shared Resources
● Critical Regions
● Mutual Exclusion and Synchronization
● Liveness Properties
● Deadlocks and Livelocks;
Module 3 - Memory
● Overlay
● On-demand Paging
● Segmentation
● Virtual Memory – Address Translation, Page Tables, and Memory Management
● Page Faults and Page Replacement
Module 4 - I/O and File Systems
● Managing I/O Operations and Buffering
● Secondary Storage and Files
● File Systems – Storage, File Store and Persistent Data Structure
● File I/O: Kernel Data Structures
Module 5 - Devices
● Device Interaction
● Device Controllers
● Device Drivers
Pragmatics: Case studies of implementation; Comparison of design and features.

Learning Objectives
➢ Understand the internal workings of an Operating System and the various functions performed by
OS
➢ Discuss how I/O, file system, memory interact with OS.

Proposed Outline for Semester–4 Courses

● Python Programming (4 Credits)

Proposed Course Outline

Module 1 - Introduction to Python


● Basics of Python
● Jupyter Notebook
● Data Types in Python
● Operators
● Data structures: Lists, tuples, Sets, Dictionary; Loops; Functions.
Module 2 - OOP in Python
● Advantages of OOP
● Classes and Objects
● Variables
● Constructors and Destructors
● Methods
● Inheritance
● Abstract class
● Methods overriding
● Exception Handling
● Regular Expressions
● Lambda Function
● File Handling.
Module 3 - Programming in Python
● Basic coding concepts
● Strings; More on data structures
● Time complexity
● Searching
● Sorting
● Two pointers
● Recursion.
Module 4 - Python for DS
● NumPy
● Pandas.
Module 5 - Data Visualization
● Matplotlib; Scatter plots
● Box plots
● Sub plots
● Case studies
● Seaborn

Learning Objectives
➢ Apply the programming concepts learned to solve real-world problems
➢ Visualize the data using various libraries in Python
● Computer Graphics (4 Credits)

Proposed Course Outline

Module 1 - Computer Graphics Applications


Module 2 - Graphics Hardware
● Display Devices
● Raster Scan Systems
● Graphics Workstation
● Input Devices.
Module 3 - Graphics Programming
● Output Primitives
● Attributes of Primitives, and Languages like OpenGL.
● Graphics Algorithms for
○ Line Drawing
○ Drawing Parallel Lines
○ Circle Generation
○ Ellipse Generation
○ Spline Curves
● 2-D Transformations – Translation, Rotation, and Scaling. Composite Transformations.
● 2-D Viewing: Clipping Window – Viewing Coordinates and World Coordinates. Clipping algorithms –
Line Clipping and Polygon Clipping.
● 3-D Transformations and Clipping
● Illumination and Shading: Ray Tracing and Shaders in OpenGL

Learning Objectives
➢ Apply geometric concepts to develop computer programs for elementary graphics operations.
➢ Understand and apply basic concepts of computer graphics including transformation in 2D, 3D,
viewing and projections.

● Computing Systems (4 Credits)

Proposed Course Outline

● Compiling and Running a Program


○ Measuring the impact of (hardware) caching and cache page size on C programs;
○ Redis and Memcache;
○ Loop Unrolling
○ Measuring the impact of Loop unrolling on C programs (under different scenarios);
○ Loop Unrolling Techniques
○ Limitations
○ Different Cache Structures
● Caching and Loop Unrolling
○ Measuring the impact of (hardware) caching and cache page size on C programs
○ Redis and Memcache;
○ Loop Unrolling
○ Loop Unrolling Techniques
○ Limitations
○ Different Cache Structures
● Multi-threading
○ Multi-threaded Programming using POSIX Threads
○ Designing Multithreaded code
○ Measuring performance of multi-threaded code on multi-core systems
○ Caching in multicore architecture
● File System
○ Filesystems
○ System calls for getting file attributes and directory information
○ Traversing a file system
○ Measuring Disk locality effect
● Performance Aspects of HTTP

Learning Objectives
➢ Understand the internal working of running and compiling program
➢ Understand caching and loop controlling techniques
➢ Design and Analyze multithreaded programs on multicore systems
➢ Understand the internal working of file systems.

● Computer Networks (5 Credits)

Proposed Course Outline

Module 1 - Applications
● Uses of a computer network
● Killer apps of the Internet (e.g. email and web)
● Application requirements and Application Protocol requirements
● Client- Server and Peer-to-Peer applications
● Case studies of Network Applications / Protocols
● Requirements for the transport layer
Module 2 - Transport Layer
● Transport Layer Functions
● Transport Protocols (TCP and UDP)
● Data Transfer and Connections; Reliability; Flow Control and Congestion Control;
Module 3 - Network Layer
● Routing and Forwarding
● Routing Protocol: Link State and Distance Vectors
● OSPF and BGP
● Data Plane and Control Plane; Decentralized vs.
● Centralized Routing; Software-Defined Networks; ICMP;
Module 4 - Link Layer
● Error Detection and Correction
● Medium Access Control – ALOHA, CSMA/CD, CSMA/CA
● Local Area Networks – Addresses and Address Resolution, Switches and Routers, VLANs, Label
Switching
Module 5 - Wireless and Mobile Networks
● Typical network elements
● Wireless Links and Medium Access.

Learning Objectives
➢ Understand various layers of network communications.
➢ Learn internal working of wired and wireless communication

● Soft Skills (3 Credits)

Proposed Course Outline

● Formal oral communication


● Group discussions, resume building, networking

Learning Objective
➢ Face interviews and public speaking competitions and group discussions with confidence

Proposed Outline for Semester–5 Courses

● Data Visualization (3 Credits)

The following topics will be covered:


○ Various types of data visualizations such as bar charts, histograms, line charts, pie charts,
scatter plots, box plots, donut charts, pareto charts, control charts, level-of-detail expression
charts, motion charts, bullet charts, Gantt charts, hexbin charts and other commonly used
visualizations
○ Working with data using Excel and performing basic analyses and visualizations on it
○ Working with Python’s data visualization libraries to performing analyses on data
○ Working with Tableau and conducting data analysis and visualization
○ Working with Power BI and conduct data analysis and visualization
○ Interpreting meaningful insights derived from these visualizations
○ Advantages and disadvantages of these data visualization tools
○ Dashboards and other visualizations using these tools
○ Report generation using these tools
○ Best practices when using these tools
Tools used:
○ Excel, Python, Tableau, Power BI
Significance:
○ As a computer scientist, you may be required to take part in projects related to data science
as per the industry trends. This requires analyzing the data, both statistically and visually. In
many cases, visualizations help summarize a good portion of the data analysis. In general,
one of the tasks in data science is to visualize complex data tables and derive meaningful
conclusions from the analysis, which then can be shared with colleagues and clients. You
may also be required to perform these tasks on a daily basis, sometimes with a wide range
of visualization tools. Hence, a strong working knowledge of data visualization tools is
required.

● Web Applications (4 Credits)

Proposed Course Outline

Module 1 - Context
● Client-Server Programming
● Hyper-Text Transfer Protocol
● Functions of a browser – Protocol End-Point, Rendering, User Interaction; Functions of a web server:
Managing Requests on-Demand, Database Interaction, Application Logic, Managing State,
Transitions, and Data.
Module 2 - Building Static, Single Page Applications
● Use of HTML
● Cascading Style Sheets
● Javascript to build an elementary web application.
● Browser-Server Communication using AJAX.
Module 3 - Server-Side Programming
● Server-side Programming Requirements and Frameworks
● Authentication/Log-in
● Implementing Business Logic on the webserver
● Database Access from the webserver
● Managing Sessions and Transactions;
Module 4 - Deploying a web application
● Configuring a web server
● Scalability and basic security
● Deploying a 2-tier architecture and a 3-tier architecture

Learning Objectives
➢ Enable learners to understand and build web applications
➢ Deploy web applications on web servers and configure web servers for various applications
➢ Build client side and server side applications for hosting in a web environment.

● Data Warehousing and Data Mining (4 Credits)

● Understanding Data: Data and Attributes – Nominal, Ordinal, Interval, and Ratio. Measures of
Similarity and Dissimilarity
● Understanding Datasets: Types of Datasets, Quality of Data in Datasets, Dimensions of data, Data
Pre-processing including dimensionality reduction; Visualization: Review of basic techniques (from
Probability & Statistics), Visualizing Spatial Temporal Data, Visualizing Higher Dimensional Data
● Association Rule Mining: Frequent Itemset Mining- The Apriori Principle and the Apriori Algorithm;
Rule Generation in the Apriori Algorithm; Compact Representation of the Frequent Itemsets; FP-
Growth algorithm and Frequent Itemset generation
● Clustering: Different types of clusters (resulting out of clustering); K-means algorithm,
Agglomerative Hierarchical Clustering, Density-based Clustering, , Subspace Clustering, Graph-
based Clustering, Self-Organizing Maps, Evaluation of Clusters
● Anomaly Detection: Causes of and approaches to detection
● Text Mining: Similarity Computation for Text data; Clustering Methods for text
● 4Vs of Big Data
● Big Data: Industry Case Studies
● Introduction to Data Warehouse and Data Lakes
● Designing Data Warehousing for an ETL Data Pipeline
● Designing Data Lake for an ETL Data Pipeline
● Fundamentals of Apache Hive
● Writing HQL for Data Analysis
● Partitioning and Bucketing with Hive
● Data warehousing with Redshift
● Analyze data with RedShift
● Running Spark on Multi Node cluster
● Spark Memory & Disk optimisation
● Optimising Spark Cluster environment
● Introduction to Apache Flink
● Batch Data Processing with Flink
● Stream Processing with Apache Flink
● SQL API
● Intro to real-time data processing architectures
● Fundamentals of Apache Kafka
● Setting up Kafka Producer and Consumer
● Kafka Connect API & Kafka Streams
● Spark Streaming Architecture
● Spark Streaming APIs
● Building Stream Processing Application with Spark
● Comparison between Spark Streaming and Flink
● Fundamentals of Airflow
● Workflow Management with Airflow
● Automating an entire Data Pipeline with Airflow

Learning Objectives

● Understand the intricacies behind designing a data warehouse and a data lake for use case/s.
● Manage and query a data warehouse with Apache Hive. Learn to write optimized HQL for large scale
data analysis.
● Learn to deploy a Redshift cluster and use it for querying data.
● Use PySpark to create large scale data processing applications.
● Use DataStream API to create a stream processing application
● Learn about the real-time data processing architecture of Apache Spark. Build Spark Streaming
applications to process data in real-time.
● Automate Data Pipelines with Airflow.

● Cloud Computing (4 Credits)

Proposed Course Outline

Module 1 - Context

● On-Demand Computing Resources


● Computing as a Utility
● Elasticity or resources
● Computing and Services
● Data Centers and Cloud
● Public, Private, and Hybrid Clouds
● Multi-Clouds

Module 2 - Cluster Computing

● Structure and Components of a Cluster


● Single System Image and Middleware
● Typical Middleware Implementation
● Failures, Redundancy and Handling Failures, Fault Tolerance, Performance
● Process Migration
● Load Balancing
● Memory Ushering
● Checkpointing.

Module 3 - Virtualization

● Virtual Machines
● System Virtual Machines
● Implementation Models
● Select aspects of Implementation
○ Processor Virtualization
○ Memory Virtualization
○ Storage Virtualization
○ Network Virtualization
○ Case studies (e.g. VmWare, Xen)
● Virtual Clusters. Containers and Implementation.

Module 4 - DataCenters and Cloud

● Multi-Tenancy and Resource Provisioning


● Elasticity
● Traffic / Demand Monitoring and Prediction
● Costing and Pricing
● Cloud Security
● Converged and Hyper-Converged Infrastructure.

Learning Objectives
➢ Understand various cloud technologies and related tools.
➢ Apply the concepts learned to host the solutions in a public cloud.

● Minor Project (4 Credits)

Develop a mini project based on the technologies learned earlier in this course.
Learning Objectives
➢ Build small prototypes or Proof of Concepts solutions using programming tools and devices or
commercial tools
➢ Write test cases using multi-core, distributed, embedded, concurrent/Parallel environments.
➢ Practice presentation, communication and team-work skills.

Proposed Outline for Semester–6 Courses

● Business Analytics (4 Credits)

The following topics will be covered:


○ Approaching a business problem in a structured way and frame concrete problem
statements and project plans to solve the same
○ The 5Ws and 5WHYs business framework
○ The SPIN business framework
○ Business model canvas and issue tree frameworks
○ Understanding certain specialized business frameworks such as 7Ps and 5Cs
○ Applying these learnings to solve a real-world business problem
○ Important components of data story-telling such as levels of detail and stakeholder empathy
○ Creating a compelling data story in order to convince colleagues and clients
Tools used:
○ Excel, Python
Significance:
○ As a computer scientist, you may be required to take part in projects related to data science
as per the industry trends. Additionally, you may be required to present your findings to a
larger audience including stakeholders such as colleagues and clients. Creating a measurable
business plan and presenting your project in a convincing manner is of utmost importance in
today’s world. Hence, it is important to understand the various concepts and terminologies
used in businesses and align your data analyses in those terms.

● Software Engineering (4 Credits)

Proposed Course Outline

Module 1 - Software Industry Direction

● The “goto” market objective


● Product vs. Project Management
● Fungibility of resources and Cross-functional Teams Software Lifecycle: Methodologies – Rapid
Prototyping and Agile; Scrum Framework - Incremental and Iterative Development; Feature-Driven
Development and Short Feedback Cycles; Continuous Integration, Automated Testing, Continuous
Delivery / Continuous Deployment

Module 2 - Platforms and Environments

● Code Repositories
● Versioning and Version Control Tools
● Automated Testing Tools
● Integration Tools

Learning Objectives
➢ Understand what are the tools used in software development projects for development, testing,
version control, integration, etc.
➢ Learn about the best project management practices and SDLC methodologies.

● Machine Learning (4 Credits)

The following topics will be covered:


○ Fundamental concepts behind machine learning
○ Supervised and unsupervised machine learning models
○ Feature engineering on given data to prepare it for machine learning
○ Creating linear regression models for the given data and interpreting the results
○ Creating logistic regression models for the given data and interpreting the results
○ Various clustering techniques such as K-Means, BSCAN and Hierarchical Clustering
○ Choosing the appropriate machine learning model for the given data
○ Assessing the performance of these machine learning models in terms of various metrics
such as precision, accuracy, recall, mean absolute error and root mean squared error
○ Understanding how to approach a real-world problem based on insights gained from the
data analysis and the machine learning tasks
Tools used:
○ Python
Significance:
○ As a computer scientist, you may be required to take part in projects related to data science
as per the industry trends. Machine learning is the most commonly used technique in
today’s world to perform automated tasks of drawing inferences and relationships in the
data. These techniques help in predicting critical values beforehand and also help in
classifying entities into similar groups, which can then be used to perform further analysis.

● Cloud Native Development (4 Credits)

Proposed Course Outline

➢ Enterprise Applications
➢ Evolution of Deployment: Inside the Enterprise, the Web, the Data Center / Cloud
➢ Characteristics and Structure of a Cloud-Native Application
➢ Services and Microservices
➢ Microservices Architecture
➢ Composability and Decomposing solutions into Microservices
➢ Building Microservices
➢ Orchestration / Choreography of Microservices
➢ Shared data and communication
➢ Patterns and Best Practices for Cloud-Native Development
➢ Unit Testing Microservices
➢ Porting Monolithic applications to Microservices
➢ Overview of DevOps
➢ Continuous Integration and Continuous Delivery / Deployment
➢ Deploying Microservices via Containers
➢ CI/CD Pipeline for microservices and automation
➢ Deployment platform: automated operation/management of microservices
➢ Exercises on building applications using microservices
➢ Exercises on Containerization using Dockers
➢ Exercises on Kubernetes for deploying and managing microservices
➢ CI/CD exercises

Learning Objectives

➢ Develop Applications that leverage the elasticity and availability of the Cloud
➢ Understand Microservices Architecture
➢ Apply best practices in CI/CD pipelining
➢ Understand how to use Container Technologies
➢ Deploy applications on Cloud

● Major Project (5 Credits)

Learning Objectives
➢ Design and develop projects using programming tools and devices
➢ Write SRS and other software engineering documents in the project report using mathematical
models developed and analyze them
➢ Write test cases using multi-core, distributed, embedded, concurrent/Parallel environments
➢ Present the overall project

● Linear Algebra and Optimization (4 Credits)

The following topics will be covered:


○ Data tables in terms of vectors and matrices and various mathematical operations
performed on them to derive meaningful insights
○ Linear transformations and their impact on vectors
○ The need for eigendecomposition and how it helps to simplify the process of applying
multiple linear transformations on vectors
○ Fundamental concepts behind optimization such as objective functions and decision
variables
○ Various types of optimization problems such as the warehouse problem, the assignment
problem and the knapsack problem
○ Understanding the various constraints in optimization problems
○ Fundamental concepts behind linear programming
○ Creating solutions for linear programming problems using the simplex method and its
variants
○ Creating network analyses for optimization problems and interpreting the results
Tools used:
○ Excel, Python
Significance:
○ As a computer scientist, you may be required to take part in projects related to data science
as per the industry trends. In general, it is easier to treat the data as linear algebraic objects
and work with them as such. Techniques such as dot products, norms and transformations
become more interpretable in this way and can help in deriving insights from the data. Also,
various machine learning models have linear algebraic systems as their backbone. Another
one of the most commonly used techniques in business analysis is operations research.
Hence, it is important to understand the various optimization techniques used on business
data and solve the various business problems.

You might also like