A network, also called a link, is a communication medium that “directly” connects communicating entities. Each network has its own addressing scheme and communication protocol. For example, an Ethernet is one kind of network, and devices on an Ethernet can communicate if they know each other's Ethernet addresses. These addresses are link-layer addresses.
An internet is an interconnected set of networks, which can be different kinds of networks.
The communicating entities in an internet are called hosts. Hosts are connected to networks via interfaces. Some hosts are connected to more than one network. Some of those hosts forward packets from one network to another, and are therefore called routers.
Every interface has both a link-layer address and an IP address. So when we talk about the IP address of a host, that's shorthand for the address of some interface belonging to that host.
Exception: A degenerate network capable of connecting only two hosts is called a point-to-point link (as opposed to a multipoint link). Interfaces on a point-to-point link are not required to have addresses, because when you send a packet on such a link it's obvious who the destination is. Point-to-point links are often used to connect routers, especially over long distances.
Every network has an address prefix. Every interface on that network has an address beginning with that prefix, and every interface whose address begins with that prefix is on that network. Therefore, every network has a mask, often called a netmask, that can be used to extract the prefix from any address on the network. Hosts must know the netmasks of the networks they are attached to, in order to determine whether a given destination address is on any of those networks. If it is, packets can be sent to it directly, otherwise they must be sent to a router. Of course, to send a packet directly to a host on an attached network, the sender must somehow discover the link-layer address of the destination (typically using ARP).
Originally, IP addresses were divided into a network field and a host field, and it was intended that every distinct network field would correspond to at most one network, so for example 128.32 would correspond to “UCB's network”. But now the original boundaries between the network and host fields of the address are ignored. There is no network corresponding to 128.32. There is a network corresponding to 220.127.116.11/24 (the 24 means a 24-bit netmask: 255.255.255.0), and another corresponding to 18.104.22.168/24, and so on. A subnet is simply a network whose address prefix is longer than the original network field, and a supernet is simply a network whose address prefix is shorter than the original network field. So the terms “subnet” and “supernet” are historical baggage, and you can mentally replace them both by “network”.