Software Development US Blog Posts

All Blogs
Runtime Polymorphism in Java with Examples
41567
Polymorphism is a technique wherein a single action can be performed in two different ways. The term polymorphism is derived from two Greek words, ” poly” and “morphs,” which mean many and forms, respectively.   In my experience with Java programming, I’ve gained a deep understanding of polymorphism. It’s akin to being versatile, where a single entity can exhibit different behaviors depending on the context, much like a person playing various roles in different situations. Polymorphism plays a crucial role in Object-Oriented Programming (OOP), allowing for flexible and reusable code. A specific aspect I’ve explored extensively is runtime polymorphism in Java, which involves method invocation determined by the object’s type at runtime. This insight has significantly advanced my Java programming skills, enabling me to write more efficient and adaptable code.  An example to understand the concept of polymorphism in OOPs is as follows: use warnings; # Creating class using package package A; # Constructor creation sub new {     # shift will take package name 'vehicle'      # and assign it to variable 'class'     my $class = shift;     my $self = {                   'name' => shift,                   'roll_no' => shift               };     sub poly_example     {       print("This corresponds to class A\n");     } };   package B; # The @ISA array contains a list  # of that class's parent classes, if any my @ISA = (A); sub poly_example {   print("This corresponds to class B\n"); } package main;   B->poly_example(); A->poly_example(); Polymorphism in Java Polymorphism in Java can be done in two ways, method overloading and method overriding. There are two types of polymorphism in Java. So, Let’s explore compile-time polymorphism and run time polymorphism in Java. Compile-time polymorphism Runtime polymorphism. Compile-time polymorphism is a process in which a call to an overridden method is resolved at compile time.  In this article, we’ll cover runtime polymorphism in Java in detail.  Learn Software engineering degrees online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs, or Masters Programs to fast-track your career. Purpose of Polymorphism in OOPs The primary purpose of polymorphism is to perform a single action in multiple ways. In other words, polymorphism provides one interface with many implementations. Poly means many and morphs means forms. True to its name, polymorphism offers different forms to a single function. Runtime Polymorphism in Java Runtime polymorphism, also known as the Dynamic Method Dispatch, is a process that resolves a call to an overridden method at runtime. The process involves the use of the reference variable of a superclass to call for an overridden method. The method to be called will be determined based on the object being referred to by the reference variable.  Check out all trending Java Tutorials in 2024.  Implementation of Runtime Polymorphism in Java  In Java, Runtime polymorphism is one of the powerful object-oriented concepts that allows a program to perform different behaviors based on runtime type information. This is done using method overriding, allowing a subclass to offer its own implementation of a technique already declared in its parent class.   During the compilation time, the compiler binds a method call to the signature of the corresponding method present in the superclass. But in runtime, the type of object that the reference variable is pointing to determines which method actually gets executed. This is flexible and scalable within the code.   For example, suppose there is a superclass called Shape and two subclasses, Circle and Rectangle, with their own implementations of the same method called draw. In runtime, if a reference variable is created with the type Shape and initialized to refer to an object of either Circle or Rectangle types, then the relevant overriding occurrence in that particular subclass gets invoked.  This highly dynamic method dispatch increases the modularity of code and stimulates generic code that can function efficiently with different subclasses. Therefore, runtime polymorphism is a central feature that encourages code reusability, abstraction, and inheritance in Java programming.  Also Read: Polymorphism In OOPS Benefits of Runtime Polymorphism in Java The primary advantage of runtime polymorphism is enabling the class to offer its specification to another inherited method. This implementation transfer from one method to another can be done without altering or changing the codes of the parent class object. Also, the call to an overridden method can be resolved dynamically during runtime. Let’s discuss some benefits of polymorphism in Java.   Code Reusability:  Runtime Polymorphism in Java increases the code reusability by using one method name and different classes. It ensures that standard functionalities can be implemented in a superclass and inherited by subclasses, thus reducing redundancy while increasing maintainability.  Flexibility:  Runtime Polymorphism ensures flexibility by creating a single interface that can be used to implement different types. This allows developers to modify or expand components without changing the architecture so that code can be adapted according to their needs because of the high-level flexibility in software design.  Extensibility:  Another significant benefit is extensibility since new classes or methods can easily be added without having to change the existing code. Since new subclasses can call upon and override the functions defined in a common superclass, an evolving system is modularized. As functionality changes with time, it can be easily modified to reflect changing reality.  Encapsulation:  Next, Runtime polymorphism helps to strengthen the encapsulation principle since it enables implementation details to be hidden in each class. The external code interacts with objects through a standard interface, which helps establish an apparent boundary between the internal aspects of classes and the outside parts, thereby improving maintainability and security.  Polymorphic Parameters:  Runtime Polymorphism makes it possible to process polymorphic parameters, enabling methods to accept objects of several types through a standard interface. This allows for simplified method signatures and increases the dynamic capabilities of functions, which can work with many different object types without explicitly stating each one.  What is Method Overriding? Runtime polymorphism in Java can be carried out only by method overriding. Method overriding occurs when objects possess the same name, arguments, and type as their parent class but have different functionality. When a child class has such a method in it, it is called an overridden method.  What is Upcasting? When an overridden method of child class is called through its parent type reference in Java, it is called upcasting. In this process, the object type represents the method or functionality that will be invoked. This decision is made during the runtime, and hence, the name run time polymorphism is given to the process.  Run time polymorphism is also known as Dynamic Method Dispatch as the method functionality is decided dynamically at run time based on the object. It is also called “Late Binding” as the process of binding the method with the object occurs late after compilation.  Rules to be Followed When Executing Run Time Polymorphism Below is a set of essential rules in run time polymorphism: Both the child and the parent class should have the same method names. Child and the parent class methods should have the same parameter. It is mandatory to establish an IS-A relationship. It is not possible to override the private methods of a parent class. It is not possible to override static methods. Examples of Run-Time Polymorphism in Java Example 1 In this example, we can create two classes, car, and Audi. The  Audi class will extend the car class and override its run () method. The run method is called through the reference variable of the parent class. As the subclass method refers to the subclass object and overrides the parent class method, the subclass method will be invoked during the runtime.  As the method to be invoked is determined by the JVM rather than the compiler, it is a classic example of runtime polymorphism. The program for the above example can be written as follows:  class Car{  void run(){System.out.println("running");} } class Audi extends Car{  void run(){System.out.println("running swiftly with 100km");}   public static void main(String args[]){       Car b = new Audi();//upcasting       b.run();     }   }   Learn Java Tutorials Java Tutorials Java Classes and Objects Java 8 features Operators in Java Static Keyword In Java Switch Case In Java Packages in Java For Loop in Java Thread Lifecycle In Java OOP vs Functional vs Procedural Instance variables in Java Loops in Java Identifiers in Java Java Frameworks String Comparison in Java charAt() in Java View All Java Tutorials Example 2 The second example is about different shapes. class Shape{   void draw(){System.out.println("creating...");}   }   class square extends Shape{   void draw(){System.out.println("creating square...");}   }   class Triangle extends Shape{   void draw(){System.out.println("creating triangle...");}   }   class Pentagon extends Shape{   void draw(){System.out.println("creating pentagon...");}   }   class TestPolymorphism2{   public static void main(String args[]){   Shape s;   s=new Square();   s.draw();   s=new Triangle();   s.draw();   s=new Pentagon();   s.draw();   }   }   To obtain more profound knowledge about runtime polymorphism and other vital aspects in computer science, I strongly suggest you to enroll in Master of Science in Computer Science program offered by Liverpool John Moores University in association with IIT Bangalore powered by upGrad.  The duration of the course is 20 months, the completion of which will give candidates a dual alumni status from both John Moores University and IIT Bangalore.  The curriculum includes a preparatory course that helps the candidates to have a great understanding of the Java fundamentals which will help them advance in their careers. Candidates are mentored by industry experts to give them a relevant and practical learning experience. This is backed by over 30 case studies and projects related to the industry to help them stay in tune with the current developments in the industry. To top all of this, the course comes with upGrad’s 360-degree placement support. upGrad has impacted the careers of more than 5,00,000 working professionals and has over 40,000 paid global learners. It provides the candidates with a fantastic opportunity of developing a vast global peer network. Frequently Asked Questions
Read More

by Pavan Vadapalli

19 Jun 2024

