# data[].attributes.attachment_link.title
Around the World in 80 Games - Marcus du Sautoy

# data[].attributes.attachment_link.title
Algorithms - The Secret Rules of Modern Living - BBC documentary

# data[].attributes.body
https://shorturl.at/fuVZ4

# data[].attributes.headline
Java Tutorials - Full Java Course for Beginners (Alex Lee)

# data[].attributes.subject
Java Tutorials - Full Java Course for Beginners (Alex Lee)

# data[].attributes.attachment_link.title
Java Full Course For Beginners by Alex Lee

# data[].attributes.attachment_link.description
Java full course for beginners! This playlist is for complete beginners who want to learn Java and is the ultimate Java full course for free! Here are all of…

# data[].attributes.headline
Git and GitHub Tutorials - Introduction to Git

# data[].attributes.subject
Git and GitHub Tutorials - Introduction to Git

# data[].attributes.attachment_link.readable_text
Git and GitHub are common tools used in programming. They help you manage different versions of your code and collaborate with other developers.

Building projects is one of the core parts of being a developer. And Git and GitHub are essential tools you'll use when building projects with others.

But they can look complicated if you haven't used them before. So I wrote this article to simplify how Git and GitHub work.

Table of Contents

What are Git and GitHub?

Git was developed in 2005 by Linus Torvalds as open source software for tracking changes in a distributed version control system.

Git is open source because its source code is made freely available for anyone to modify and use, aside from its creator. Open-source projects are built and maintained collectively by different developers in different locations.

Git track changes via a distributed version control system. This means that Git can track the state of different versions of your projects while you're developing them. It is distributed because you can access your code files from another computer - and so can other developers.

When you're building an open source project, you'll need a way to document or track your code. This helps make your work organized, and lets you keep track of the changes you've made. This is what Git lets you do.

But you also need a place to host your code - which makes controlling each version of your project easier and faster. This is where GitHub comes in.

GitHub is a "hub" (a place or platform) where Git users build software together. GitHub is also an hosting provider and version control platform you can use to collaborate on open source projects and share files. When you're using GitHub, you're working with Git beneath the hood.

Why Should You Learn Git and GitHub?

According to Techmonitor.ai, over 73 million developers use GitHub as of November 2021. And the GitHub community is set to hit 100 million users by 2025.

As you can see, millions of people all over the world use these tools, and the numbers just keep going up.

Because of this, more companies are requiring new hires to know how to use Git and GitHub. So if you're looking for a developer job, these are essential skills to have.

If you're not using Git and GitHub, it's clear - you should be!

Differences between Git and GitHub

Git is a version control system that manages and keeps track of your code. GitHub, on the other hand, is a service that let you host, share, and manage your code files on the internet.

GitHub uses Git underneath, and lets you manage your Git repositories or folders easily on its platform.

So Git is the actual version control system and GitHub is the platform where you host your code.

If you want to learn more about the differences between these two tools, you can read this tutorial.

How to Start Using Git and GitHub

Step 1 - Install Git

Git comes preinstalled in some Macs and Linux-based systems, but you can always check if you have Git installed in your machine by typing git version in your terminal. You can use the Command Prompt to do this.

As you can see above, I have Git version 2.31.1 installed on my Windows computer. If you don't have Git installed in your computer, you won't get a version.

You can download Git here and then select your operating system to download.

Follow the necessary installer guide until installation is complete. Open the command prompt and type git version to verify that Git was successfully installed.

Step 2 - Create a GitHub Account.

To create an account on GitHub, you will be asked for some personal information like name, confirm your email, set a username and password, and your account should be set up in minutes.

Create an account on GitHub.com here.

Step 3 - Connect your GitHub account to your Git account.

You'll do this from your terminal.

To set your Git username, type this in your terminal:

git config --global user.name "Segun Ajibola"

To confirm that you have set your Git username correctly, type this:

git config --global user.name

You should have "Segun Ajibola" as the output.

To set your Git email, type this in your terminal:

git config --global user.email "youremail@gmail.com"

To confirm that you have set your Git email correctly, type this:

