To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Regulators are increasingly aware of the practical implication of such phenomena as algorithmic bias, price discrimination, blackbox AI as well as the misuse of the personal information of consumers. The dangers of algorithmic exploitation in the context of mass market consumer transactions is underexplored. The chapter describes how technology-driven exploitative commercial practices have passed under the legal and regulatory radar. It examines the extent recent regulatory addresses the impact of such practices.
Despite the benefits of the convergence of AI in ecommerce, it is necessary to address some concerns. The presence of AI-powered platforms raises significant challenges to consumer autonomy. This chapter discusses the overlap and interplay among three main legal regimes – EU AI Act Proposal, Digital Services Act (DSA), and EU Consumer Law.These laws will need to be amended with new articles to adequately address AI-specific concerns
A heap is a tree-based data structure that’s designed to quickly return the maximum or minimum of its items. Like a search tree, it maintains a special ordering among its nodes, and takes advantage of the hierarchical nature of binary trees to perform its operations in O(log n) time. Heaps are the primary implementation of the priority queue abstract data type. Like the first-in-first-out queues we studied in Chapter 13, a priority queue supports operations to insert and remove elements, but also maintains an ordering among its items. Polling the queue returns the next item according to the underlying ordering, rather than strictly returning items in FIFO order. Priority queues are used in applications that need to continually fetch the “next” item of a dynamic set that may change over time. A common application is ordering events by time in a simulation program.
Seymour Papert published Mindstorms in 1980. Subtitled Children, Computers, and Powerful Ideas, the book advocated for making computational thinking a core part of the curriculum for young children (Papert, 1980). Mindstorms was influential in computer education circles, and the approaches it described were the first exposure to programming and computer science for many children. LEGO later adopted the name for a line of programmable building sets.
The previous two chapters introduced hash functions and hash tables. In this chapter, we’ll combine hash tables with lists to construct a search engine index. Our index will map a search word to the list of locations where that word occurs in a set of text documents. The data for our example search engine will come from the plays of William Shakespeare, the most influential English-language dramatist in history. We’ll work primarily with the text of Macbeth. The play provides a good development example because the text is rich enough to be interesting, but the structured script format makes it easy to extract everything we need with a reasonable amount of code.
The chapter examines the issue of civil liability in the framework of damages resulting from the use of such autonomous systems. A particular emphasis is placed on the importance of access to justice – of enhancing access for victims of harm to remedies and relief – rather than more abstract or conceptual considerations of the appropriateness of a particular regulatory solution
The stack is the Incredible Hulk of data structures: superficially dumb, but so strong that it doesn’t matter. Stacks have only a few basic operations and they’re easy to implement, but they unlock a number of algorithms that are both theoretically powerful and practically important. You may recall that we previously discussed the role of the stack in recursion, and there’s a connection between the stack as an explicit data structure and recursive methods that use a stack implicitly.
Up to this point we’ve focused on introducing the Java language and – starting with the previous chapter – the technique of algorithm analysis. We’re now ready to put that machinery to work by describing our first important new data structure: lists. A list is like an array, in that it represents an ordered sequence of data values, but lists are more flexible: They support operations for dynamically inserting and removing data as the program executes. We’ve already used Java’s built-in ArrayList class to manage a collection of values; now we’re ready to talk about how it’s implemented internally.
The last chapter ended on a down note, when we realized that the standard binary search tree can’t guarantee O(log n) performance if it isn’t balanced. This chapter introduces self-balancing search trees. All three of the trees we’ll examine – 2-3-4 trees, B-trees, and red–black trees – implement search tree operations, but perform extra work to ensure that the tree stays balanced.
The responsibilitiesand liability of the persons and organisations involved in the development of AI systems are not clearly identified. The assignment of liability will need government to mo e from a risk-based to a responsibility-based system. One possible approach would be to establish a pan-EU compensation fund for damages caused by digital technologies and AI, financed by the industry and insurance companies.
Arrays are Java’s fundamental low-level data structure, used to manage fixed-size collections of items. Chapter 2 introduced ArrayList, which implemented a resizable sequential collection of data items, similar to Python’s lists. Arrays are lower-level, but they’re often the best choice for representing fixed-size collections of items, such as matrices. Arrays are also the basic building block of many higher-level data structures. Therefore, understanding how to create and manipulate basic arrays is an essential skill.
This chapter examines diverse aspects of new technologies that are disrupting traditional consumer protection. These include phenomena such as consumer profiling or commercialization of data. It can be concluded that artificial intelligence represents a particular challenge for consumer law and policy. Consumer law should be technologically neutral. Irrespective of the technology deployed, the level of consumer protection needs to be always maintained. However, consumer law requirements must never be seen as obstacles to the innovation and the development of new technologies; and establishing the right balance between these two values remains a particular challenge.
The evolutionary development of advanced systems (AS) leads to a necessary rethinking of how they can be supported methodically and in terms of processes in product development. Advanced systems engineering (ASE) offers a novel and holistically adaptive approach to facing such challenges in a structured way. However, many of the ASE use cases relate to the development of systems as products, product networks or individual projects. The additional consideration of entire modular product families within AS offers a further decisive advantage for companies, organisations and the people in ASE. By considering modular product families along the entire life cycle in a product family engineering (PFE), the approaches of ASE can bring their impact and potential to additional system levels occurring when considering product families. The systems, which become complex through variety and collaboration, are broken down into their system elements in a structured way and prepared for a common interdisciplinary understanding, as conveyed by ASE. In this paper, the PFE is presented in excerpts using examples of various aspects and points in time of the product’s life as a complementary approach for ASE.
Recursion is a fundamental concept in computer science. A recursive algorithm is one that defines a solution to a problem in terms of itself. That is, recursive techniques solve large problems by building up solutions of smaller instances of the same problem. This turns out to be a powerful technique, because many advanced algorithmic problems and data structures are fundamentally self-similar.
The chapter addresses the notion of psychological harm inflicted upon consumers by AI systems. It ponders what phenomena could be considered psychological harm, analyzes how AI systems could be causing them, and provides an overview of the legal strategies for combating them. It demonstrates that the risk posed to consumers’ mental health by AI systems is real and should be addressed, yet the approach taken by the EU in its AIA Proposal is suboptimal.
Pinterest is a social media platform that allows users to assemble images or other media into customized lists, then share those lists with others. Pinterest calls these lists “pinboards” and the items added to each board “pins,” analogous to real-world physical bulletin boards. Like other social media systems, Pinterest wants to recommend new content to its users to keep them engaged with the service. In 2018, Pinterest introduced a system called Pixie as a component of their overall recommendation infrastructure (Eksombatchai et al., 2018). It uses a graph model to represent the connections among items, then explores that graph in a randomized way to generate recommendations. In this chapter, we’ll build our own system based on the graph algorithms used by Pixie.