Top 19 Java 8 Interview Questions (2023)
6297
Java 8: What Is It? Let’s conduct a quick refresher and define what Java 8 is before we go into the questions. To increase the efficiency with which Java applications may be developed and operated, Java has published Java 8, which was made available to the public on March 14, 2014. Java is undeniably one of the first names that come to our mind when we talk about software development. A primary driving power behind the global digital lifestyle, Java is an object-oriented programming (OOP) language developed by James A. Gosling in the mid-1990s, together with Patrick Naughton and Mike Sheridan.  With its many perks that include platform independence, object-oriented nature, and ease of learning, Java finds a host of applications in the software industry; be it Android applications, web-based applications, or desktop GUI applications, computers without Java are legit unimaginable.  The latest addition to the incredible functionalities of Java is Java 8, an open-source project released on March 18, 2014. Regarded as a revolutionary release for software development platforms, Java 8 is packed with upgrades and new features to the Java programming, tools, libraries, and JVM. The Oracle Corporation currently manages it. Needless to say, Java 8 interview questions are a hot topic in the field of software development. Moreover, if you are a fresher looking to make it big as a software developer or a related job title, let us walk you through the top Java 8 interview questions and answers you should go through as part of your D-day prep. In addition, we will talk about some popular upGrad courses that will help you get a step closer to your dream job! Why do you think Java SE 8 is so beneficial? It has been decided that programmers would benefit greatly from Java SE 8’s release. In particular, these are: It simplifies and clarifies the code. The addition of Lambda Expressions and Functional Interfaces to Java SE 8 increased code reusability. With Java 8, it’s easier to keep up with updates and run tests on code. It aids in the creation of incredibly scalable code and interfaces. Aids in the creation of alternative programs. This facilitated the creation of database-like activities. It boosts the efficiency of a wide range of programs. Java SE 8 allows for more efficient programming. Top 15 Java 8 Interview Questions and Answers 1. What are the new features added to Java 8? The essential features included in Java 8 include: Functional interfaces Lambda expression Method references Stream API Date time API Optional Default method Nashorn, JavaScript Engine 2. What are functional interfaces? Functional interfaces are interfaces that have only one abstract method. These interfaces are implemented using a Lambda expression. Thus, to use a Lambda expression, we need to create a new functional interface or use the predefined one of Java 8. 3. What are the characteristics of the Lambda function? Main characteristics of the Lambda function include: A method defined as Lambda expression can be passed as a parameter to a different method. There is no requirement of declaring the parameter type since the compiler can fetch the same from the parameter’s value. A method can exist independently without belonging to a class. Using a single parameter does not require parentheses, but the same can be done using multiple parameters. There is no need to use curly braces if the body of expression has only a single statement. 4. What is the structure of the Lambda expression? Lambda expression has the following structure: (Argument List) ->{statements;} or (Argument List) ->{expression;} 5. What are method references? Method references in Java 8 are a particular type of Lambda expression used for creating simple Lambda expressions by referencing existing methods. The different kinds of method references are – reference to a static method, reference to a constructor, and reference to an instance method. 6. What are Default Methods in Java 8? Default methods are those methods of the interface which have a body and utilize default keywords. Default methods have the property of backward compatibility. It means that if we add the default method in an interface, we will be able to provide the default implementation without affecting the implementing classes. However, if JDK modifies any interface that does not have the default method, then the classes that implement the said interface will break. 7. What is an optional class? Optional classes are special wrapper classes in Java 8 for avoiding NullPointerExceptions. NullPointerExceptions occur when we fail to perform Null checks. Optional classes encapsulate optional value that is either present or not. 8. Give some examples of standard Java pre-defined functional interfaces? The functional interfaces introduced by Java 8 include Predicate, Consumer, Supplier, etc. But popular pre-defined functional interfaces from earlier Java versions include the following: Runnable: For executing the instances of a class over another thread with no return value and no arguments. Comparable: For sorting objects in the natural sort order. Comparator: For sorting different objects as per user-defined order. Callable: For executing the instances of a class over another thread with no arguments. It either throws an exception or returns a value. 9. Name the various categories of pre-defined functional interfaces and their uses. The various categories of pre-defined functional interfaces are: Function: For transforming arguments in returnable value. Operator: For performing reduction type operations that accept the same input types. Consumer: Accepts arguments but does not return any values. Supplier: Returns a value but does not accept any arguments. Predicate: For performing a test and returning a boolean value. 10. What are some date and time APIs in Java 8? LocalTime, LocalDate, and LocalDateTime are the core date and time API classes in Java 8. These classes are local to the context of the observer and denote the current time and date in the context of the observer. 11. What were the drawbacks of the old date and time? The old date and time suffered from the following limitations: Java 8 time and date API meet the ISO standards, but the old date and time had a poor design. While the latest Java 8 date and time API is thread-safe, Java.util.Date was mutable and not thread-safe. In terms of performance, Java 8 is faster than the older date and time regime. 12. What is the difference between a Predicate and a Function? A Predicate and a Function differ in the following respects: While Predicate has the return type as boolean, Function has the return type as the object. A Predicate is written as Predicate<T> and accepts a single argument. A Function also accepts a single argument but is written as Function<T,R> Here, T denotes the type of input to the function, and R represents the type of result. 13. What are Stream APIs, and why do we need them? Stream APIs are a new feature in Java 8, a special class used for processing objects from a source such as Collection. Stream APIs are needed for: Supporting aggregate operations and simplifying processing Faster processing and better performance Supporting functional-style programming Parallel operations 14. What is the use of the limit() method in Java 8? The Stream.limit() method is used for specifying the limit of the elements. If we specify the size of the limit(X), it will return the Stream of size ‘X.’ 15. What are PermGen and MetaSpace? Up to Java 7, PermGen was an area used by JVM to store classes. PermGen was replaced by MetaSpace in Java 8. The major benefit of MetaSpace over PermGen is in terms of size. While PermGen had a fixed maximum size and could not grow dynamically, MetaSpace does not have any size constraint and is capable of dynamic growth. 16. What is Optional in Java 8? The Optional object is a container for other, non-null objects. Null without a value is represented as a non-mandatory object.  The Optional class provides many helper methods that may be used in place of testing for null values, allowing for more flexible handling of items that may or may not be accessible.  Instead of utilizing null references, the Optional class provides a type-level alternative for encoding optional data. 17. What is a Static Method? Why do we need Static methods in Java 8 Interfaces? Static methods are connected with a certain class or interface and might be either utility or helper methods. It’s not connected to anything in particular. The following justify our requirement for Static Methods: Instead of placing interface-specific utility methods in a separate Utility class, we may maintain them in the interface itself. There is no need to retain Utility Methods in specialized Utility Classes like Collections, Arrays, etc. Separation of Duties that is easy to understand. That is, there is no need for a separate Utility class to house the many Utility operations available in the Collections API. The API may be easily extended. The API is simple to keep up with. 18. Do you have any background working with Java in a real-world setting? If you are a seasoned programmer going in for an interview, you should expect this question. To the best of your ability, please respond with an honest account of your prior work in a production setting supporting Java development. 19. Is there a particular Java Developer certification you hold that sets you apart from the competition? As well as giving you an in-depth understanding of the technology you wish to master, a certification from a reputable organization will look great on your CV. You may show the interviewer that you have put in the time and effort necessary to understand the technology by working on real-world projects at the industry level, which are included in the certification process. Certification in a particular technology will lend legitimacy to your resume. It will give you a leg up in terms of information, education, and preparedness for interviews. Here’s What You Can Do Next Preparing for tech interviews can be a real hassle if you are not prepared well. By preparation, we do not simply mean going through truckloads of mock questions but also ensuring that your fundamentals are clear as crystal. And what better way to taking the first step towards your goals than signing up with upGrad? upGrad is a leading online higher education platform offering industry-relevant programs and courses in collaboration with the best-in-class faculty and experts. With top university partners including Liverpool John Moores University, IIIT Bangalore, IIT Madras, and Duke Corporate Education, upGrad amalgamates the best teaching practices and latest technology to provide an immersive and world-class learning experience. upGrad’s educational programs and courses have impacted over 500,000 working professionals. In addition, it has a paid learner base of over 40,000 spread across more than 85 countries. If you wish to pursue a career in software development or related fields, upGrad’s Master of Science in Computer Science and Executive PG Program in Software Development are two courses you should check out. With upGrad 360-degree career support, peer learning opportunities, and industry networking, the unique programs are curated to help learners master the know-how of software development.  1. Master of Science in Computer Science (19 months) Program Highlights: Master’s degree from the prestigious Liverpool John Moores University. Six unique specializations to choose from – Big Data, Full Stack Development, Blockchain Development, DevOps, Cloud Computing, and Cyber Security. Comprehensive coverage of 30+ programming languages, tools, and software with four years of unlimited content access. More than 500 hours of content with 30+ case studies and projects, 10+ live sessions, and industry mentorship 2. Executive PG Program in Software Development (13 months) Program Highlights: Recognition from the prestigious IIIT Bangalore. Six unique specializations to choose from – Big Data, Full Stack Development, Blockchain Development, DevOps, Cloud Computing, and Cyber Security. Hands-on exposure to over 30 industry-relevant assignments, case studies, and projects with coverage of 30+ tools and software. 400+ hours of content, over ten live sessions, and mentorship from leading faculty and industry experts. Gearing Up for the Challenge: Java 8 Coding Interview Questions for Freshers & Experienced and Practical Tests Java 8 interviews often delve beyond theoretical knowledge, assessing your practical skills and problem-solving prowess through diverse Java 8 coding practice problems and tests. Here’s a roadmap to navigate these assessments: Showcasing Your Command of Java 8: Lambda Expressions, Streams, and Functional Interfaces: Be prepared to demonstrate your understanding by tackling Java 8 programming questions specifically designed to leverage these powerful features. Algorithmic Expertise: Interviewers may present algorithmic challenges, from sorting and searching to collection manipulation, requiring solutions crafted with Java 8 features. So, prepare yourself for java 8 features interview questions. Design and Architecture for Real-World Scenarios: Design or architecture challenges based on realistic situations might test your ability to propose solutions leveraging Java 8 concepts (classes, interfaces, component interactions). Refactoring Magic: Breathe new life into code snippets written in older Java versions by refactoring them with efficiency and readability enhancements using Java 8 features. Debugging and Error Sleuthing: Put your detective skills to the test by identifying and fixing bugs or errors in provided code, applying your Java 8 knowledge and syntax. Sharpen Your Skills with Practice: Regularly engaging with Java 8 interview coding questions and practical tests is key to honing your Java 8 skills and boosting your interview confidence. Portfolio and Projects: Beyond the Resume Java 8 interviews often delve into your real-world experience through portfolio and project discussions. Be ready to address these topics: Project Scope and Impact: Articulate the scope and objectives of your past projects, highlighting the problems you tackled and the requirements you met. Tech Stack Savvy: Explain the technologies and frameworks you employed, emphasizing any Java 8 features you strategically leveraged. Conquering Challenges: Share any obstacles you encountered during your projects and the solutions you devised, showcasing your problem-solving approach and resilience. Success Stories: Highlight achievements like meeting deadlines, exceeding performance targets, or receiving positive feedback, demonstrating your value contribution. Lessons Learned: Reflect on the knowledge you gained from your projects, including insights from mistakes and how you’d approach similar projects differently. By delving into your portfolio and projects, you can weave a compelling narrative that showcases your experience, skills, and achievements to potential employers. Common Stumbles to Avoid: Pitfalls in Java 8 Interview Questions Even seasoned developers can make missteps in Java 8 interviews. Here are some common pitfalls to steer clear of: Unpreparedness: Incomplete understanding of core concepts and inadequate practice can hinder your ability to answer Java 8 interview questions and demonstrate skills. Shaky Java 8 Foundation: Ensure you have a solid grasp of lambda expressions, streams, and functional interfaces to avoid errors during coding challenges or tests. Ignoring Edge Cases: Overlooking boundary conditions and edge cases in coding problems or algorithm design can lead to inaccurate results or unexpected behavior. Communication Barriers: Convey your thought process and reasoning clearly and concisely to avoid misunderstandings. Poor communication can misrepresent your abilities. Lack of Confidence: Believe in yourself! Project confidence and self-assurance to make a positive impact on the interviewer. By being aware of these common pitfalls and actively preparing, you can confidently navigate Java 8 interview questions and increase your chances of landing your dream job. Feedback and Continuous Learning: The Journey Doesn’t End The interview process doesn’t conclude with the final handshake. Feedbacks are important even for java 8 interview questions for 5 years, 10 years experienced. Here’s how to make the most of the feedback and continue your learning journey: Self-Reflection: A Valuable Tool: Take time to reflect on your interview experience, identifying areas of strength, weakness, and opportunities for improvement. This introspection will guide your future preparation. Seeking Feedback: Don’t hesitate to reach out to interviewers for constructive feedback. Their insights can be invaluable for honing your Java 8 programming questions skills. Embrace Continuous Learning: The world of Java 8 is constantly evolving. Make continuous learning and skill development a top priority. Explore new features, practice coding challenges, and embark on personal projects. Stay Ahead of the Curve: Actively engage with the Java 8 community by reading blogs, attending conferences, and participating in online forums. Staying up-to-date will keep you competitive in the job market. Additional Tips for Success Practice Interviewing: Participating in mock interviews with friends, colleagues, or online platforms can help you become comfortable answering questions under pressure and articulate your thought process effectively. Showcase Your Passion: Express your genuine enthusiasm for Java 8 and its capabilities. Your passion can be contagious and leave a positive impression on the interviewer. Ask Relevant Questions: Prepare thoughtful questions to ask the interviewer about the company, team, and role. This demonstrates your interest and initiative. Follow Up: Thank the interviewer for their time and reiterate your interest in the position. You can also use this opportunity to clarify any points or highlight skills you may not have had a chance to mention in the interview By mastering Java 8 coding questions, showcasing your projects effectively, and avoiding common pitfalls, you can confidently approach any Java 8 interview. Remember, continuous learning, preparation, and a positive attitude are key to making a strong impression and landing your dream job. Conclusion Having a relevant academic degree is the first step towards a bright career in software development. upGrad’s robust courses in Computer Science and Software Development are designed to prepare candidates for varied job roles, including that of Software Developer, Big Data Developer, Data Engineer, Big Data Engineer, and Big Data Architect. The next step is preparing for the job interviews, where questions on the various programming languages and tools are pretty typical. Java being the programming language of choice for developers across multiple platforms, Java 8 interview questions are mandatory in the interviewee’s preparation agenda. 
Read More