git config --global user.email

You should have "youremail@gmail.com" as the output.

You will be asked to authenticate your GitHub account, so just sign in with the same email to confirm.

Step 4 - Create and edit your code files locally

Step 5 - Create a repository on GitHub

Click the + sign at the top right corner to create a new repository. Repositories are like your code folders online.

You will be prompted to this page:

Name your repository and give it a description (this is optional).

Click the "Create repository" button to create the repository. You will be prompted to this page:

Step 6 - Push your local code to GitHub

You can use the code editor built-in terminal to use Git to push your code to GitHub. Click ctrl + shift + ' to open the terminal in VSCode.

Input the commands below one after the other in your terminal. Press the Enter key to proceed after every input.

‌ echo "# sample-code" >> README.md
git init git add . git commit -m "first commit" git branch -M main git remote add origin https://github.com/segunajibola/sample-code.git git push -u origin main
Note that we have git add README.md in the repository on GitHub. But here we have git add ., which is to let Git add all our code files instead of the README.md file which will be created by echo "# sample-code" >> README.md. So if you have created other files in your local folder, you need to use git add . to add all files.

Take note that git remote add origin https://github.com/segunajibola/sample-code.git will contain the link to your own repository and it will have have the name of your GitHub account.

Common Git Commands to Know

They are many Git commands you can use in the terminal, and that can get overwhelming. So I'd suggest focusing on some of the most popular ones first.

Here they are:

git init lets you initialize Git in your folder.

git add Readme.md lets you add the Readme file, while git add . lets you add all files in the present folder.

git commit stores the added files. Use -m for message followed by the actual message.

git branch creates a new branch which is a new version of the repository as it appears when added, and -M to move the name to main.

git remote add origin finally connects the local folder to the repository on GitHub. It is followed by the repository's link.

git push -u origin main pushes the code to GitHub. The -u flag creates a tracking reference for the branch, and origin main puts the code in the main branch.

Those are some of the main commands you'll use all the time. This is a beginner and non-technical guide to help you get started using Git and GitHub, so we won't go into too much more detail here.

The more you continue using GitHub, the more comfortable you'll get using these commands. The key is to start small and maintain your momentum.

It will eventually get easier as you build small projects and host them on GitHub using Git.

If you find it hard to use the terminal to navigate between folders, spend some time to practice with it. Again, it gets easier with time and use.

How to Customize Your GitHub Profile

Customizing your GitHub profile README helps you stand out from random GitHub users.

The README.md file helps you describe your GitHub profile, and you can use it to show what you're currently learning along with your skills and contributions.

The GitHub README.md uses markdown to format its content. It has an easy-to-learn syntax.

Here is a simple guide to create and customize your GitHub account.

Here is my GitHub profile's README.md file.

You can check out some other GitHub README.md personalized profiles here.

Resources to learn Git and GitHub

Here are some helpful courses and articles you can go through if you want to learn Git and GitHub in more detail:

1. Git and GitHub Tutorial - Version Control for Beginners

2. Basic Git Commands - How to Use Git in a Real Project

3. Git and GitHub for Beginners - Crash Course

4. An introduction to Git: what it is, and how to use it

5. About GitHub

Conclusion

If you have finished reading this, you might be feeling overwhelmed about Git and GitHub. Yes it's another big thing you need to learn in tech, but do not fret.

Remember that whenever you start learning something new, at first it can seem like you won't get the hang of it. But after some time and hard work, you'll become more comfortable.

It's the same with Git and GitHub too - if you use it a lot for a while, you will get comfortable with it.

Thanks for reading this article. If you enjoyed it, consider sharing it to help other developers.

You can reach me on Twitter, LinkedIn and GitHub.

Happy Learning.

# data[].attributes.attachment_link.title
How to Use Git and GitHub - Introduction for Beginners

# data[].attributes.attachment_link.description
Git and GitHub are common tools used in programming. They help you manage different versions of your code and collaborate with other developers. Building projects is one of the core parts of being a developer. And Git and GitHub are essential tools you'll use when building projects with others. But

