This document contains lecture notes for an Advanced Data Structures course taught by Sanjay Goel at JIIT. The notes cover several topics discussed in class including concept mapping, data structures for applications like Photoshop, binary trees and tree traversals, decision trees, search algorithms, problem solving techniques, indexed binary search trees, and threaded binary search trees. Assignments involve implementing algorithms and data structures covered in class like Huffman encoding, tree traversals, and indexed and threaded binary search trees.
Effective Sparse Matrix Representation for the GPU ArchitecturesIJCSEA Journal
General purpose computation on graphics processing unit (GPU) is prominent in the high performance computing era of this time. Porting or accelerating the data parallel applications onto GPU gives the default performance improvement because of the increased computational units. Better performances can be seen if application specific fine tuning is done with respect to the architecture under consideration. One such very widely used computation intensive kernel is sparse matrix vector multiplication (SPMV) in sparse matrix based applications. Most of the existing data format representations of sparse matrix are developed with respect to the central processing unit (CPU) or multi cores. This paper gives a new format for sparse matrix representation with respect to graphics processor architecture that can give 2x to 5x performance improvement compared to CSR (compressed row format), 2x to 54x performance improvement with respect to COO (coordinate format) and 3x to 10 x improvement compared to CSR vector format for the class of application that fit for the proposed new format. It also gives 10% to 133% improvements in memory transfer (of only access information of sparse matrix) between CPU and GPU. This paper gives the details of the new format and its requirement with complete experimentation details and results of comparison.
IJERA (International journal of Engineering Research and Applications) is International online, ... peer reviewed journal. For more detail or submit your article, please visit www.ijera.com
The objective of this paper is to present the hybrid approach for edge detection. Under this technique, edge
detection is performed in two phase. In first phase, Canny Algorithm is applied for image smoothing and in
second phase neural network is to detecting actual edges. Neural network is a wonderful tool for edge
detection. As it is a non-linear network with built-in thresholding capability. Neural Network can be trained
with back propagation technique using few training patterns but the most important and difficult part is to
identify the correct and proper training set.
A mathematical model and a heuristic memory allocation problemDiego Montero
Effective memory management in embedded systems reduce running time and power consumption. Memory allocation is complicated by limited capacity and number of memory banks, as well as potential runtime conflicts. We approached the optimization of memory allocation problem through exact solution using ILP and Tabu Search heauristic method. Inputs from DIMACs instances were tested and the results show significant performance difference between the two approaches
Effective Sparse Matrix Representation for the GPU ArchitecturesIJCSEA Journal
General purpose computation on graphics processing unit (GPU) is prominent in the high performance computing era of this time. Porting or accelerating the data parallel applications onto GPU gives the default performance improvement because of the increased computational units. Better performances can be seen if application specific fine tuning is done with respect to the architecture under consideration. One such very widely used computation intensive kernel is sparse matrix vector multiplication (SPMV) in sparse matrix based applications. Most of the existing data format representations of sparse matrix are developed with respect to the central processing unit (CPU) or multi cores. This paper gives a new format for sparse matrix representation with respect to graphics processor architecture that can give 2x to 5x performance improvement compared to CSR (compressed row format), 2x to 54x performance improvement with respect to COO (coordinate format) and 3x to 10 x improvement compared to CSR vector format for the class of application that fit for the proposed new format. It also gives 10% to 133% improvements in memory transfer (of only access information of sparse matrix) between CPU and GPU. This paper gives the details of the new format and its requirement with complete experimentation details and results of comparison.
IJERA (International journal of Engineering Research and Applications) is International online, ... peer reviewed journal. For more detail or submit your article, please visit www.ijera.com
The objective of this paper is to present the hybrid approach for edge detection. Under this technique, edge
detection is performed in two phase. In first phase, Canny Algorithm is applied for image smoothing and in
second phase neural network is to detecting actual edges. Neural network is a wonderful tool for edge
detection. As it is a non-linear network with built-in thresholding capability. Neural Network can be trained
with back propagation technique using few training patterns but the most important and difficult part is to
identify the correct and proper training set.
A mathematical model and a heuristic memory allocation problemDiego Montero
Effective memory management in embedded systems reduce running time and power consumption. Memory allocation is complicated by limited capacity and number of memory banks, as well as potential runtime conflicts. We approached the optimization of memory allocation problem through exact solution using ILP and Tabu Search heauristic method. Inputs from DIMACs instances were tested and the results show significant performance difference between the two approaches
FAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLABJournal For Research
Image compression technique is used in many applications for example, satellite imaging, medical imaging, video where the size of the iamge requires more space to store, in such application image compression effectively can be used. There are two types in image compression techniques Lossy and Lossless comression. Both these techniques are used for compression of images, but these techniques are not fast. The image compression techniques both lossy and lossless image compression techniques are not fast, they take more time for compression and decompression. For fast and efficient image compression a parallel computing technique is used in matlab. Matlab is used in this project for parallel computing of images. In this paper we will discuss Regular image compression technique, three alternatives of parallel computing using matlab, comparison of image compression with and without parallel computing.
IMAGE DE-NOISING USING DEEP NEURAL NETWORKaciijournal
Deep neural network as a part of deep learning algorithm is a state-of-the-art approach to find higher level representations of input data which has been introduced to many practical and challenging learning problems successfully. The primary goal of deep learning is to use large data to help solving a given task
on machine learning. We propose an methodology for image de-noising project defined by this model and conduct training a large image database to get the experimental output. The result shows the robustness and efficient our our algorithm.
Over time, Machine Learning inference workloads became more and more demanding in terms of latency and throughput, with multiple models being deployed in the system. This scenario provides large rooms for optimizations of runtime and memory, which current systems fall short in exploring because they employ a black-box model of ML models and tasks.
On the opposite side, Pretzel adopts a white-box description of ML models, which allows the framework to perform optimizations over deployed models and running tasks, saving memory and increasing the overall system performance. In this talk we will show the motivations behind Pretzel, its current design and possible future developments.
In this paper, a novel architecture of RNS based 1D Lifting Integer Wavelet Transform (IWT) has been introduced. Advantage of Residue Number System (RNS) based Lifting Scheme over RNS based Filter Bank and non-binary IWT has been discussed. The performance of traditional predicts and updates stage of binary Lifting Scheme (LS) for Discrete Wavelet Transform (DWT) generates huge carry propagation
delay, power and complexity. As a result non binary number system is becoming popular in the field of Digital Signal Processing (DSP) due to its efficient performance. In this paper also a new fixed number ROM based RNS division circuit has been proposed. The proposed architecture has been validated on Xilinx Vertex5 FPGA platform and the corresponding result and reports are shown in here.
An empirical assessment of different kernel functions on the performance of s...riyaniaes
Artificial intelligence (AI) and machine learning (ML) have influenced every part of our day-to-day activities in this era of technological advancement, making a living more comfortable on the earth. Among the several AI and ML algorithms, the support vector machine (SVM) has become one of the most generally used algorithms for data mining, prediction and other (AI and ML) activities in several domains. The SVM’s performance is significantly centred on the kernel function (KF); nonetheless, there is no universal accepted ground for selecting an optimal KF for a specific domain. In this paper, we investigate empirically different KFs on the SVM performance in various fields. We illustrated the performance of the SVM based on different KF through extensive experimental results. Our empirical results show that no single KF is always suitable for achieving high accuracy and generalisation in all domains. However, the gaussian radial basis function (RBF) kernel is often the default choice. Also, if the KF parameters of the RBF and exponential RBF are optimised, they outperform the linear and sigmoid KF based SVM method in terms of accuracy. Besides, the linear KF is more suitable for the linearly separable dataset.
Accelerating Real Time Applications on Heterogeneous PlatformsIJMER
In this paper we describe about the novel implementations of depth estimation from a stereo
images using feature extraction algorithms that run on the graphics processing unit (GPU) which is
suitable for real time applications like analyzing video in real-time vision systems. Modern graphics
cards contain large number of parallel processors and high-bandwidth memory for accelerating the
processing of data computation operations. In this paper we give general idea of how to accelerate the
real time application using heterogeneous platforms. We have proposed to use some added resources to
grasp more computationally involved optimization methods. This proposed approach will indirectly
accelerate a database by producing better plan quality.
A Study of BFLOAT16 for Deep Learning TrainingSubhajit Sahu
Highlighted notes of:
A Study of BFLOAT16 for Deep Learning Training
This paper presents the first comprehensive empirical study demonstrating the efficacy of the Brain Floating Point (BFLOAT16) half-precision format for DeepLearning training across image classification, speech recognition, language model-ing, generative networks, and industrial recommendation systems. BFLOAT16 is attractive for Deep Learning training for two reasons: the range of values it can represent is the same as that of IEEE 754 floating-point format (FP32) and conversion to/from FP32 is simple. Maintaining the same range as FP32 is important to ensure that no hyper-parameter tuning is required for convergence; e.g., IEEE 754compliant half-precision floating point (FP16) requires hyper-parameter tuning. In this paper, we discuss the flow of tensors and various key operations in mixed-precision training and delve into details of operations, such as the rounding modes for converting FP32 tensors to BFLOAT16. We have implemented a method to emulate BFLOAT16 operations in Tensorflow, Caffe2, IntelCaffe, and Neon for our experiments. Our results show that deep learning training using BFLOAT16tensors achieves the same state-of-the-art (SOTA) results across domains as FP32tensors in the same number of iterations and with no changes to hyper-parameters.
A BINARY TO RESIDUE CONVERSION USING NEW PROPOSED NON-COPRIME MODULI SETsipij
Residue Number System is generally supposed to use co-prime moduli set. Non-coprime moduli sets are a
field in RNS which is little studied. That's why this work was devoted to them. The resources that discuss
non-coprime in RNS are very limited. For the previous reasons, this paper analyses the RNS conversion
using suggested non-coprime moduli set.
This paper suggests a new non-coprime moduli set and investigates its performance. The suggested new
moduli set has the general representation as {2n
–2, 2n
, 2n+2}, where n ∈ {2,3,…..,∞}. The calculations
among the moduli are done with this n value. These moduli are 2 spaces apart on the numbers line from
each other. This range helps in the algorithm’s calculations as to be shown.
The proposed non-coprime moduli set is investigated. Conversion algorithm from Binary to Residue is
developed. Correctness of the algorithm was obtained through simulation program. Conversion algorithm
is implemented.
FAST AND EFFICIENT IMAGE COMPRESSION BASED ON PARALLEL COMPUTING USING MATLABJournal For Research
Image compression technique is used in many applications for example, satellite imaging, medical imaging, video where the size of the iamge requires more space to store, in such application image compression effectively can be used. There are two types in image compression techniques Lossy and Lossless comression. Both these techniques are used for compression of images, but these techniques are not fast. The image compression techniques both lossy and lossless image compression techniques are not fast, they take more time for compression and decompression. For fast and efficient image compression a parallel computing technique is used in matlab. Matlab is used in this project for parallel computing of images. In this paper we will discuss Regular image compression technique, three alternatives of parallel computing using matlab, comparison of image compression with and without parallel computing.
IMAGE DE-NOISING USING DEEP NEURAL NETWORKaciijournal
Deep neural network as a part of deep learning algorithm is a state-of-the-art approach to find higher level representations of input data which has been introduced to many practical and challenging learning problems successfully. The primary goal of deep learning is to use large data to help solving a given task
on machine learning. We propose an methodology for image de-noising project defined by this model and conduct training a large image database to get the experimental output. The result shows the robustness and efficient our our algorithm.
Over time, Machine Learning inference workloads became more and more demanding in terms of latency and throughput, with multiple models being deployed in the system. This scenario provides large rooms for optimizations of runtime and memory, which current systems fall short in exploring because they employ a black-box model of ML models and tasks.
On the opposite side, Pretzel adopts a white-box description of ML models, which allows the framework to perform optimizations over deployed models and running tasks, saving memory and increasing the overall system performance. In this talk we will show the motivations behind Pretzel, its current design and possible future developments.
In this paper, a novel architecture of RNS based 1D Lifting Integer Wavelet Transform (IWT) has been introduced. Advantage of Residue Number System (RNS) based Lifting Scheme over RNS based Filter Bank and non-binary IWT has been discussed. The performance of traditional predicts and updates stage of binary Lifting Scheme (LS) for Discrete Wavelet Transform (DWT) generates huge carry propagation
delay, power and complexity. As a result non binary number system is becoming popular in the field of Digital Signal Processing (DSP) due to its efficient performance. In this paper also a new fixed number ROM based RNS division circuit has been proposed. The proposed architecture has been validated on Xilinx Vertex5 FPGA platform and the corresponding result and reports are shown in here.
An empirical assessment of different kernel functions on the performance of s...riyaniaes
Artificial intelligence (AI) and machine learning (ML) have influenced every part of our day-to-day activities in this era of technological advancement, making a living more comfortable on the earth. Among the several AI and ML algorithms, the support vector machine (SVM) has become one of the most generally used algorithms for data mining, prediction and other (AI and ML) activities in several domains. The SVM’s performance is significantly centred on the kernel function (KF); nonetheless, there is no universal accepted ground for selecting an optimal KF for a specific domain. In this paper, we investigate empirically different KFs on the SVM performance in various fields. We illustrated the performance of the SVM based on different KF through extensive experimental results. Our empirical results show that no single KF is always suitable for achieving high accuracy and generalisation in all domains. However, the gaussian radial basis function (RBF) kernel is often the default choice. Also, if the KF parameters of the RBF and exponential RBF are optimised, they outperform the linear and sigmoid KF based SVM method in terms of accuracy. Besides, the linear KF is more suitable for the linearly separable dataset.
Accelerating Real Time Applications on Heterogeneous PlatformsIJMER
In this paper we describe about the novel implementations of depth estimation from a stereo
images using feature extraction algorithms that run on the graphics processing unit (GPU) which is
suitable for real time applications like analyzing video in real-time vision systems. Modern graphics
cards contain large number of parallel processors and high-bandwidth memory for accelerating the
processing of data computation operations. In this paper we give general idea of how to accelerate the
real time application using heterogeneous platforms. We have proposed to use some added resources to
grasp more computationally involved optimization methods. This proposed approach will indirectly
accelerate a database by producing better plan quality.
A Study of BFLOAT16 for Deep Learning TrainingSubhajit Sahu
Highlighted notes of:
A Study of BFLOAT16 for Deep Learning Training
This paper presents the first comprehensive empirical study demonstrating the efficacy of the Brain Floating Point (BFLOAT16) half-precision format for DeepLearning training across image classification, speech recognition, language model-ing, generative networks, and industrial recommendation systems. BFLOAT16 is attractive for Deep Learning training for two reasons: the range of values it can represent is the same as that of IEEE 754 floating-point format (FP32) and conversion to/from FP32 is simple. Maintaining the same range as FP32 is important to ensure that no hyper-parameter tuning is required for convergence; e.g., IEEE 754compliant half-precision floating point (FP16) requires hyper-parameter tuning. In this paper, we discuss the flow of tensors and various key operations in mixed-precision training and delve into details of operations, such as the rounding modes for converting FP32 tensors to BFLOAT16. We have implemented a method to emulate BFLOAT16 operations in Tensorflow, Caffe2, IntelCaffe, and Neon for our experiments. Our results show that deep learning training using BFLOAT16tensors achieves the same state-of-the-art (SOTA) results across domains as FP32tensors in the same number of iterations and with no changes to hyper-parameters.
A BINARY TO RESIDUE CONVERSION USING NEW PROPOSED NON-COPRIME MODULI SETsipij
Residue Number System is generally supposed to use co-prime moduli set. Non-coprime moduli sets are a
field in RNS which is little studied. That's why this work was devoted to them. The resources that discuss
non-coprime in RNS are very limited. For the previous reasons, this paper analyses the RNS conversion
using suggested non-coprime moduli set.
This paper suggests a new non-coprime moduli set and investigates its performance. The suggested new
moduli set has the general representation as {2n
–2, 2n
, 2n+2}, where n ∈ {2,3,…..,∞}. The calculations
among the moduli are done with this n value. These moduli are 2 spaces apart on the numbers line from
each other. This range helps in the algorithm’s calculations as to be shown.
The proposed non-coprime moduli set is investigated. Conversion algorithm from Binary to Residue is
developed. Correctness of the algorithm was obtained through simulation program. Conversion algorithm
is implemented.
Deep Learning Enabled Question Answering System to Automate Corporate HelpdeskSaurabh Saxena
Studied feasibility of applying state-of-the-art deep learning models like end-to-end memory networks and neural attention- based models to the problem of machine comprehension and subsequent question answering in corporate settings with huge
amount of unstructured textual data. Used pre-trained embeddings like word2vec and GLove to avoid huge training costs.
This slide deck is used as an introduction to the internals of Hadoop MapReduce, as part of the Distributed Systems and Cloud Computing course I hold at Eurecom.
Course website:
http://michiard.github.io/DISC-CLOUD-COURSE/
Sources available here:
https://github.com/michiard/DISC-CLOUD-COURSE
Modern Database Management 12th Global Edition by Hoffer solution manual.docxssuserf63bd7
https://qidiantiku.com/solution-manual-for-modern-database-management-12th-global-edition-by-hoffer.shtml
name:Solution manual for Modern Database Management 12th Global Edition by Hoffer
Edition:12th Global Edition
author:by Hoffer
ISBN:ISBN 10: 0133544613 / ISBN 13: 9780133544619
type:solution manual
format:word/zip
All chapter include
Focusing on what leading database practitioners say are the most important aspects to database development, Modern Database Management presents sound pedagogy, and topics that are critical for the practical success of database professionals. The 12th Edition further facilitates learning with illustrations that clarify important concepts and new media resources that make some of the more challenging material more engaging. Also included are general updates and expanded material in the areas undergoing rapid change due to improved managerial practices, database design tools and methodologies, and database technology.
1 Project 2 Introduction - the SeaPort Project seri.docxhoney725342
1
Project 2
Introduction - the SeaPort Project series
For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports.
Here are the classes and their instance variables we wish to define:
SeaPortProgram extends JFrame
o variables used by the GUI interface
o world: World
Thing implement Comparable <Thing>
o index: int
o name: String
o parent: int
World extends Thing
o ports: ArrayList <SeaPort>
o time: PortTime
SeaPort extends Thing
o docks: ArrayList <Dock>
o que: ArrayList <Ship> // the list of ships waiting to dock
o ships: ArrayList <Ship> // a list of all the ships at this port
o persons: ArrayList <Person> // people with skills at this port
Dock extends Thing
o ship: Ship
Ship extends Thing
o arrivalTime, dockTime: PortTime
o draft, length, weight, width: double
o jobs: ArrayList <Job>
PassengerShip extends Ship
o numberOfOccupiedRooms: int
o numberOfPassengers: int
o numberOfRooms: int
CargoShip extends Ship
o cargoValue: double
o cargoVolume: double
o cargoWeight: double
Person extends Thing
o skill: String
Job extends Thing - optional till Projects 3 and 4
o duration: double
o requirements: ArrayList <String>
// should be some of the skills of the persons
PortTime
o time: int
Eventually, in Projects 3 and 4, you will be asked to show the progress of the jobs using JProgressBar's.
2
Here's a very quick overview of all projects:
1. Read a data file, create the internal data structure, create a GUI to display the structure, and let
the user search the structure.
2. Sort the structure, use hash maps to create the structure more efficiently.
3. Create a thread for each job, cannot run until a ship has a dock, create a GUI to show the
progress of each job.
4. Simulate competing for resources (persons with particular skills) for each job.
Project 2 General Objectives
Project 2 - Map class, Comparator, sorting
Use the JDK Map class to write more efficient code when constructing the internal data
structures from the data file.
Implement SORTING using the Comparator interface together with the JDK support for sorting
data structures, thus sorting on different fields of the classes from Project 1.
Extend the GUI from Project 1 to let the user sort the data at run-time.
Documentation Requirements:
You should start working on a documentation file before you do anything else with these projects, and
fill in items as you go along. Leaving the documentation until the project is finished is not a good idea for
any number of reasons.
The documentation should include the following (graded) elements:
Cover page (including name, date, project, your class information)
Design
o including a UML class diagram
o classes, variables and methods: what they mean and why they are there
o tied to the requirements of the project
User's Guide
o how would a user start and run your pro ...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...Reynold Xin
(Berkeley CS186 guest lecture)
Big Data Analytics Systems: What Goes Around Comes Around
Introduction to MapReduce, GFS, HDFS, Spark, and differences between "Big Data" and database systems.
Eclipse Con Europe 2014 How to use DAWN Science ProjectMatthew Gerring
This is a talk given at Eclipse Con Europe 2014 on how to use the open source project DAWN, Data Analysis Workbench. This project has two papers with more than three hundred citations of using the software.
New Generation MTech and MSc Programs at JKLUSanjay Goel
A brief overview of the salient features of the curriculum of new generation MTech and MSc programs at JKLU.
MTech SCHOLARSHIPS (First year)
1. Scholarships from 25% to 100% of tuition fees are offered to meritorious students based on their final scores in the under-graduation program, in the first year of study.
CGPA Scholarships
>=9.01 Equivalent to 100% of tuition fees
8.50 - 9.00 Equivalent to 75% of tuition fees
8.01 - 8.50 Equivalent to 50% of tuition fees
7.50 - 8.00 Equivalent to 25% of tuition fees
2. Students who qualify for GATE will be eligible for scholarships equivalent to 75% tuition fees.
MERIT SCHOLARSHIPS (Second year)
Students who have obtained CGPA of 8.50 and above in first year will be awarded scholarship equivalent to 75% of the tuition fee.
Students who have obtained CGPA above 7.50 and below 8.50 in first year will be awarded scholarship equivalent to 50% of the tuition fee.
Build a Career in Engineering and Technology 19.08.20Sanjay Goel
On 19th August 2020, I gave a webinar through CollegeDunia for fresh 12th pass-outs on this theme. In this more than 1 hour-long session, I focused on the following four issues:
1. Careers for Future?
2. What to learn for future careers and how?
3. Which institutes are equipped to facilitate learning for the future career in engineering and technology?
4. Is JKLU a good option?
The Youtube video of this presentation is available at: https://youtu.be/Md79MvZhYeg
Software Development Careers: Why, What, and How?Sanjay Goel
This presentation was used during the 3 hrs long session for pre-final year CSE/IT/ECE students at JIIT on 13th June 2015. It even has the slides that were skipped because of time shortage. Thanks to some of the star alumni of 1st (2005) to 5th (2009) batch graduated from JIIT for their messages that are also included in this presentation. Each of their message was read out by different students during the presentation. I hope more engineering students at JIIT and even at other institutes will find it useful for making the right choice wrt their career.
This presentation is a continuously evolving presentation and is kept updated with new insights and information.
Developing and PublishingAcademic ProductsSanjay Goel
These lecture slides were used in two lectures delivered on 25th June 2014 at a 3 day workshop organised under the TEQIP (Technical Education Quality Improvement Programme ) scheme by Equate India for the faculty participants from few NITs, Aligarh Muslim University, and Sardar Patel College of Engineering.
Problem Solving and Research Methodology: Part-I- Risk Engineering - Excerpts...Sanjay Goel
These are excerpts of the references discussed in the lectures of an elective course Problem Solving and research Methodology offered to MTech (CSE) and BTech (CSE/IT) students at JIIT. Part -I contains the references discussed in the class before first test, it mainly deals with the theme of Risk Engineering.
This is the summary of the material discussed in the classes of CSCW, a new elective taught to MTech students in 2012 at JIIT, Noida, India. Essentially speaking, these are the excerpts of the selected papers and other publications.
A talk given during the orientation program of MBA students of JBS, JIIT, 2007. Howeevre, the content is relevant for all postgraduate students and aspirants.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
1. Advanced Data Structures, 2005 Sanjay Goel, JIIT
Advanced Data Structures
Lecture Notes
1. 11.1.05 (2 hrs)
1. Discussion on Course Description and evaluative components.
2. Feedback collection on the impact of first DS course on software development skills.
3. Group exercise on Concept Map and Data Tank identification for implementing one of following
software packages:
i. Word Processor ( MS Word like)
ii. Internet Browser
iii. Photoshop
iv. Powerpoint
v. Flash
vi. Winamp
vii. Compiler (TC like)
4. Assignment : Refine you Concept Map and come prepared to make a presentation for the class.
2. 18.1.05 (2 hrs)
1. Consolidation of the feedback : Average Impact of DS 3.16 5.35.
2. Discussion on Relationship between DS, ADS, DBMS and OOPS.
3. Table as Data Structure
4. Review of Software Design and Development Process learnt in first course of DS
Software Design Process: Design story Concept Map of Problem Concept map of Solution (with simpler verbs
and new data tanks, if needed) data structures and detailed algorithms performance analysis (using time and
space complexity analysis techniques) program Software Testing and evaluation.
5. Relationship between ADT and Class.
6. Review of ADT and Data Structure Design process learnt in first course of DS
Detailed Process for 3rd stage i.e. Concept map of Solution (with simpler verbs and new data tanks, if needed) data
structures and detailed algorithms :
i. Detailed modeling of each data tank with examples and identification of fields.
ii. Structural abstraction of each Data Tank Abstract Data Type (ADT)
ii. ADT specification of public view of ADT in terms of list of permitted and required operations for
construction, destruction, manipulation and access. Have sufficient access functions to test the
preconditions and post conditions for for other operations.
iii. Interface design for each operation in terms of function name and parameters list and their description.
iv. Pre-conditions (in terms of access functions) for each operation. Refer 2002 DS lect 3_01 to 3_03.
v. Post conditions (in terms of access functions) for each operation.
vi. Case specific Data Structure for each ADT .
vii. Algorithm for each operation sub program (function) for each operation.
7. Presentation on the Concept map and Data Tanks for Photoshop.
8. Discussion about the Core Data tank for storing multilayered images.
9. In class exercise : Propose a Data Structure for *.psd files.
10. In class exercise : Propose a scheme for converting *.psd file into *.bmp files.
11. In class exercise : Propose schemes for simple photoshop operations like 90 degree rotation,
complement image.
2. Advanced Data Structures, 2005 Sanjay Goel, JIIT
12. Assignment : Re-examine Photoshop functionality and user interface from a software designer’s
perspective and propose appropriate data structures for it. Think about the scheme for
implementing other simple operations like cropping, erasing, stamping and so on.
13. Presentation on the Concept map and Data Tanks for Winamp.
14. Discussion about the Core Data tank.
15. Presentation on the Concept map and Data Tanks for Flash.
16. Discussion about the Core Data tank.
17. Some suggestions for identifying your first paper for your literature survey:
i. Select paper(s) that use one or more of the of the Data Structure already studied by you
(e.g. Table, Stack, Binary Tree, BST, Queue, Dequeue and so on) in the first course.
ii. Select paper(s) on ADT specification and design.
iii. Select paper(s) that describe the ADTs or classes used for designing a complete software
system of your choice.
iv. Select paper(s) that discuss recursive solution for some algorithmic problem.
v. Select paper(s) that recursion removal techniques.
vi. Select Paper(s) that discuss simulation models using queues.
3. 01.02.05 (2 hrs)
1. Visualise Tree as a set of nodes
2. Tree traversal algorithms can be used to access set-element in a specific order
3. Exercise: Binary Tree Construction from given traversal sequences
4. Questions: Can you reconstruct the binary tree from only one traversal sequence ?
5. Questions : Can you reconstruct the binary tree from two traversal sequence ?
6. Analysis of binary tree reconstruction power of traversal sequence using combinations of any two of
the following traversal sequences:
- Pre-order
- Post order
- In-order
- Level-order
7. In-order gives information about left sub-tree and right sub-tree, Pre/post/level order traversal
sequences give immediate access to next parent node.
8. Is it top-down or bottom-up tree construction?
9. Binary expression tree : leaves are operands, non-leaves are operators.
10. In class assignment: Can you reconstruct the binary expression tree from only one traversal
sequence?
11. Analysis of binary tree reconstruction power of traversal sequence using any one of the following
traversal sequences:
- Pre-order (infix)
- Post order (post fix)
- In-order (prefix)
12. Design of binary tree reconstruction algorithms using any two of the following traversal sequences:
- Pre-order (infix)
- Post order (post fix)
- In-order (prefix)
13. Is it top-down or bottom-up tree construction?
3. Advanced Data Structures, 2005 Sanjay Goel, JIIT
14. Model this tree construction process as
- Producer (infix/postfix/prefix expression sequences read from left to right or from right to
left),
- Buffer (to temporarily store the unprocessed and or semi-processed operands and sub-
expressions)
- Server (to combine operands and semi-processed sub-expression tree into larger sub
expression trees using new operator as parent.
15. Question : What is the nature of this buffer: Stack of pointers to binary expression trees
16. The whole process can be viewed as converting a forest into a single tree. Initially all operands and
operators are independent single node binary expression trees. Tree construction takes place in
bottom up manner.
17. BST tree is constructed using top-down contruction approach where parents get placed in the tree
before children.
18. Demonstration of design and simulation tool for digital circuits : Siddhartha Batra
19. Algorithm design Techniques:
a. Divide and Conquer : quicksort, factorial and so on
b. Iterative
c. Data producer, Buffer and Server
d. Greedy approach : Traveling salesman example , pick up the nearest city to the
current city and move rather than trying to find the overall best path choose the best
for the current best. May not give optimized solution but gives a solution in linear or
polynomial time.
20. Huffman encoding and decoding scheme.
21. Code lookup table as a binary tree
22. Algorithm for construction of binary tree for assigning Huffman codes to a symbol set: a Bottom up
binary tree construction.
23. Buffer is needed in Bottom up tree construction algorithms.
24. References : DSII 2002-03 lecture notes lecture # 14, 15, 16, 17
25. Assignment : Write Algorithms for constructing binary trees using traversal pairs of :
–Inorder and Preorder
–Inorder and Postorder
–Inorder and Level Order
26. Assignment : Assume binary trees in which each node carries a name. WAP that, when given the
root of a tree, writes the names of the nodes of the tree level-wise from bottom up, and in each level
from right to left. Your algorithm should be of time complexity O(n), where n denotes the number of
nodes in the trees.
27. Assignment : WAP for binary expression tree construction using prefix, infix and postfix expressions.
28. Assignment : WAP for compressing given text files using Huffman encoding scheme.
4. 08.02.05 (2 hrs)
1. Review of Huffman tree.
2. Review of applications of Buffer in algorithm design : if the input data stream is such that all or
some of the data items as per the input data stream can not be processed for output then an
appropriate buffer can be used to store the seen (arrived) but un-processed (or semi processed) data.
Consider the buffer for tree construction and also tree traversal.
4. Advanced Data Structures, 2005 Sanjay Goel, JIIT
3. BST algorithms and complexities Refer 2002 DSII lect 18, 19, 20): insert, find, findmin, findmax,
delete algorithms and their complexities.
4. Exercise: find the arrival order(s) of input sequence of 0-10 numbers that would cause a well
balanced and unbalanced BST tree to be constructed after repeated insertion of arriving data as nodes.
5. Comparison of BST with sorted array.
6. Decision trees : example of path finding.
7. Converting truth tables into decision trees.
8. Converting decision tables into decision tables.
9. Many problems are solved using some kind of search strategy : Game playing is often modeled as
searching of the correct next move.
10. There are several kinds of tree traversal techniques for searching the solution search.
11. Breadth First Search : Generalisation of level order traversal in n-ary trees. Rat in the maze, shortest
path, using queue as the buffer. It finds the shallowest solution.
12. Depth First Search : Generalization of pre-order and post-order traversal in n-ary trees. Rat in the
maze, tower of Hanoi and so on, using recursion of stack as the buffer.
13. There are many more search (using tree traversal) strategies for searching a set organized a trees.
5. 15.02.05 (2 hrs)
1. Announcement of Problem option for Minor I (Take home assignment).
2. Concept map (DS) Concept map (DBMS) ER Diagram
Class Diagram
3. Review of decision tree.
4. Decision tree as a representation of decision tables (generalization of truth tables when the variables
and decisions are not binary)
5. Truth tables can be represented as Binary decision diagrams. Algorithms can be used for
simplification of logic using these diagrams rather than truth table representation.
6. Problem solving is often a process of multi-step decision making with or without opponent. When
opponent exist, it is like game playing. What about the supporters ?
7. Modeling of Path finding, Rat in the Maze, Tower of Hanoi, Tic-tac-toe and chess as multi-step
decision making.
8. Decision space can be modeled as decision tree. Each choice (choosing a branch) has some
consequences in terms of limiting further choices (subtree).
9. Decision making can be modeled as searching for right node and path from root to that node.
Rightness is defined in terms of suitability to the purpose, often in terms of testing the goal condition.
Goal test in path finding is to test if the cell coordinates of the node match the desired coordinates of
the goal. Goal test for Tower of Hanoi is to test if all the discs are in right order on the destination
pole. Goal test for Tic-tac-toe or chess may be if it is a win situation for computer.
10. Decision trees are static or learning. AI systems often use learning decision trees.
11. Many search techniques exist for searching through the decision trees.
12. Explanation, application and evaluation of BFS, DFS, DLS, Min-Max, alpha-beta pruning search
strategies.
13. Assignment : Implement Rat in the Maze and Tower of Hanoi (without fancy graphics) without using
decision tree. Re-implement one of these using the notion of decision tree. Implement BFS and
alpha-beta pruning algorithms for a decision tree varying degree and depth. Empirically compare the
time and space complexity for
14. Reference: 2005 Lecture slides on decision tree.
5. Advanced Data Structures, 2005 Sanjay Goel, JIIT
6. 22.02.05 (2 hrs)
1. Problem Solving through Computation.
2. Problem solving is the process of logically constructing a solution to a problem.
3. In CS, we concentrate on solutions utilizing computing resources.
3. An important aspect is to be able to describe a method (plan/algorithm) to solve a problem without
solving a particular problem.
5.
Problem Formulation
Problem Analysis
Algorithm Design
Translate to Computer Program
Type the program
Verify the program
Gather data for
Solve the problem
6. Problem Formulation: To create a clear and concise statement of problem.
•Initial state (IS), Final state (FS)
•Plan is a sequence of activities from IS to FS.
•If these activities are finite and unambiguous : The plan is an algorithm
•Initial objects à Final objects. (through transformation or creation)
7. Problem Statement: Required Properties:
•Complete: Cite All aspects of IS and FS and include all important objects and constraints
•Precise: Use unambiguous language
•Consistent: with nature and between IS and FS
•General: scope should cover a wide range of situations.
8. Problem Analysis: Use Problem statement to identify the objects and actions of the problem.
•In Objects {objects (data tanks) in the IS, needed before the algorithm starts},
•Out Objects {objects (data tanks) in FS, wanted at the end of algorithm}.
•State facts like generic names, range, assertions, units, magnitude, special cases about each object.
•Identify Important variable (that vary between IS and FS)
•List the important actions (activities, processes and operations) that are needed to transform and
transfer the objects from from IS to FS.
•List special circumstances: exception handler.
•List assumptions like constraints and tolerance
6. Advanced Data Structures, 2005 Sanjay Goel, JIIT
•Create mathematical model, if possible.
9. Integrate this process with current technique of concept mapping. Refer Lecture notes DS, 2004 for
the current notation details.
i. Develop Initial State Diagram (ISD) as a collection of IN Data tanks.
ii. Develop Final State Diagram (FSD) as a collection of OUT Data tanks.
iii. Develop Concept map (CM) as a network of all Data tanks (IN, OUT + temporary data
tanks) and Processing Units.
a. Enhance the current notation of Concept maps to increase its communication power
by putting following symbols on the center of the top line of the Rectangular box of
Tank.
i. IN Data Tanks :
ii. OUT data tanks :
iii. IN & OUT Data tanks:
iv. Temporary buffer type data tanks: No symbol.
b. Ensure consistency across ISD, FSD and CM
10. Form evolves to support functionality : Data structure evolves to support added functionality and/or
to enhance efficiency of certain operations without causing much (ideally no) damage to the
efficiency of other operations.
11. A constraint on Binary tree modifies its form to BST and gives efficiency of search without much
slow down of Insertion and deletion.
12. Indexed Binary Search Tree (IBST) evolves to support efficient index search in data set, in addition
to supporting the other operations at the efficiency level of BST. Search algorithm for IBST.
Complexity analysis
13. Refer : DSII 2002 Lect 21.
7. 1.03.05 (2 hrs)
1. IBST : Algorithms for insertion, deletion, modification of non-key field, modification of key field,
print in ascending order, print in descending order, successor, predecessor. Complexity analysis.
2. Threaded Binary Search Tree (TBST) : Algorithms for search, insertion, deletion, modification of
non-key field, modification of key field, print in ascending order, print in descending order,
successor, predecessor. Complexity analysis. Refer : DSII 2002 Lect 22, Lect 23
3. Group Assignment (3 students): Create, access and manipulate and analyse the performance of
Indexed Data file with following fields:
i. Roll No (Key)
ii. Name
iii. Address
iv. CGPA
v. Hobbies
7. Advanced Data Structures, 2005 Sanjay Goel, JIIT
a. WAP to create a data file of records with above fields in *.txt format. Roll No is unique.
Records and Each field are to be separated by appropriate delimiters.
b. Wap to create and maintain an overarching index structure for this data file as Threaded
Indexed BST (TIBST) of nodes with key field of ‘Roll No’ and also having the record
number of the relevant record in the data file. While saving the file, the index structure
should also be saved as a file which should simultaneously open up in memory as a RAM
based TIBST with opening of the data file.
c. Analyse the performance of this indexed storage structure theoretically and also
experimentally for different data size of 100 record, 1000 records and 10000 records with
respect to following operations:
i. Search on key,
ii. Search on index,
iii. Search on non-key,
iv. Insertion,
v. Deletion,
vi. Modification of non-key field,
vii. Modification of key field,
viii. Display in ascending order,
ix. Display in descending order,
x. Display successor and
xi. Display predecessor operations.
d. On the above operations, compare the performance (Time and space) of your indexed file
with the performance of MS Access using SQL by importing the same data file into MS
Access.
8. 15.03.05 (2 hrs)
1. Review of key ideas.
- DS design for Algorithm design
- Inductive thinking for algorithm design
2. AVL Tree : DS and Balancing algorithm. Refer : DSII 2002 Lect 23-24 to Lect 27
9. 29.03.05 (2 hrs)
1. Review of Algorithmic problem solving, Algorithmic thinking and algorithm design process.
2. Assignment :
i. Write your process.
ii. Compare your process with three more students in your class and refine your process.
Interview at least one senior student (3rd year or 4th year) or a working engineer to learn about
his/her process and further refine your process with these inputs.
iii. Submit a copy of your final statement before 5th April through email sanjay.goel@jiit.ac.in.
iv. Use your refined process to solve the problems given in Minor II.
v. Write programs to implement the algorithms.
8. Advanced Data Structures, 2005 Sanjay Goel, JIIT
4. Fibonacci Tree, Binomial tree. Refer : DSII 2002 Lect 28.
5. Assignment : Use your refined Algorithm design process developed in above assignment and WAP
to test if a binary tree is an AVL tree or more specifically a Fibonacci tree or not.
6. Multiway search trees Refer : DSII 2002 Lect 29.
7. Assignment : Use your refined Algorithm design process developed in above assignment and WAP
to test if an n-ary tree is a Binomial tree or not.
Note : Please do not copy, by sincerely doing these assignments, you have a chance to identify and
remove the gaps in your process.
10. 5.04.05 (2 hrs)
1. Multiway search Tree: Data Structure, Search and insertion algorithms, comparison with BST.
2. B Tree : Data Structure, Constraints, insertion process; balancing goal, Blocking factor. Refer :
DSII 2002 Lect 29 and 30.
11. 12.04.05 (2 hrs)
1. B Tree, B+ Tree, B* Tree, Refer : DSII 2002 Lect 31-32.
12. 19.04.05 (2 hrs)
1. Trie.
2. Single ended priority Queue (operation: Insert and one of the remove-min or remove-max) , Heap,
Heap sort, skip list Refer : DSII 2002 Lect 31-32, Lect 33.
2. Assignment : WAP to read words from a file and store them in a Trie structure.
3. Review of Apriori Analysis, Posterior Analysis.
4. Review of Algorithm design techniques:
i. Brute Force : e.g. Linear search, selection sort, Bubble sort.
ii. Decrease and Conquer : e.g. insertion sort
iii. Divide and Conquer : Recursive problem solving e.g. Quick-sort, Recursive Merge-sort,
Tower of Hanoi,
iv. Dynamic Programming : Non-recursive bottom-up merge sort, Fibonacci series,
Binomial coefficient.
v. Greedy Algorithm : e.g. Huffman coding.
vi. Backtracking : e.g. Rat in the maze, DFS, game
vii. Randomised Algorithms : when a random number is generated to take some decision
during processing, e.g. Quick sort with randomly chosen pivot element.
5. Assignment : Revise Graph related literature studied by you in Discrete maths.
13. 26.04.05 (2 hrs)
1. Application of Graph as a representational structure of real life entities like:
- Circuits
- Roadmaps
- Concept maps, ER-Diagram
- State Transition Diagram, Cycles, Processes
9. Advanced Data Structures, 2005 Sanjay Goel, JIIT
- Assemblies (Human anatomy, map of India, bicycle, computer, computer network and so on).
2. Possible computational operations that are required for each of the above case.
- insert node (k1)
- delete node (k1)
- insert edge (k1,k2,edge_wt/edge_label)
- delete edge (k1,k2,edge_wt/edge_label)
- list_neighbour nodes (k1)
- adjacent_districts (Gautam Budh Nagar)
- path (k1,k2)
- shortest_path(k1,k2)
- next_state(si, ej)
- what_events (si, sj)
3. Data structure for storing undirected graph, directed and multi-edge graphs using, Adjacency Matrix
and Adjacency Lists. Refer DSII 2002 Lect 33.
4. Operations on graphs, complexity of operations, use of Look up table that may be implemented using
array, sorted array, BST, AVL, m way search tree, Trie, Btree or some other structure.
5. Optional Assignment : Represent maze (of rat in the maze problem) as a graph and reformulate maze
traversal algorithms (recursive, using stack, using queue) with new representation.
14. 03.05.05 (2 hrs)
1. Examples of Greedy Algorithms: On the model of Producer-Buffer-Server. Buffer can be Stack/
FIFO Queue / Priority Queue or even a Set.
2. DFS (recursively or using a stack buffer) and BFS (using (FIFO queue buffer) traversal of Graph
from a source node to destination node.
3. Unweighted graph : Minimum Spanning Tree, extension of DFS and BFS. Refer DSII 2002 Lect 34.
4. Weighted Graph : Minimum Spanning Tree Algorithms.
5. 2 broad class of algorithms Through Edge-rejection Vs Edge-selection.
6. Through Edge-rejection.: 2 strategies
6.1 Pick up the costliest edge and check if it is on a cycle, if it is remove it. Iterate through this process
till cycle remain in the graph.
6.2 Pick up cycles iteratively and remove costliest edges from each cycle.
7. Through Edge-selection.: 4 strategies
7.1 Kruskel Algorithm: Start with the forest of all nodes, add cheapest link to the growing connected
graph. Iterate through the process of adding more edges (cheapest out of the un-selected) such that it
does not add a cycle.
7.2 Prim’s Algorithm: Start with node, pick up the connected node through its cheapest link. Iterate
through this process by selecting new nodes that connected to the growing graph through the cheapest
link (cheapest out of the un-selected), by avoiding to add links that create cycles.
7.3 Sollin’s Algorithm: Start with the forest of single nodes. Transform this to the forest of connected
components such as the connected components are created through the cheapest links. Iterate through
the process such that no cycles are added.
7.4 Dijkastra’s Algorithm: Start with a node and add new nodes. Use the buffer based on a Priority
Queue based on the estimated distance of the nodes from the growing connected graph. Re-estimate
the distances of unselected nodes because of new confirmations.