by Pavan Vadapalli

27 Feb 2024

Top 10 DJango Project Ideas & Topics
13654
What is the Django Project? Django is a popular Python-based, free, and open-source web framework. It follows an MTV (model–template–views) pattern in architecture and is handled by the Django Software Foundation established in the US. Django is a powerful and versatile web framework that combines the flexibility of Python with a well-structured architecture. Django primarily focuses on the efficient facilitation of complex data-driven websites and emphasizes using less code, rapid development, low coupling, pluggability of components, and avoiding repetition. Django widely uses Python for its files, settings, and data models. Django Python additionally provides an executive create, read, update and delete interface that is optional and dynamically generated via introspection and configured through admin models. To get started with a Django project, you can follow the below steps on how to run Django project. Many sites utilize Django, such as Mozilla, Instagram, Bitbucket, Disqus, Clubhouse, and Nextdoor. Learn Software Development Courses online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs or Masters Programs to fast-track your career. Django Projects Ideas for Beginners Django has gained immense popularity in recent years for its ability to streamline web development and create robust web applications. Django beginners are mainly involved in learning about the Python framework’s tools and libraries. Below is a list of some of the best Django project ideas to explore how the Model-Template-View architecture functions and to create Django projects:- 1. Weather App An interesting Django project where you can build a weather app showing local weather conditions. The framework can also implement features like checking the weather status of selected locations. Even if you lack the required equipment to calculate the stats, you can implement open-source weather APIs to achieve real-time data and display it on the web application. You must have some knowledge about web-scraping and REST APIs. 2. To-Do App  To-Do is a relatively simple app that only performs CRUD (Create-Retrieve-Update-Delete) operations and enables only four tasks to build applications. It has a straightforward backend, which restricts logic in 20 to 30 code lines in a Django class-based application. The framework allows front-end technologies like CSS, HTML, and JavaScript’s use and utilizes the Flask framework since it is comparatively smaller in scale. 3. Poll App  Poll apps are popularly used on Instagram, YouTube, and Facebook, assisting in-house poll applications where users can create a poll and other users cast votes. You need to build a multi-user app for logging in, creating, and voting for the polls. Ensure that users can cast only one vote for each survey. The app can be more interactive with HTML, CSS, and Javascript.  4. Quiz App  A quiz app is similar to a poll app. However, the only difference is that the user must select the correct answer from the ones provided. This application can also have features like a 50-50 option or a hint. The app should contain multiple questions displaying the player’s score at the end.  5. Social Media Analytics Dashboard Harness the power of Django and big data analytics with a social media analytics dashboard. This project involves collecting data from various social media platforms using Django. You can analyze trends, track user engagement, and visualize insights using Django forms and Python Django projects with source code. This advanced project will give you hands-on experience in working with Django. Intermediate Django Projects Ideas   For intermediate Django projects, you need to have a holistic understanding of the Django basics. Below are some excellent examples of moderately easy Django projects:- 6. Real-Time Chat Application Enhance your Django skills by building a real-time chat application. Implement WebSocket technology in Django to create a responsive and interactive chat platform. Users can send messages, share files, and participate in group chats. This project will require a deep understanding of Django forms and real-time communication. 7. Django Chat App The powerful application requires more than just Django. As an intermediate developer, you must know how Django functions with databases and users. Users can implement chat features using Django user models and built-in databases. With some logic, the chat messages can be stored in the database, while you can create a view where only specific messages will appear in user interaction. 8. E-commerce Analytics Dashboard Combine the power of Django with big data analytics to create an ecommerce analytics dashboard. Gather data from an online store, such as sales, customer behavior, and inventory, and visualize it in a user-friendly dashboard. This project will provide valuable insights into Django, Python Django projects with source code, and big data analytics. 9. School Management System One of the most popular projects in Django is a school management system. These systems mainly focus on creating the perfect database schema. Django’s ORM feature makes it user-friendly and enables users to make an optimized schema quickly and efficiently. You will additionally need database designing knowledge to build a multi-user app where all teachers, staff members, and students can register and log in. The system can also make similar Django management projects like hotel, library, or hospital management systems.  10. Online Bookstore with Recommendation System Create an e-commerce website using Django that sells books and incorporates a recommendation system. Utilize Django’s built-in forms to handle user interactions like registration, login, and order placement. Implementing recommendation algorithms will require a deep understanding of Python Django. 11. Resume App  Resume-making can be cumbersome for many students. To provide an easier solution, you can quickly build a resume app. These are simple Django apps that generate resumes depending on manually added information on the app. The concept of this app can be made more interactive with the help of front-end technologies. Make it look as simple as possible, enabling the user to choose resume formats, such as pdf, jpeg, etc. Popular Courses & Articles on Software Engineering Popular Programs Executive PG Program in Software Development - IIIT B Blockchain Certificate Program - PURDUE Cybersecurity Certificate Program - PURDUE MSC in Computer Science - IIIT B Other Popular Articles Cloud Engineer Salary in the US AWS Solution Architect Salary in US Backend Developer Salary in the US Front End Developer Salary in US Web developer Salary in USA Scrum Master Interview Questions How to Start a Career in Cyber Security Career Options in the US for Engineering Students .wpdt-fs-000020 { font-size: 20px !important;} 12. A Blog Website  Django was primarily created to make magazines and websites akin to books. Therefore, it can build simple blogs in the shortest period. Django comes with multiple modules that enable users to write the logic for blog applications. Django can create all forms of blogs like text blogs, e-magazines, video blogs, or image blogs. A blog might seem like a beginner-level Django project. Still, it can be more impressive if you make a multi-user blog that enables users to log in and register via Google or other social media platforms.  Advanced Django Projects Ideas Since Django is a full-stack web framework, you need to use multiple as an advanced developer. Here are a few cutting-edge Django project ideas you might like:- 13. Clone Projects  As an advanced Django developer, you can easily make clone projects that look and function similar to popular web applications. YouTube can be easily cloned where users can log in via Google, upload videos, and like and dislike videos. With a thorough understanding of front-end technologies, Django can also clone other popular platforms like Instagram. 14. IoT-Based Smart Home Control System Leverage Django’s capabilities to build an IoT-based smart home control system. Connect various IoT devices to your Django application, allowing users to control lighting, security, and appliances remotely. This project will involve integrating Django with IoT protocols and hardware, showcasing your expertise in Django Python and IoT technologies. 15. An eCommerce Application  eCommerce applications are pretty popular among entrepreneurs today. They can collaborate with several organizations to sell goods via embedding. You can easily create an eCommerce app with Django, almost similar to a blog app. However, designing eCommerce applications for large-scale companies requires more than just Django to deal with enormous databases. 16. Online Learning Management System Develop an online learning management system that enables educational institutions to manage courses, students, and resources efficiently. Django’s user-friendly framework makes it ideal for creating such a platform. You can incorporate features like course creation, enrollment, quizzes, and progress tracking. This project will demonstrate your proficiency in Django and its ability to handle complex web applications. Conclusion Creating Django projects is the best way to develop skills and showcase your deep learning and expertise in web development. Therefore, learning about Django Python is a great way for web development enthusiasts to have practical, hands-on experience in this area. Django projects can prepare you for more complex frameworks like PHP and Python, which are crucial for entering the professional field. Start developing your tech skills early, from fundamentals to advanced, with Executive PG Program in Software Development from upGrad. Sign up today. 
Read More