# data[].attributes.headline
Topics - The Man Who Revolutionized Computer Science with Maths

# data[].attributes.subject
Topics - The Man Who Revolutionized Computer Science with Maths

# data[].attributes.body
distributed systems, the bakery algorithm

# data[].attributes.attachment_link.title
The Man Who Revolutionized Computer Science With Math

# data[].attributes.attachment_link.readable_text
Java Tutorial

Java is popular high-level, class-based object oriented programming language originally developed by Sun Microsystems and released in 1995. Currently Java is owned by Oracle and more than 3 billion devices run Java. Java runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX. Java is used to develop numerious types of software applications like Mobile apps, Web apps, Desktop apps, Games and much more.

Java is a general-purpose programming language intended to let programmers Write Once, Run Anywhere (WORA). This means that compiled Java code can run on all platforms that support Java without the need to recompile.

Our Java Tutorial has been prepared by well experienced Java Programmers to help the Software Engineers understand the basic to advanced concepts of Java Programming Language. After completing this tutorial, you will find yourself at a moderate level of expertise in Java, from where you can take yourself to the next levels.

Java Online Compiler

This tutorial provides enough number of examples to explain to concepts. To compile and execute your examaples in your browser itself, we have provided Java Online Compiler. You can Edit and Execute almost all the examples directly from your browser. Try to click the icon to run the following Java code to print conventional "Hello, World!".

Below code box allows you to change the value of the code. Try to change the value inside println() and run it again to verify the result.

public class MyFirstJavaProgram {

   /* This is my first java program.
    * This will print 'Hello World' as the output
    */

   public static void main(String []args) {
      System.out.println("Hello World"); // prints Hello World
   }
}

Why to Learn Java?

Java is a MUST for students and working professionals to become a great Software Engineer specially when they are working in Software Development Domain. If you will conduct a servey about the best programming language, Java is sure to come up.

Java is fairly easy to learn, so if you are starting to learn any programming language then Java could be your great choice. Thereâ€™s also plenty of Java tools that make it easy for developers and beginners to use. There are many other good reasons which makes Java as the first choice of any programmer:

Java is Open Source which means its available free of cost.

Java is simple and so easy to learn

Java is much in demand and ensures high salary

Java has a large vibrant community

Java has powerful development tools

Java is platform independent

Java Applications

The latest release of the Java Standard Edition is Java SE 18. With the advancement of Java and its widespread popularity, multiple configurations were built to suit various types of platforms. For example: J2EE for Enterprise Applications, J2ME for Mobile Applications.

The new J2 versions were renamed as Java SE, Java EE, and Java ME respectively. Java is guaranteed to be Write Once, Run Anywhere.

Multithreaded − With Java's multithreaded feature it is possible to write programs that can perform many tasks simultaneously. This design feature allows the developers to construct interactive applications that can run smoothly.

Interpreted − Java byte code is translated on the fly to native machine instructions and is not stored anywhere. The development process is more rapid and analytical since the linking is an incremental and light-weight process.

High Performance − With the use of Just-In-Time compilers, Java enables high performance.

Distributed − Java is designed for the distributed environment of the internet.

Dynamic − Java is considered to be more dynamic than C or C&plus;&plus; since it is designed to adapt to an evolving environment. Java programs can carry extensive amount of run-time information that can be used to verify and resolve accesses to objects on run-time.

Java Online Quizzes

This Java tutorial helps you prepare for technical interviews and certification exams. We have provided various quizzes and assignments to check your learning level. Given quizzes have multiple choice type of questions and their answers with short explanation.

Following is a sample quiz, try to attempt any of the given answers:

Start your online quiz Start Java Quiz.

Java Jobs & Opportunities

Java is very high in demand and all the major companies are recruiting Java Programmers to develop their Desktop, Web and Mobile applications.

Today a Java Programmer with 3-5 years of experience is asking for around $120,000 annual package and this is the most demanding programming language in America. Though it can vary depending on the location of the Job. Following are the great companies who are using Java and they need good Java Programmers:

So, you could be the next potential employee for any of these major companies. We have developed a great learning material for Java which will help you prepare for the technical interviews and certification exams based on Java. So, start learning Java using this simple and effective tutorial from anywhere and anytime absolutely at your pace.

Who Should Learn Java

This Java tutorial will help both students as well as working professionals who want to develop applications using Java technologies like banking systems, support systems, information systems, web websites, mobile apps or personal blogs etc. We recommend reading this tutorial, in the sequence listed in the left side menu.

Today, Java is one of the most demanding programming language and so it becomes essential language to learn for anyone involved in the software applicatipon development process including Software Developers, Software Designers, and Project Managers etc.

Prerequisites to Learn Java

Though we have tried our best to present the Core Java concepts in a simple and easy way, still before you start learning Java, it is assumed that the readers have a reasonable exposure to any programming environment and knowledge of basic concepts such as variables, commands, syntax, etc.

Frequently Asked Questions about Java

There are some very Frequently Asked Questions(FAQ) about Java, this section tries to answer them briefly.

What are the 4 important concepts in Java?

What are the benefits of Java?

How much time will it take to learn Java?

Why Java is a so popular Programming Language?

What are the advantages of Java over Python?

How do I start learning Java?

What are Java Technologies for Web Applications?

Which is the best place to learn Java?

Java Questions & Answers

You can explore a set of Java Questions and Answers at Java Questions & Answers

Kickstart Your Career

Get certified by completing the course

Get Started

# data[].attributes.attachment_link.description
Java Tutorial - Java is popular high-level, class-based object oriented programming language originally developed by Sun Microsystems and released in 1995. Currently Java is owned by Oracle and more than 3 billion devices run Java.

# data[].attributes.headline
Netbeans Tutorials - Netbeans Debugger for Java

# data[].attributes.subject
Netbeans Tutorials - Netbeans Debugger for Java

# data[].attributes.attachment_link.title
How to Use the NetBeans Debugger for Java

# data[].attributes.attachment_link.title
Java Tutorial For Beginners (Step by Step tutorial)

# data[].attributes.attachment_link.description
Java Tutorial For Beginners: Java Programming From Scratch,Java Programming - Step by Step tutorial ,learn free java tutorial class sun beginner programming ...

# data[].attributes.attachment_link.readable_text
JAVA provides a rich set of libraries to create Graphical User Interface in a platform independent way. In this tutorial, we'll look at SWING GUI controls.

This tutorial is designed for software professionals who are willing to learn JAVA GUI Programming in simple and easy steps. This tutorial provides great understanding on JAVA GUI Programming concepts and after completing this tutorial you will be at an intermediate level of expertise, from where you can take yourself to higher levels of expertise.

Before proceeding with this tutorial, you should have a basic understanding of Java programming language, text editor, execution of programs, etc.

Get Started

# data[].attributes.attachment_link.description
SWING Tutorial - JAVA provides a rich set of libraries to create Graphical User Interface in a platform independent way. In this tutorial, we'll look at SWING GUI controls.

# data[].attributes.attachment_link.readable_text
Java Swing tutorial is a part of Java Foundation Classes (JFC) that is used to create window-based applications. It is built on the top of AWT (Abstract Windowing Toolkit) API and entirely written in java.

Unlike AWT, Java Swing provides platform-independent and lightweight components.

The javax.swing package provides classes for java swing API such as JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser etc.

Difference between AWT and Swing

There are many differences between java awt and swing that are given below.

What is JFC

The Java Foundation Classes (JFC) are a set of GUI components which simplify the development of desktop applications.

Do You Know

How to create runnable jar file in java?

How to display image on a button in swing?

How to change the component color by choosing a color from ColorChooser ?

How to display the digital watch in swing tutorial ?

How to create a notepad in swing?

How to create puzzle game and pic puzzle game in swing ?

How to create tic tac toe game in swing ?

Hierarchy of Java Swing classes

The hierarchy of java swing API is given below.

Commonly used Methods of Component class

The methods of Component class are widely used in java swing that are given below.

Method

Description

public void add(Component c)

