To get started, identify the entities that you need to implement. Each type of entity will become an ADT in your application.
The word "detail" can be used to mean different things, and since "forename" isn't much used where I live, there may be other things I don't understand. What's clear, though, is that you have a collection (that's one entity), that will contain pieces of information about a student, and that course and unit information is somehow involved. Maybe it's a list of students...maybe it's a list of courses attempted by a student...either way, there's a collection as one ADT and the items in the collection are described by another ADT. Figure out what there's only one of, and those bits of information are the private fields of the collection. Figure out what changes with each entry in the collection and that goes into the detail ADT.
If you have multiple students and are recording courses attempted for each one, then you have multiple collections. The population of students is a collection. For each student you have a collection of courses attempted. The information about a course that doesn't change for each student attempting it (Course name, instructor, academic units, building, room, meeting days and times) are probably best kept in another collection of courses. This may be more detail than your assignment requires. Only you know that for sure. The point is to identitfy and make classes for each one of them.
For the collection type(s), maybe you can't (or shouldn't) use ArrayList<> or LinkedList<>. If you are going to make intelligent use of Java, though, you should consider having your classes implement the Collection<> interface. That will let you interoperate with the other collection classes, or reuse code snippets originally meant for other collection types.