by Pavan Vadapalli

29 Nov 2023

Most Asked AWS Interview Questions & Answers [For Freshers & Experienced]
5881
The fast-moving world laced with technology has created a convenient environment for companies to provide better services to their clients. Cloud computing is one aspect brands strive hard to incorporate into their services. The service accounts for easier accessibility and storage options for customers to sustain their requirements at any time of the day without needing to be in touch with their hefty complex storage devices.  The prevalence of cloud computing services in our daily lives has created a demand for skilled experts. Consequently, the cloud computing industry is hovering for a prosperous future. Experienced professionals seeking to establish themselves in this domain are in high demand. The rapid assimilation of cloud computing services into our daily lives has led to the need for learned professionals owning expertise in the domain. As a result, the cloud computing industry has a bright future, and the current market demand is exceptional for experienced people looking out to make a name in the zone.  If you wish to be a part of this globally emerging market, you must have one significant skill necessary to perform the role well. AWS, or Amazon Web Services, is a cloud computing platform companies rely on for their storage, server, networking, security, remote computing, and many such features used by leading industry brands such as Netflix and Adobe. Thus, to make a career in cloud computing, you must excel in AWS interviews. Here are some of the AWS interview questions and answers to help you prepare for the big day! 10 Questions and Answers for AWS Interview  Q1: Explain what is AWS? Amazon provides a complete cloud computing platform known as Amazon Web Services (AWS).It offers many scalable and cost-effective services, including computing power, storage options, and databases where you can access these services through the internet. The advantage of AWS is that users can quickly deploy and manage applications without investing in hardware upfront. By taking care of infrastructure management, security, and maintenance complexities, AWS allows businesses and developers to focus on innovation and growth. AWS offers dependable and adaptable cloud solutions to businesses of any scale and industry, with data centers located worldwide. Q2: What are the primary services offered by AWS? Services offered by AWS can be divided into four categories. These categories constitute networking, computing, storage, and security. Each of these four includes several cloud-run products curated for cross-functional uses by individuals, companies, and governments. Some of them include EC2, Lamba, CloudFront, Elastic File System, VPC, LightSat, etc., joining together to deliver attributes of a real computer but on the cloud. Learn Software Development Courses online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs or Masters Programs to fast-track your career. Q3: What is S3? Amazon S3, also known as Amazon Simple Storage Service, is a storage solution based in the cloud. It allows users to conveniently store and retrieve data anywhere and anytime through a web service interface. With its scalability and durability, Storing large amounts of data is made easy with Amazon S3. It is an excellent option to consider.This platform is widely used by developers worldwide. Users can enjoy the benefits of this reliable online backup service with a flexible pricing model that allows them to pay only for the storage they use. Q4: What is Cloudfront? Cloudfront is a content delivery network comprising the distribution of proxy servers globally, as people can access content data based on their geographical location. Cloudfront follows geotargeting as it lets the servers curate content on their webpage based on people’s geographical data without changing the URL. Also, the servers cache content and allow local users easy access to stream or download web content.  Q5: What is AWS SNS? The Simple Notification Service (SNS) provided by Amazon Web Services allows publishers to efficiently send notifications to subscribers using a push notification system. It is designed to support various communication scenarios between applications and individuals, making it a versatile solution for multiple purposes.  SNS ensures high availability by replicating messages across multiple availability zones, which improves reliability. Its user-friendly interface and APIs make integration with existing applications simple. With its global infrastructure, SNS offers fast message delivery with low latency worldwide. This scalable and dependable service plays a crucial role in real-time information sharing, making it an indispensable tool for modern cloud-based architectures and seamless communication between applications and users. Q6: What is AWS Disaster Recovery Solution? AWS Disaster Recovery Solution is the most prominently known AWS feature that helps reduce data loss due to its fast, reliable recovery systems dealing with possible network failures or attacks. In addition, disaster Recovery Solution creates backups or data replicas to keep data saved under any uncertain times. The program also helps generate better productivity as it is cost-effective, high-performance, and replicates data to protect from seasonal fluctuations in lower recovery times. Q7: What is Cloudformation in AWS? Juggling various AWS services can get complicated. Hence, Cloudformation is created to solve concerns with its library full of templates and extra AWS resources. Instead of seeking resources with every possible use, a library full of templates is easier to access. The program collects AWS resources to manage them in an organized manner for businesses and developers.  Q8: What are Availability zones and Regions in AWS? Availability zone in AWS stands for the geographical area where cloud services are centered and operate with redundant power and networking infrastructure. These availability zones are present inside the regions. The difference between these two is that the region constitutes a separate geographical area while the availability zone comprises multiple isolated places within regions.  Q9: Explain VPC in AWS. Virtual Private Cloud of VPC in AWS is a cloud computing service that provisions isolated networking clouds for better connectivity and networking. What sets it apart from the AWS service is that you have full control over your virtual experience. This means you can customize and use the network configuration according to your requirements. Furthermore, the virtual private cloud ensures protection against any interference or public access. Q10: What is the VPC-Peering Connection? VPC peering establishes a connection between two VPCs enabling it to route traffic between them. For example, creating a VPC peering connection can help transfer heavy files over the created link. However, VPC peering connection can only be established if the receiver accepts or rejects the request. How to prepare for the AWS interview? Besides practicing interview questions and answers, follow the basic interview preparation structure to stay ready. The essentials for the interview are researching about the company, comprehending the job description, and creating a well-formatted application. Finally, review fundamental AWS lessons for a quick revision. Make sure you know the basics well and answer the questions with utmost confidence and precision. Ensure you know the basics well and answer the questions confidently and precisely. If you wish to gain more insight and experience in the relevant sphere, head over to upGrad’s online program. upGrad offers a Master of Science in Computer Science program by Liverpool’s John Moores University, created for learners worldwide to earn proficiency in computer science specialization fields including Cyber Security, Full Stack Development, and Cloud Computing. The program is specifically designed to educate learners on up-to-date software development and other relevant programs to keep up with the changing times and trends.  upGrad strives to provide education that aligns with the latest market practices attracting over 40,000 learners from more than 85 countries. The curriculum, developed by industry experts and experienced faculty, integrates cutting-edge skills. Conclusion The AWS interview is no different from any other interview. As long as you have the right knowledge about its components and their apt functioning, the interview process will turn smoother. Run through all the found resources to polish your knowledge. Apart from individual preparation, digital training and certificates are some recent ways people are trying to brush up their AWS skills. 
Read More

by Mukesh Kumar

07 Sep 2023