add a component on another component.

public void setSize(int width,int height)

sets size of the component.

public void setLayout(LayoutManager m)

sets the layout manager for the component.

public void setVisible(boolean b)

sets the visibility of the component. It is by default false.

Java Swing Examples

There are two ways to create a frame:

By creating the object of Frame class (association)

By extending Frame class (inheritance)

We can write the code of swing inside the main(), constructor or any other method.

Simple Java Swing Example

Let's see a simple swing example where we are creating one button and adding it on the JFrame object inside the main() method.

File: FirstSwingExample.java

Example of Swing by Association inside constructor

We can also write all the codes of creating JFrame, JButton and method call inside the java constructor.

File: Simple.java

The setBounds(int xaxis, int yaxis, int width, int height)is used in the above example that sets the position of the button.

Simple example of Swing by inheritance

We can also inherit the JFrame class, so there is no need to create the instance of JFrame class explicitly.

File: Simple2.java

What we will learn in Swing Tutorial

JButton class

JRadioButton class

JTextArea class

JComboBox class

JTable class

JColorChooser class

JProgressBar class

JSlider class

Digital Watch

Graphics in swing

Displaying image

Edit menu code for Notepad

OpenDialog Box

Notepad

Puzzle Game

Pic Puzzle Game

Tic Tac Toe Game

BorderLayout

GridLayout

FlowLayout

CardLayout

# data[].attributes.attachment_link.description
Java Swing Tutorial with example of JButton, Difference between AWT and swing, simple java swing example, example of swing by inheritance, JRadioButton, JTextField, JTextArea, JList, JColorChooser classes that are found in javax.swing package.

# data[].attributes.attachment_link.description
JavaFX Tutorial - JavaFX Introduction The JavaFX is a new framework intended to support desktop applications and web browsers. It is generally a java platfor…

# data[].attributes.attachment_link.description
Share your videos with friends, family, and the world

# data[].attributes.attachment_link.description
Share your videos with friends, family, and the world

# data[].attributes.headline
Topics - The Physics of Quantum Computing @ BigThink

# data[].attributes.subject
Topics - The Physics of Quantum Computing @ BigThink

# data[].attributes.attachment_link.title
The incredible physics behind quantum computing | Brian Greene, Michio Kaku, & more | Big Think

# data[].attributes.headline
Topics - Thinking Computationally about AI

# data[].attributes.subject
Topics - Thinking Computationally about AI

# data[].attributes.body
programming languages to computational languages

computational irreducibility

# data[].attributes.attachment_link.readable_text
Get a daily email featuring the latest talk, plus a quick mix of trending content.

By subscribing, you understand and agree that we will store, process and manage your personal information according to our Privacy Policy

# data[].attributes.attachment_link.title
Stephen Wolfram: How to think computationally about AI, the universe and everything

# data[].attributes.attachment_link.description
Drawing on his decades-long mission to formulate the world in computational terms, Stephen Wolfram delivers a profound vision of computation and its role in the future of AI. Amid a debut of mesmerizing visuals depicting the underlying structure of the universe, he provides a sweeping survey of his life's work, offering a new perspective on the applications - and consequences - of AI powered by computational language.

# data[].attributes.attachment_link.readable_text
Generative AI has made giant strides toward machine intelligence. Can machine consciousness be far behind?

By Christof Koch

The questions of what subjective experience is, who has it and how it relates to the physical world around us have preoccupied philosophers for most of recorded history. Yet the emergence of scientific theories of consciousness that are quantifiable and empirically testable is of much more recent vintage, occurring within the past several decades. Many of these theories focus on the footprints left behind by the subtle cellular networks of the brain from which consciousness emerges.

Progress in tracking these traces of consciousness was very evident at a recent public event in New York City that involved a competition-termed an "adversarial collaboration"-between adherents of today's two dominant theories of consciousness: integrated information theory (IIT) and global neuronal workspace theory (GNWT). The event came to a head with the resolution of a 25-year-old wager between philosopher of mind David Chalmers of New York University and me.

