In my experience, I always tend to go overboard with the size of the root partition. I also tend to assign 40-50 Gb to root, but I'm beginning to doubt that much space is actually necessary (correct me if I'm wrong). I'm currently running Kubuntu 14.04 on a new machine for about 6 months, and have installed as much software as I'll ever need (VirtualBox, wine, Calligra, Krita, etc.), but most apps' user data winds up in /home's hidden folders.
My system is only using about 10 of the 50 Gb...Perhaps the next time I'll try giving only 30 Gb to root, and keep those extra 20 for downloads, movies, etc. Your /home partition should definitely be the biggest, and as to your 16Gb swap...I'd say that's way beyond what you'll be needing. People used to recommend making swap double or triple your RAM capacity, but that was back when ram was measured in MB ;)
You won't be using your swap unless you used up all your RAM, which isn't all that likely. I have 8Gb of RAM, and even with Virtualbox using 4 of them, + tons od¡f apps in the background, (Firefox, Thunderbird, Ktorrent, Libreoffice, etc.), some of them fairly memory hungry, I've never reached anything near 8Gb, so my 4Gb swap aren't particularly being put to good use...
Yes you can. Boot up the CD and go into live mode (try without installing), when the computer has boot up, go to the terminal and enter sudo parted -l
get to partition table for the disk with the 120GB of space (we will continue this process later on). After this, begin the installation process.
When the installation arrives at this screen (GUI updated in recent version but info still the same)

Select Something else
Now, on the next screen
Select the appropriate drive, (the one with 120GB which equates to roughly
122880MB)
Select it and create new partition table (option in the bottom left)

(Continuation...)
BIOS-Boot or EFI partition (required on GPT disks)
If you want to install Ubuntu on a GPT disk (you can check it via the 'sudo parted -l' command as mentioned above), you will need either an EFI partition (if your BIOS is set up in EFI mode) or a BIOS-Boot partition (if your BIOS is set up in Legacy mode).
BIOS-Boot partition:
Mount point: none
Type: no filesystem
Description: the BIOS-boot partition contains GRUB 2's core. It is necessary if you install Ubuntu on a GPT disk, and if the firmware (BIOS) is set up in Legacy (not EFI) mode. It must be located at the start of a GPT disk, and have a "bios_grub" flag.
Size: 1MB.
EFI partition:
Mount point: /boot/efi (no need to set up this mount point as the installer will do it automatically)
Type: FAT (generally FAT32)
Description: the EFI partition (also called ESP) contains some boot files. It is necessary if the firmware (BIOS) is set up to boot the HDD in EFI mode (which is default on more and more modern, > year 2011 computers). It must be located at the start of a GPT disk, and have a "boot" flag.
Size: 100~250MB
Basic recommended install
The most basic and recommended partitioning for a fully functional system, is a swap partition and a root partition / consuming the rest of the diskapce.
More Advanced Install
For this I will recommend;
DiskSpace -The goal of this page is to offer advice and strategy on partitioning a Linux system.
&
Recommended Partitioning Scheme
Best Answer
In a new installation of Ubuntu 18.04 there is no need for either home or swap partitions and creating them is a waste of disk space. One ext4 partition for everything is all you need. This answer would also have helped you in Nov. 5, 2017 because starting in new installations of Ubuntu 17.04, the Ubuntu installer creates a swap file instead of a swap partition by default, so a single partition is all you need. The recommended size of this single partition is 25GB or larger, and the default format of this partition is ext4.
SSDs are currently so cheap that it makes sense to buy a >=256GB SSD and install Ubuntu in a single partition on the SSD. If the Ubuntu installation requires an additional 500MB EFI System Partition, then the Ubuntu installer will create one if it doesn't already exist.