22 Must-Know Agile Methodology Interview Questions & Answers in US [2024]
5467
Agile methodology interview questions can sometimes be challenging to solve. Studying and preparing well is the most vital factor to ace an interview with scrum success. So, we’ve put together a comprehensive guide on scrum interview questions as well as answers to help you gain access to numerous job opportunities. Learn Software Development Courses online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs or Masters Programs to fast-track your career. Keep reading to master your following Agile interview with the Agile interview questions and answers listed here.  22 Questions on Agile Methodology for Interviews and Answers 1. Discuss the concept of velocity within Agile. Answer: Velocity is a measurement calculated through the sum of all effort estimates based on user stories completed during an iteration. It is a way of predicting the amount of work Agile can do during a sprint and how long it will be required to finish an entire project. 2. Discuss the benefits of Pair Programming and why it is important. Answer: It is a process where two programmers work as a team, in which one programmer writes code while another reviews it. Both can change their roles. Benefits: Better code quality: As the second partner examines the code in tandem decreases the risk of making a mistake. The transfer of information is straightforward: One experienced partner can instruct another about the strategies and methods. 3. Discuss the Iterative and Incremental development process of Agile. Answer: The iterative and incremental development process is as follows: Iterative Design: Software is developed and handed over to the customer in response to feedback; the software is released in cycles and sprints. If the customer requests some modifications, the development team plans for the 2-second release that can be finished in a few sprints, and so on. Example: Release 1 software is created in five sprints and distributed directly to the client. Incremental development: Software develops in increments or parts. Each increment is only a small portion of the need completed. 4. What is an example of a test stub? Answer: A test stub is a small program that emulates a particular component within the system and replaces it. Its output is identical to that of the part it is replacing. 5. What is the difference between the product backlog and the sprint backlog? Sprint Backlog Product Backlog This is usually managed by the team that develops it. It contains only those features and requirements relevant to the particular sprint. It is regarded as a subset of the backlog of products.  It is typically owned and managed by the owner of the project. It is more focused on the ultimate purpose that the solution is aiming for. It typically contains every characteristic of the product along with the specifications of the product. It’s a compilation of everything needed to complete the entire procedure. It breaks down each step into a sequence of steps. 6. What is the distinction between the Agile methodology and traditional methodology for Software Development? Answer: The primary distinction between the two is as follows: Agile Software development: It is a method of iterative development employed to create complex software. With this approach, project teams can have the flexibility to adapt and ensure that the product is in line with the client’s requirements.   Classic Software Design: It is a linear method that is employed to develop simple software. This method is used when every process step typically occurs in a sequence. It is best suited in projects where the probability of changes is not significant in the project’s scope. 7. What is when you say agile development of software? Answer: It is an agile software process where performance and design are the main focus. The implementation and layout phases, in addition, incorporate additional tasks such as helping to meet needs and testing into these. In addition, it is more attentive to the expansion of coding than content. It has two development agendas: a) Group A developmental agenda: Needs integration and assessment- about one and a half months Policy design- two months The coding stage is four months long. Network integration and testing two months of network integration and testing Examine user acknowledgment-five weeks b) Group B developmental agenda: Since this plan is ad-hoc, it is divided into multiple levels. Reduplication is the process of determining the same amount of time. When each iteration is finished, a strong product and an innovative feature should be incorporated. 8. What is a Product Backlog? Answer: In agile teams, agile teams manage to keep their basic needs in check even after falling backward, and it’s called the Product Backlog within Scrum. 9. What is the role of product backlogs? Answer: A) It provides a listing of new features B) It alters the existing characteristics C) It corrects the bugs D) changes the structure 10. What is agility beneficial in responding to changes? Answer: They were adept at constructing the diversity of values shared in the context of trust and mutual respect, as well as the social values that resulted in an agile manifesto. 11. What is the purpose of standing-up meetings daily? Answer: A daily stand-up meeting is vital for any team which teams discuss, What percentage of work has been done? What plans are there to solve technical problems? What are the steps to take in order to finish the project, etc.? 12. What is the difference between the traditional Waterfall model and Agile testing? Answer: Agile testing is conducted in conjunction with the development process, unlike traditional waterfall models, where testing occurs after the development. Parallel, the agile testing process is carried out with small components, whereas with a waterfall approach, testing is carried out on the entire application. 13. Talk about Refactoring in brief. Answer: Modification to the code without altering its function to enhance performance is referred to as Refactoring. 14. State the principles of agile testing. Answer: The principles of agile testing are as follows: Continuous testing to guarantee that the product is being improved Constant feedback to make sure the product fits the needs of the business Testing requires active participation from team members in jobs like development and testing. The business team and user reps can be actively involved to help quickly gather input for each iteration. Clear and concise code guarantees that it is error-free throughout the iteration. 15. What exactly do you refer to by Refactoring? Answer: Refactoring is an essential process that involves the alteration or modification of the software’s internal structure with no change to its functionality or behavior outside of it. Developers alter or tweak using code to modify and enhance the structure of software. The most well-known and widely utilized refactoring technique in the agile software development process is known as Red-Green. Refactoring makes code more accessible, understandable, and tidy. The habit of constantly refactoring aids in making it easier to add and maintain the code. 16. What are Spike and Zero Sprint in Agile? Answer: Spike: This is typically a reference to a complicated and extensive customer story within software development that can’t be determined until the development team runs an investigation with a timebox.  Zero Sprint: The term is usually used to refer to the initial step or pre-preparation stage that occurs before the start of the sprint. It covers all tasks like setting up the development environment, making a backlog, etc. 17. What are the most viral values in accordance with the Agile manifesto? Answer: This is among the key questions for agile interviews that are primarily included in the agile manifesto. Individuals and information, useful software, intercourse with consumers, and the alteration of response are among the most crucial values. 18. Name one of the well-known tools that can be used to facilitate rapid software development. Answer: Atlassian Jira is a famous tool used for rapid software development. 19. Who is responsible for the management of the backlog of agile’s products? Answer: It is the Product Holder who is responsible for the product. 20. What is the best way for an agile team to achieve transparency on the backlog of articles? Answer: Every day, the team can work on refining the backlog with the assistance of the proprietor of the item. This allows for transparency in the backlogs. The backlogs are downloaded to check for future modifications. 21. Give examples of Quality strategies that are agile. Answer: Some quality strategies of Agile include: Refactoring Small feedback cycles Dynamic analysis of code Iteration 22. What is a tracer bullet? Answer: It could be described as a spike in the current architecture or the most current best practice set. Tracer bullets aim to look at how an end-to-end process would function and examine the potential. Popular Courses & Articles on Software Engineering Popular Programs Executive PG Program in Software Development - IIIT B Blockchain Certificate Program - PURDUE Cybersecurity Certificate Program - PURDUE MSC in Computer Science - IIIT B Other Popular Articles Cloud Engineer Salary in the US AWS Solution Architect Salary in US Backend Developer Salary in the US Front End Developer Salary in US Web developer Salary in USA Scrum Master Interview Questions How to Start a Career in Cyber Security Career Options in the US for Engineering Students .wpdt-fs-000020 { font-size: 20px !important;} Conclusion If you’ve read the above 22 agile methodology interview questions, you now have some understanding of the agile interview and the potentially asked agile methodology interview questions and answers. It is important to be aware of your fundamentals to crack any interview. If you want to learn about agile methodology from the best in the industry, check out upGrad’s Master of Science in Business Analytics course. This course will help you easily learn about agile methodologies in tackling interview questions on agile methodology. You can also check out our free courses offered by upGrad in Management, Data Science, Machine Learning, Digital Marketing, and Technology. All of these courses have top-notch learning resources, weekly live lectures, industry assignments, and a certificate of course completion – all free of cost! 
Read More

by Pavan Vadapalli

13 Apr 2023