I had bet Chalmers a case of fine wine that these neural footprints, technically named the neuronal correlates of consciousness, would be unambiguously discovered and described by June 2023. The matchup between IIT and GNWT was left unresolved, given the partially conflicting nature of the evidence concerning which bits and pieces of the brain are responsible for visual experience and the subjective sense of seeing a face or an object, even though the importance of the prefrontal cortex for conscious experiences had been dethroned. Thus, I lost the wager and handed over the wine to Chalmers.

These two dominant theories were developed to explain how the conscious mind relates to neural activity in humans and closely related animals such as monkeys and mice. They make fundamentally different assumptions about subjective experience and come to opposing conclusions with respect to consciousness in engineered artifacts. The extent to which these theories are ultimately empirically verified or falsified for brain-based sentience therefore has important consequences for the looming question of our age: Can machines be sentient?

The Chatbots Are Here

Before I come to that, let me provide some context by comparing machines that are conscious with those that display only intelligent behaviors. The holy grail sought by computer engineers is to endow machines with the sort of highly flexible intelligence that enabled Homo sapiens to expand out from Africa and eventually populate the entire planet. This is called artificial general intelligence (AGI). Many have argued that AGI is a distant goal. Within the past year, stunning developments in artificial intelligence have taken the world, including experts, by surprise. The advent of eloquent conversational software applications, colloquially called chatbots, transformed the AGI debate from an esoteric topic among science-fiction enthusiasts and Silicon Valley digerati into a debate that conveyed a sense of widespread public malaise about an existential risk to our way of life and to our kind.

These chatbots are powered by large language models, most famously the series of bots called generative pretrained transformers, or GPT, from the company OpenAI in San Francisco. Given the fluidity, literacy and competency of OpenAI's most recent iteration of these models, GPT-4, it is easy to believe that it has a mind with a personality. Even its odd glitches, known as "hallucinations," play into this narrative.

GPT-4 and its competitors-Google's LaMDA and Bard, Meta's LLaMA and others-are trained on libraries of digitized books and billions of web pages that are publicly accessible via Web crawlers. The genius of a large language model is that it trains itself without supervision by covering up a word or two and trying to predict the missing expression. It does so over and over and over, billions of times, without anyone in the loop. Once the model has learned by ingesting humanity's collective digital writings, a user prompts it with a sentence or more it has never seen. It will then predict the most likely word, the next after that, and so on. This simple principle led to astounding results in English, German, Chinese, Hindi, Korean and many more tongues including a variety of programming languages.

Tellingly, the foundational essay of AI, which was written in 1950 by British logician Alan Turing under the title "Computing Machinery and Intelligence," avoided the topic of "can machines think," which is really another way of asking about machine consciousness. Turing proposed an "imitation game": Can an observer objectively distinguish between the typed output of a human and a machine when the identity of both are hidden? Today this is known as the Turing test, and chatbots have aced it (even though they cleverly deny that if you ask them directly). Turing's strategy unleashed decades of relentless advances that led to GPT but elided the problem.

Implicit in this debate is the assumption that artificial intelligence is the same as artificial consciousness, that being smart is the same as being conscious. While intelligence and sentience go together in humans and other evolved organisms, this doesn't have to be the case. Intelligence is ultimately about reasoning and learning in order to act-learning from one's own actions and those of other autonomous creatures to better predict and prepare for the future, whether that means the next few seconds ("Uh-oh, that car is heading toward me fast") or the next few years ("I need to learn how to code"). Intelligence is ultimately about doing.

Consciousness, on the other hand, is about states of being-seeing the blue sky, hearing birds chirp, feeling pain, being in love. For an AI to run amok, it doesn't matter one iota whether it feels like anything. All that matters is that it has a goal that is not aligned with humanity's long-term well-being. Whether or not the AI knows what it is trying to do, what would be called self-awareness in humans, is immaterial. The only thing that counts is that it "mindlessly" [ sic] pursues this goal. So at least conceptually, if we achieved AGI, that would tell us little about whether being such an AGI felt like anything. With this mise-en-scène, let us return to the original question of how a machine might become conscious, starting with the first of the two theories.