12 Interesting Computer Science Project Ideas & Topics For Beginners [US 2023]
12151
Computer science is an ever-evolving field with various topics and project ideas for computer science. It can be quite overwhelming, especially for beginners. To help you get started, this comprehensive guide provides ten interesting computer science domains and different computer science project ideas in each domain to explore.  These project ideas can be used as mini-projects for CSE or final-year projects for computer science. That way, you will not only have implemented your knowledge but also developed real-life computer science skills to strengthen your portfolio. The list of possible computer science project topics is exceptionally vast and ever-growing. So, to keep things simpler, we have divided the field into different domains that are currently active. We then list different project ideas for computer science under each of these domains so that you can make your pick!  Learn Software Development Courses online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs or Masters Programs to fast-track your career. So, let’s get started and explore the world of computer science! 1. Data Science The data science field of computer science uses algorithms to find meaning and insights from data. Data scientists are often responsible for managing and analyzing large data sets. This data can come from many different sources, such as customer surveys and data from sensors like heart rate monitors. Once the data is collected, data scientists use data analysis tools to extract insights and information.  Data science projects are commonly used to help businesses manage their data more efficiently. These projects can help businesses categorize data, organize data sets, and even detect irregularities in the data that could pose a security threat. If you’re interested in data science, start by exploring tools used by data scientists and familiarizing yourself with the terminology and concepts. Once you grasp the basics, you can explore more advanced concepts and topics. Some of the computer science projects you can explore in this domain include:  Fake News Detection Using Python.  Detection of Road Lane Lines Sentimental Analysis Speech Recognition Gender Detection and Age Prediction Detecting Frauds 2. Machine Learning Machine learning is a computer science field that uses mathematical models to train computers and machines to learn from existing data. The concept of machine learning originated from the field of artificial intelligence. Today, machine learning is used in diverse industries and applications.  For example, it predicts customer behavior and informs marketing strategies. It’s also used in healthcare to identify and predict disease outbreaks and epidemics. If you’re interested in machine learning, start by exploring tools used by ML scientists and researchers and equip yourself with the required basics. Once you’ve done that, here are some computer science project ideas to explore in this domain:  Sales Forecasting Recommender Systems Stock Price Prediction Email Spam-Filtering System Sign Language Recognizer Music Genre Classification System 3. Image Recognition The subfield of computer science, computer vision, studies how computers can understand images. Computer vision is useful for several applications; the most prominently known is image recognition. For example, it can be used to detect if a package has been delivered and where it needs to be delivered.  Reading fundamental computer vision and image recognition textbooks is the best way to strengthen your foundation. Once you’ve done that, you can explore the following computer science projects involving computer vision and image recognition: People Counting System Detecting Colors in Images Object Tracking QR Code Scanner Object Recognition 4. Natural Language Processing Natural language processing, also known as NLP, studies how computers can understand human language. NLP can be used for many applications, including spam detection and sentiment analysis. Sentiment analysis determines the overall attitude or feeling towards a specific product or service. For example, it can determine if a customer review is positive or negative.  The best way to approach NLP is by getting hands-on with different possibilities in the field. For that, you can look at the following computer science project ideas to get started: Customer Support Bot Language Identifier System Autocomplete System Predictive Text Generator Media Monitor 5. Web Development Web development is building websites to host your content and services. It can be a challenging project, but it can also be gratifying. There are two main types of web development you can explore. Front-end web development is designing and building an interface for a website. Back-end web development is setting up and managing a website’s underlying code. The best way to get around web development is by first strengthening your front-end basics of HTML, CSS, and Vanilla JavaScript. From there, you can dive deeper and explore other JS libraries used for front-end and back-end work. To get comfortable working with these, you can try out any of the following computer science projects in web development: Online Complaint Registration and Management System Organ Donation System Student Feedback Review System E-Commerce Platform  Online Faculty Staff Directory for Universities Social Media Platforms / Communities Product Ratings / Reviews Platform 6. Blockchain A blockchain is a decentralized database that uses a distributed network to store data and run programs. A peer-to-peer network of computers manages the decentralized database. These networks, also known as nodes, verify transactions and maintain the integrity of the database.  Blockchain technology is used to power several different applications, including cryptocurrencies. Start by exploring the different types of blockchain and familiarizing yourself with the terminology and concepts. You can use the following final-year project ideas to familiarize yourself with the working of blockchain:  Crowdfunding Platform Using Smart Contracts Peer-To-Peer Ridesharing Blockchain-Based Voting System Loyalty Points Exchange System Fake Products Identification System 7. AI & Robotics Artificial intelligence and robotics are two topics that go hand in hand. Artificial intelligence refers to designing computers that can think and learn like humans, while robotics refers to designing machines capable of performing tasks and interacting with humans. Artificial intelligence and robotics are used to power a variety of different applications. For example, robots can be used in manufacturing plants to assemble products and clean the workspace. Here are some mini projects for CSE you can work on if you wish to explore the field of AI and Robotics: Stair Climber Robot Pick and Place Robotic Vehicle Mobile Autonomous Robot Solar Floor Cleaner Robot Robotic Arm Controlled by Touch Screen Display 8. Game Development Game development is another rapidly-evolving field in Computer Science. This field is particularly useful for people interested in computer graphics, such as vector graphics, raster graphics, and 3D graphics.  If you’re interested in creating games, you can start by researching game engines and development. Once you’ve got an idea of what games are all about, you can explore game development topics, such as 3D game development and artificial intelligence in games. In terms of final year project ideas in this domain, here are some that you can try out:  Rock, Paper, and Scissor Games using Python Sudoku Games Racing Games Pinball Games Card Games Board Games Puzzle Games Social Network Games 9. Cybersecurity The cybersecurity field studies the protection of computers and networks from cyber threats, such as viruses and malicious hackers. If you’re interested in cybersecurity, you can explore the various sub-branches of cybersecurity, like network security, programming, and database administration. Once you’ve got a better idea of what cybersecurity is all about, you can try out any of the following computer science project ideas to get more hands-on with your knowledge:  Anomaly Detection, Intrusion, Prevention  Stalking Threats  Geopolitical Cyber Security Systems Cyber Security Data Analytics 10. Virtual Reality Virtual reality is an immersive computer-generated experience. In virtual reality, you can immerse yourself in a computer-generated environment. This environment can be anything from sitting in space to exploring the ocean. VR is mainly used for gaming, but its implementation in other industries, like healthcare and education, is actively observed. If you’re interested in virtual reality, you can explore the following project ideas:  Ruined Castle Walk VR Game Farming in Village Simulation using VR  Large Warehouse Simulation Modern Apartment Simulation 11. Network Security Network security field deals with preventing unauthorized use, access, modification, or inspection of confidential information. As a result, network security is an extremely important domain of work for the fruitful functioning of businesses. To explore network security, you can check out the following computer science project ideas:  A Survey of Desktop-Grid Scheduling Scalable Data Race Detection for Lock-intensive Programs with Pending Period Representation Core Maintenance in Dynamic Graphs: A Parallel Approach based on Matching 12. Internet of Things IoT describes an intricately connected network with multiple different physical objects containing sensors and smart software in order to facilitate the exchange of information. IoT is an ever-growing domain of work, and there are expected to be around 22 billion IoT devices by 2025. Here are some project ideas for you to explore under this domain:  Smart Agriculture System Weather Reporting System Face Recognition Bot Air Pollution Monitoring System Liquid Level Monitoring System Popular Courses & Articles on Software Engineering Popular Programs Executive PG Program in Software Development - IIIT B Blockchain Certificate Program - PURDUE Cybersecurity Certificate Program - PURDUE MSC in Computer Science - IIIT B Other Popular Articles Cloud Engineer Salary in the US AWS Solution Architect Salary in US Backend Developer Salary in the US Front End Developer Salary in US Web developer Salary in USA Scrum Master Interview Questions How to Start a Career in Cyber Security Career Options in the US for Engineering Students .wpdt-fs-000020 { font-size: 20px !important;} In Conclusion As you can see, there is a reasonable amount of project domains as well as ideas if you are willing to spend some time and understand things in depth. However, if you wish to dive even deeper, more than these projects alone might be required. It would be best if you also have an in-depth conceptual and theoretical understanding of crucial areas in computer science.  To help you with that, upGrad offers a Master of Science in Computer Science in collaboration with LJMU as well as IIIT-Bangalore. This course comes with six specializations from which you can select one and pave your career. Experience the upGrad advantage and avail the benefits of personalized mentoring and real-life problem-solving. Check out our course page and get yourself enrolled soon!
Read More

by Pavan Vadapalli

23 Mar 2023

Begin your Crypto Currency Journey from the Scratch
5523
Cryptocurrency is the emerging form of virtual currency, which is undoubtedly also the talk of the hour, perceiving the massive amount of attention it is seeking globally. It uses encryption to prevent counterfeiting. Most cryptocurrencies are intangible, but some have ventured into the physical realm through credit cards.  Although it is still not legally recognized in many countries, it has received significant exposure in the past few years and has received legal status from many countries like the USA, Canada, Australia, Denmark, France, etc. However, investing in cryptocurrency can be a gamble if it is done without proper research. You can easily learn cryptocurrency trading with a reliable course online though knowing its fundamentals is a prerequisite before enrolling for a specialization course.  If you want to get an overview of how does cryptocurrency work and understand the technology that drives it, keep reading this article.  How does cryptocurrency work? Blockchain technology is what runs the show for cryptocurrency. It records transactions and keeps track of who owns what cryptocurrency. The computer is used to solve complex mathematical problems through a technique called mining. This helps in earning coins that, in turn, aid in the construction of cryptocurrency units. Users purchase the currencies from brokers and use encrypted wallets to store and spend them suited to their needs. Many people also learn cryptocurrency trading to invest in better opportunities.  Records are preserved across several computers on a network using a blockchain’s distributed ledger. Each computer is referred to as a node. These nodes do the verification and storage of data. When new transactions are concluded, they are added to a “block” of data, which is subsequently added to the chain. As new transactions occur, the entire ledger can be updated.  What is Blockchain technology? In order to understand how does cryptocurrency work, you must comprehend the basics of blockchain technology.  A blockchain is simply a digital ledger of transactions. It is replicated and distributed across the blockchain’s complete network of computer systems. Blockchain is significant because it eliminates the risk of fraudsters tampering with your data. Besides being used in cryptocurrency, it is also used in many other industries like banking, real estate, pharma, etc.  Advantages of using cryptocurrency Secure transactions Security is a major concern for most people when it comes to cryptocurrency. The blockchain ledger is built on many mathematical problems that are difficult to decode. Hence your privacy and security are never at risk. It is also interesting to note that cryptocurrency uses pseudonyms that are not related to any user, account, or stored data that may be traced to a profile. So it has a very tight security system. Fast transaction Cryptocurrency transactions are typically lightning fast. Not only domestic transactions but also cross-border transactions are completed conveniently. This is possible because there are minimal barriers to overcome.  Decentralized system Cryptocurrencies are mostly decentralized. Many cryptocurrencies are under the control of the creators who use them and people with a considerable amount of coins. Sometimes, it is also controlled by a firm to develop it before it is launched into the market. Decentralization contributes to the currency being free from monopoly and also in restraint because no single entity can determine its value and flow. This helps in keeping the coin stable and secure. Fast growth The cryptocurrency market is growing at an exponential rate. Projections of its growth indicate an increase of 16.43% annual rate (CAGR 2022-2027), resulting in a total of US$74.30 billion by 2027.  Cost-effective The charges per transaction are much lower in cryptocurrency. Usually, cross-border transactions can be expensive due to the high charges charged by the companies assisting transactions. On the other hand, cryptocurrency transactions are cost-effective, affordable, and much lesser when compared with conventional financial services.  Safeguard against inflation  Cryptocurrencies act as a kind of inflation protection. Various cryptocurrencies like Bitcoin incorporate supply-control systems and can operate as an inflation hedge. For example, the total amount of coins that will ever be produced in Bitcoin has a strict limit. As demand grows for Bitcoin, its value rises, keeping up with the market, and, in the long term, this helps prevent inflation. Disadvantages of Cryptocurrency Subject to price volatility Investing in the crypto market can be a challenging game. Since this market thrives on speculation, it is subject to price volatility. While your profits might skyrocket, you must also be prepared to accept losses.  Illicit transactions While the privacy maintained in cryptocurrency is beneficial, it also has a downside. Due to the high privacy standards, governments often fail to trace users’ details. This results in illegal transactions and poses a threat to society at large.  Financial losses Although it is an advantage that the security system is extremely robust, if any user forgets their login credentials, they will practically never get back their coins. The coins they have in their wallet will remain as they are. This can result in serious financial losses.  No chance of retrieval of money  Sometimes, users might carry out transactions by mistake. In cryptocurrency, funds are not getting back even if the transfer was made by mistake. Due to this, fraud can become rampant, and any steps cannot be taken against related entities because their details cannot be tracked.  No proof of long-term profitability  Although the projections about the cryptocurrency market look very bright, it has been around only since 2008. This time frame is insufficient to prove that cryptocurrency is a wise long-term investment decision.  Trending cryptocurrencies  While most of us might have heard of the widely talked about cryptocurrency- ‘Bitcoin’, several others are gaining prominence with time. Here is a list of some popular cryptocurrencies- Ethereum  The second most heard cryptocurrency is Ethereum. It is often seen as an alternative to Bitcoin. Like all other cryptocurrencies, Ethereum is dependent on Blockchain technology. Ethereum’s purpose is to establish a decentralized suite of financial products that anybody on the planet can freely access. Dogecoin Dogecoin was introduced in 2013 when its creators, Billy Markus and Jackson Palmer, launched it as a joke reflecting on the cryptocurrency market’s huge speculation. Dogecoin, unlike its contemporaries, is considered to be an inflationary coin. You can trade in Dogecoin with merchants who accept it.  Litecoin  Litecoin has innovated and established speedier payment systems and processes to allow for more transactions. Litecoin is a digital currency that enables low-cost payments to anyone on the earth. Like other cryptocurrencies, Litecoin is a transnational payment network that is open source and entirely decentralized. Polkadot Polkadot is a Proof of Stake (PoS) cryptocurrency. The purpose of Polkadot is to provide compatibility with other blockchains. The protocol is connected to blockchains with and without permission and oracles. This allows the collaboration of systems under one entity. Tether Tether is a stablecoin that aims to smooth out price fluctuations to attract users who may otherwise be wary. The price of Tether is set at $1 per coin. Tether is widely employed as a middleman when traders move from one cryptocurrency to the other. They use Tether instead of returning to dollars.  XRP XRP is a cryptocurrency supported by the XRP Ledger and introduced by Ripple, its parent company. While its validation software is available to anyone, it maintains distinct node lists.  If you want to invest in cryptocurrency, you must learn crypto currency in detail with Blockchain Certificate Program by upGrad. It will not only help you make wiser investment decisions when it comes to putting your money in cryptocurrency but also learn more about blockchain technology and its applications in various other industries. Key highlights Learn more about Ethereum and Hyperledger Fabric. Learn about Blockchain applications in banking, pharmaceuticals, and real estate. Mentorship from industry professionals on an individual basis. Obtain certification from a Top 10 US Public University. Conclusion  Venturing into cryptocurrency needs fundamental conceptual knowledge based on blockchain, its parent technology. This can only be achieved through extensive study that a reliable online course or detailed books can offer you. While our list works as a great kickstart to tickle your interest in cryptocurrency and blockchain, blockchain and crypto programs from educational platforms like upGrad can be a wise decision. Following the growing demand for crypto professionals, starting today would help you future-proof your career. 
Read More

by Pavan Vadapalli

23 Mar 2023

Complete SQL Tutorial for Beginners in 2024
5715
SQL (Structured Query Language) has been around for decades and is a powerful language used to manage and manipulate data. If you’ve wanted to learn SQL but don’t know where to start, you’ve come to the right place! This ultimate guide to SQL is the perfect step-by-step SQL tutorial for beginners in 2022. You’ll learn SQL basics, how to write queries, and more advanced topics such as managing databases, creating tables, and using views through this SQL server tutorial. With the help of this guide, you’ll be able to confidently use SQL to store and retrieve data for your projects. So, let’s get started! What is the Difference Between SQL and NoSQL? SQL (Structured Query Language) is a server language used to store and manage data. It’s often used in conjunction with relational databases, which store data in tables with columns and rows.  SQL is a type of database management language (DBML) that is structured, meaning that it follows a set format and rules. There are several different types of DBMLs, including SQL, NoSQL, and NewSQL. NoSQL is a type of DBML that does not include SQL. It’s a more open-ended language, meaning it can be applied to various data models, unlike SQL, which is more structured and works best with relational data models. NewSQL, on the other hand, is a more modern version of SQL that includes some updates, such as new data types. Checkout Software Development Courses at upGrad. Setting up a Database for your Project The first step in any SQL tutorial is learning to set up a database for your project. If you’re using a cloud database service such as Firebase, you don’t need to set up your own database. But if you’re working on a project that requires a local database, there are a few things you need to do.  First, open your command line and navigate to your project’s directory using the “cd” command (e.g., cd Desktop/myProject/).  Create a database using the following SQL query: CREATE DATABASE ‘myDatabaseName’. You can then close the command line and open your preferred SQL editor, such as Visual Studio Code or SQL Server Management Studio. Once you have set up your database, now you can get behind SQL basics and try around different queries and commands to see them in action in real time.  How to Write SQL Queries Now, let’s talk about how to write basic SQL queries.  Every SQL query has three basic parts: The SELECT clause, the FROM clause, and the WHERE clause.  The SELECT clause is where you specify which data you’d like to retrieve. The FROM clause specifies the tables from where you can retrieve the data. The WHERE clause specifies which conditions the data must meet to be included in the results. Here’s an example of a simple SELECT query:  SELECT * FROM ‘customers’;  This query will pull all customers from the ‘customers’ table. Here’s another example:  SELECT ‘firstName’, ‘lastName’ FROM ‘customers’ WHERE ‘customers’. ’state’ = ‘Texas’;  This query will select the firstName and lastName fields from the ‘customers’ table and only include customers who live in Texas. You can build on these basic queries and execute more complex and interlinked commands as well, depending on what you wish to achieve. However, the basic structure of all of those SQL queries will also be the same as described above. The syntax remains the same! Check our US - Data Science Programs Professional Certificate Program in Data Science and Business Analytics Master of Science in Data Science Master of Science in Data Science Advanced Certificate Program in Data Science Executive PG Program in Data Science Python Programming Bootcamp Professional Certificate Program in Data Science for Business Decision Making Advanced Program in Data Science The Basics of Creating Tables, Views, and Indexes Now that we have briefly gone through some SQL basics, especially executing queries, let’s take this SQL tutorial to the next level and talk about tables, views, and indexes. Starting with tables.  Creating tables in SQL is easy – you just need to use the CREATE TABLE query and specify the table name and its columns. For example:  CREATE TABLE ‘customers’ ( ‘id’ INT PRIMARY KEY, ‘firstName’ VARCHAR(40) NOT NULL, ‘lastName’ VARCHAR(40) NOT NULL, ‘state’ VARCHAR(40) NOT NULL, ‘emailAddress’ VARCHAR(40) NOT NULL )  Here is a breakdown of the query mentioned above:  Using the query, we are creating a table by the name ‘customers’. The table has the following attributes (or columns): 1. Id – with data type as ‘int’. This attribute is also a Primary Key, which means that one cannot leave this detail empty while filling the table and also that this attribute will be used while referencing this table from some other table.  2.firstName – with data type as ‘varchar’ with a maximum length of 40 characters. This attribute is set as Not Null, which implies that this field also cannot be left empty.  3. Likewise, lastName, state, and emailAddress are three more attributes with the same properties as the firstName attribute. Once you’ve created the table, you can insert data into it using the INSERT INTO query, like INSERT INTO ‘customers’ (‘id’, ‘firstName’, ‘lastName’, ‘state’, ‘emailAddress’) VALUES (1, ‘John’, ‘Doe’, ‘Texas’, ‘john.doe@example.com’);  You can also delete tables by using the DROP TABLE query like so: DROP TABLE ‘customers’;  Now, let’s talk about views. Views are basically tables that exist only in SQL’s memory. Views are helpful because they can be used to manipulate data without actually modifying the original data.  Let’s say you have a table with customers’ information called ‘customers’, and you want to know the average age of all customers. To do this, you can create a view called ‘averageAge’ that sums up the ages of all customers and divides the total by the number of customers. Likewise, you can also create indexes. Indexes can be thought of as a tool to retrieve data from the database in a faster manner. The users cannot see the indexes, they are just in order to speed up searches/queries. You can do this by using the following syntax:  CREATE INDEX index_name ON table_name (column1, column2, …); Advanced topics in SQL: Using Transactions and Stored Procedures Transactions allow you to group multiple SQL queries together so that they only succeed or fail as a whole. This is useful if you need to run multiple queries because they might interact with each other and cause problems if they’re not grouped together.  You can start a transaction using the BEGIN TRANSACTION query and end it using the COMMIT TRANSACTION query. You can also use the ROLLBACK TRANSACTION query to end the transaction and discard any changes.  You can use a stored procedure if you need to group multiple queries together. Just like you would use a function in other programming languages, a stored procedure is a piece of code you can use in SQL. You can create a stored procedure using the CREATE PROCEDURE query and end it using the DROP PROCEDURE query. How to Optimize your SQL Queries for Better Performance Now that you know SQL basics and how to write queries, let’s talk about how to optimize your SQL queries for better performance.  Ensure your data is organized and your tables aren’t too large. Large tables can cause your queries to run slowly, as well as cause potential issues with your database.  Make sure that your indexes are created correctly. If your data is relational, then indexes can help speed up your queries.  Since the database engine processes SQL queries, make sure that your database engine is optimized and fast. Optimize your database engine by adjusting its settings, such as the number of concurrent connections, thread settings, and CPUs. SQL Resources for Beginners Now that you’ve reached the end of this SQL guide, you’re well on your way to becoming an SQL pro! If you’d like to continue learning, there are a few resources that you can check out. The first one is named “Learn SQL the Hard Way”. This resource is a complete step-by-step guide that teaches you everything you need about SQL. It even includes exercises at the end of each chapter to help you practice what you’ve learned. Another great resource is the “W3Schools SQL Tutorial”. This website also has a comprehensive SQL tutorial that’s easy to understand and follow.  In Conclusion We gave you a complete yet brief overview of SQL in this article. The idea is to help you get started in your SQL journey so that you get comfortable handling projects. After all, SQL (or database management, in general) sits at the core of any software development endeavor. This is especially true if you’re aspiring to become a full stack developer – because then, you would be expected to know and be comfortable working on front-end and back-end, as well as performing database management activities.  At upGrad, we understand the importance of full-stack development in today’s day and age and also believe that a well-rounded full-stack developer needs proper training and practice on all important fronts. In line with that, we have launched a 13-month Executive Post Graduate Program in Software Development – Full Stack Development. The course takes you through the world of full-stack development, accompanied by industry experts and leaders.  Check out the course for more details, and get yourself enrolled soon! 
Read More