IIT starts out by formulating five axiomatic properties of any conceivable subjective experience. The theory then asks what it takes for a neural circuit to instantiate these five properties by switching someneurons on and others off-or alternatively, what it takes for a computer chip to switch some transistors on and others off. The causal interactions within a circuit in a particular state or the fact that two given neurons being active together can turn another neuron on or off, as the case may be, can be unfolded into a high-dimensional causal structure. This structure is identical to the quality of the experience, what it feels like, such as why time flows, space feels extended and colors have a particular appearance.This experience also has a quantity associated with it, its integrated information. Only a circuit with a maximum of nonzero integrated information exists as a whole and is conscious. The larger the integrated information, the more the circuit is irreducible, the less it can be considered just the superposition of independent subcircuits. IIT stresses the rich nature of human perceptual experiences-just look around to see the lush visual world around you with untold distinctions and relations, or look at a painting by Pieter Brueghel the Elder, a 16th-century Flemish artist who depicted religious subjects and peasant scenes.

The Peasant Wedding is a 1567 or 1568 painting by Flemish Renaissance painter and printmaker Pieter Brueghel the Elder. Credit: Peter Horree/Alamy Stock Photo

Any system that has the same intrinsic connectivity and causal powers as a human brain will be, in principle, as conscious as a human mind. Such a system cannot be simulated, however, but must be constituted, or built in the image of the brain. Today's digital computers are based on extremely low connectivity (with the output of one transistor wired to the input of a handful of transistors), compared with that of central nervous systems (in which a cortical neuron receives inputs and makes outputs to tens of thousands of other neurons). Thus, current machines, including those that are cloud-based, will not be conscious of anything even though they will be able, in the fullness of time, to do anything that humans can do. In this view, being ChatGPT will never feel like anything. Note this argument has nothing to do with the total number of components, be that neurons or transistors, but the way they are wired up. It is the interconnectivity which determines the overall complexity of the circuit and the number of different configurations it can be in.

The competitor in this contest, GNWT, starts from the psychological insight that the mind is like a theater in which actors perform on a small, lit stage that represents consciousness, with their actions viewed by an audience of processors sitting offstage in the dark. The stage is the central workspace of the mind, with a small working memory capacity for representing a single percept, thought or memory. The various processing modules-vision, hearing, motor control for the eyes, limbs, planning, reasoning, language comprehension and execution-compete for access to this central workspace. The winner displaces the old content, which then becomes unconscious.

The lineage of these ideas can be traced to the blackboard architecture of the early days of AI, so named to evoke the image of people around a blackboard hashing out a problem. In GNWT, the metaphorical stage along with the processing modules were subsequently mapped onto the architecture of the neocortex, the outermost, folded layers of the brain. The workspace is a network of cortical neurons in the front of the brain, with long-range projections to similar neurons distributed all over the neocortex in prefrontal, parietotemporal and cingulate associative cortices. When activity in sensory cortices exceeds a threshold, a global ignition event is triggered across these cortical areas, whereby information is sent to the entire workspace. The act of globally broadcasting this information is what makes it conscious. Data that are not shared in this manner-say, the exact position of eyes or syntactical rules that make up a well-formulated sentence-can influence behavior, but nonconsciously.

From the perspective of GNWT, experience is quite limited, thoughtlike and abstract, akin to the sparse description that might be found in museums, underneath, say, a Brueghel painting: "Indoor scene of peasants, dressed in Renaissance garb, at a wedding, eating and drinking."

In IIT's understanding of consciousness, the painter brilliantly renders the phenomenology of the natural world onto a two-dimensional canvas. In GNWT's view, this apparent richness is an illusion, an apparition, and all that can be objectively said about it is captured in a high-level, terse description.

GNWT fully embraces the mythos of our age, the computer age, that anything is reducible to a computation. Appropriately programmed computer simulations of the brain, with massive feedback and something approximating a central workspace, will consciously experience the world-perhaps not now but soon enough.

Irreconcilable Differences