by Pavan Vadapalli

22 Mar 2023

Complete SQL Tutorial for Beginners in 2024
5099
SQL (Structured Query Language) has been around for decades and is a powerful language used to manage and manipulate data. If you’ve wanted to learn SQL but don’t know where to start, you’ve come to the right place! This ultimate guide to SQL is the perfect step-by-step SQL tutorial for beginners in 2024. You’ll learn SQL basics, how to write queries, and more advanced topics such as managing databases, creating tables, and using views through this SQL server tutorial. With the help of this guide, you’ll be able to confidently use SQL to store and retrieve data for your projects. So, let’s get started! What is the Difference Between SQL and NoSQL? SQL (Structured Query Language) is a server language used to store and manage data. It’s often used in conjunction with relational databases, which store data in tables with columns and rows.  SQL is a type of database management language (DBML) that is structured, meaning that it follows a set format and rules. There are several different types of DBMLs, including SQL, NoSQL, and NewSQL. NoSQL is a type of DBML that does not include SQL. It’s a more open-ended language, meaning it can be applied to various data models, unlike SQL, which is more structured and works best with relational data models. NewSQL, on the other hand, is a more modern version of SQL that includes some updates, such as new data types. Checkout Software Development Courses at upGrad. Setting up a Database for your Project The first step in any SQL tutorial is learning to set up a database for your project. If you’re using a cloud database service such as Firebase, you don’t need to set up your own database. But if you’re working on a project that requires a local database, there are a few things you need to do.  First, open your command line and navigate to your project’s directory using the “cd” command (e.g., cd Desktop/myProject/).  Create a database using the following SQL query: CREATE DATABASE ‘myDatabaseName’. You can then close the command line and open your preferred SQL editor, such as Visual Studio Code or SQL Server Management Studio. Once you have set up your database, now you can get behind SQL basics and try around different queries and commands to see them in action in real time.  How to Write SQL Queries Now, let’s talk about how to write basic SQL queries.  Every SQL query has three basic parts: The SELECT clause, the FROM clause, and the WHERE clause.  The SELECT clause is where you specify which data you’d like to retrieve. The FROM clause specifies the tables from where you can retrieve the data. The WHERE clause specifies which conditions the data must meet to be included in the results. Here’s an example of a simple SELECT query:  SELECT * FROM ‘customers’;  This query will pull all customers from the ‘customers’ table. Here’s another example:  SELECT ‘firstName’, ‘lastName’ FROM ‘customers’ WHERE ‘customers’. ’state’ = ‘Texas’;  This query will select the firstName and lastName fields from the ‘customers’ table and only include customers who live in Texas. You can build on these basic queries and execute more complex and interlinked commands as well, depending on what you wish to achieve. However, the basic structure of all of those SQL queries will also be the same as described above. The syntax remains the same! Check our US - Data Science Programs Professional Certificate Program in Data Science and Business Analytics Master of Science in Data Science Master of Science in Data Science Advanced Certificate Program in Data Science Executive PG Program in Data Science Python Programming Bootcamp Professional Certificate Program in Data Science for Business Decision Making Advanced Program in Data Science The Basics of Creating Tables, Views, and Indexes Now that we have briefly gone through some SQL basics, especially executing queries, let’s take this SQL tutorial to the next level and talk about tables, views, and indexes. Starting with tables.  Creating tables in SQL is easy – you just need to use the CREATE TABLE query and specify the table name and its columns. For example:  CREATE TABLE ‘customers’ ( ‘id’ INT PRIMARY KEY, ‘firstName’ VARCHAR(40) NOT NULL, ‘lastName’ VARCHAR(40) NOT NULL, ‘state’ VARCHAR(40) NOT NULL, ‘emailAddress’ VARCHAR(40) NOT NULL )  Here is a breakdown of the query mentioned above:  Using the query, we are creating a table by the name ‘customers’. The table has the following attributes (or columns): 1. Id – with data type as ‘int’. This attribute is also a Primary Key, which means that one cannot leave this detail empty while filling the table and also that this attribute will be used while referencing this table from some other table.  2.firstName – with data type as ‘varchar’ with a maximum length of 40 characters. This attribute is set as Not Null, which implies that this field also cannot be left empty.  3. Likewise, lastName, state, and emailAddress are three more attributes with the same properties as the firstName attribute. Once you’ve created the table, you can insert data into it using the INSERT INTO query, like INSERT INTO ‘customers’ (‘id’, ‘firstName’, ‘lastName’, ‘state’, ‘emailAddress’) VALUES (1, ‘John’, ‘Doe’, ‘Texas’, ‘john.doe@example.com’);  You can also delete tables by using the DROP TABLE query like so: DROP TABLE ‘customers’;  Now, let’s talk about views. Views are basically tables that exist only in SQL’s memory. Views are helpful because they can be used to manipulate data without actually modifying the original data.  Let’s say you have a table with customers’ information called ‘customers’, and you want to know the average age of all customers. To do this, you can create a view called ‘averageAge’ that sums up the ages of all customers and divides the total by the number of customers. Likewise, you can also create indexes. Indexes can be thought of as a tool to retrieve data from the database in a faster manner. The users cannot see the indexes, they are just in order to speed up searches/queries. You can do this by using the following syntax:  CREATE INDEX index_name ON table_name (column1, column2, …); Advanced topics in SQL: Using Transactions and Stored Procedures Transactions allow you to group multiple SQL queries together so that they only succeed or fail as a whole. This is useful if you need to run multiple queries because they might interact with each other and cause problems if they’re not grouped together.  You can start a transaction using the BEGIN TRANSACTION query and end it using the COMMIT TRANSACTION query. You can also use the ROLLBACK TRANSACTION query to end the transaction and discard any changes.  You can use a stored procedure if you need to group multiple queries together. Just like you would use a function in other programming languages, a stored procedure is a piece of code you can use in SQL. You can create a stored procedure using the CREATE PROCEDURE query and end it using the DROP PROCEDURE query. How to Optimize your SQL Queries for Better Performance Now that you know SQL basics and how to write queries, let’s talk about how to optimize your SQL queries for better performance.  Ensure your data is organized and your tables aren’t too large. Large tables can cause your queries to run slowly, as well as cause potential issues with your database.  Make sure that your indexes are created correctly. If your data is relational, then indexes can help speed up your queries.  Since the database engine processes SQL queries, make sure that your database engine is optimized and fast. Optimize your database engine by adjusting its settings, such as the number of concurrent connections, thread settings, and CPUs. SQL Resources for Beginners Now that you’ve reached the end of this SQL guide, you’re well on your way to becoming an SQL pro! If you’d like to continue learning, there are a few resources that you can check out. The first one is named “Learn SQL the Hard Way”. This resource is a complete step-by-step guide that teaches you everything you need about SQL. It even includes exercises at the end of each chapter to help you practice what you’ve learned. Another great resource is the “W3Schools SQL Tutorial”. This website also has a comprehensive SQL tutorial that’s easy to understand and follow.  In Conclusion We gave you a complete yet brief overview of SQL in this article. The idea is to help you get started in your SQL journey so that you get comfortable handling projects. After all, SQL (or database management, in general) sits at the core of any software development endeavor. This is especially true if you’re aspiring to become a full stack developer – because then, you would be expected to know and be comfortable working on front-end and back-end, as well as performing database management activities.  At upGrad, we understand the importance of full-stack development in today’s day and age and also believe that a well-rounded full-stack developer needs proper training and practice on all important fronts. In line with that, we have launched a 13-month Executive Post Graduate Program in Software Development – Full Stack Development. The course takes you through the world of full-stack development, accompanied by industry experts and leaders.  Check out the course for more details, and get yourself enrolled soon! 
Read More

by Pavan Vadapalli

22 Mar 2023

Explore Free Courses

Schedule 1:1 free counsellingTalk to Career Expert
icon
footer sticky close icon