In stark outlines, that's the debate. According to GNWT and other computational functionalist theories (that is, theories that think of consciousness as ultimately a form of computation), consciousness is nothing but a clever set of algorithms running on a Turing machine. It is the functions of the brain that matter for consciousness, not its causal properties. Provided that some advanced version of GPT takes the same input patterns and produces similar output patterns as humans, then all properties associated with us will carry over to the machine, including our most precious possession: subjective experience.

Conversely, for IIT, the beating heart of consciousness is intrinsic causal power, not computation. Causal power is not something intangible or ethereal. It is very concrete, defined operationally by the extent to which the system's past specifies the present state (cause power) and the extent to which the present specifies its future (effect power). And here's the rub: causal power by itself, the ability to make the system do one thing rather than many other alternatives, cannot be simulated. Not now nor in the future. It must be built into the system.

Consider computer code that simulates the field equations of Einstein's general theory of relativity, which relates mass to spacetime curvature. The software accurately models the supermassive black hole located at the center of our galaxy. This black hole exerts such extensive gravitational effects on its surroundings that nothing, not even light, can escape its pull. Thus its name. Yet an astrophysicist simulating the black hole would not get sucked into their laptop by the simulated gravitational field. This seemingly absurd observation emphasizes the difference between the real and the simulated: if the simulation is faithful to reality, spacetime should warp around the laptop, creating a black hole that swallows everything around it.

Of course, gravity is not a computation. Gravity has causal powers, warping the fabric of space-time, and thereby attracting anything with mass. Imitating a black hole's causal powers requires an actual superheavy object, not just computer code. Causal power can't be simulated but must be constituted. The difference between the real and the simulated is their respective causal powers.

That's why it doesn't rain inside a computer simulating a rainstorm. The software is functionally identical to weather yet lacks its causal powers to blow and turn vapor into water drops. Causal power, the ability to make or take a difference to itself, must be built into the system. This is not impossible. A so-called neuromorphic or bionic computer could be as conscious as a human, but that is not the case for the standard von Neumann architecture that is the foundation of all modern computers. Small prototypes of neuromorphic computers have been built in laboratories, such as Intel's second-generation Loihi 2 neuromorphic chip. But a machine with the needed complexity to elicit something resembling human consciousness-or even that of a fruit fly-remains an aspirational wish for the distant future.

Note that this irreconcilable difference between functionalist and causal theories has nothing to do with intelligence, natural or artificial. As I said above, intelligence is about behaving. Anything that can be produced by human ingenuity, including great novels such as Octavia E. Butler's Parable of the Sower or Leo Tolstoy's War and Peace, can be mimicked by algorithmic intelligence, provided there is sufficient material to train on. AGI is achievable in the not-too-distant future.

The debate is not about artificial intelligence but about artificial consciousness. This debate cannot be resolved by building bigger language models or better neural network algorithms. The question will need to be answered by understanding the only subjectivity we are indubitably confident of: our own. Once we have a solid explanation of human consciousness and its neural underpinnings, we can extend such an understanding to intelligent machines in a coherent and scientifically satisfactory manner.

The debate matters little to how chatbots will be perceived by society at large. Their linguistic skills, knowledge base and social graces will soon become flawless, endowed with perfect recall, competence, poise, reasoning abilities and intelligence. Some even proclaim that these creatures of big tech are the next step in evolution, Friedrich Nietzsche's " Übermensch." I take a darker viewer and believe that these folks mistake our species' dusk for its dawn.

For many, and perhaps for most people in an increasingly atomized society that is removed from nature and organized around social media, these agents, living in their phones, will become emotionally irresistible. People will act, in ways both small and large, like these chatbots are conscious, like they can truly love, be hurt, hope and fear, even if they are nothing more than sophisticated lookup tables. They will become indispensable to us, perhaps more so than truly sentient organisms, even though they feel as much as a digital TV or toaster-nothing.

# data[].attributes.attachment_link.title
What Does It 'Feel' Like to Be a Chatbot?

# data[].attributes.attachment_link.description
Generative AI has made giant strides toward machine intelligence. Can machine consciousness be far behind?