Skip to content

MatteV02/kotlin-core

logo

Warning

This repository is still a work in progress: links may not work, exercises may be missing or still not resolved, etc.
If you have particular requests (eg. you want an exercise to be resolved soon, can't find anymore a file, link broken), please open an issue!

This repository is an adaptation of the exercises provided in nbicocchi/java-core for Kotlin programming language.
I've made this repo mainly for making practice in Kotlin language. Feel free to comment my work by opening GitHub issues! Any help is accepted!

TODOs

Exercises Modules

1. Basics

Packages: com.MatteV02.exercises.warmup, com.MatteV02.exercises.arrays, com.MatteV02.exercises.strings

  • Variables, methods and parameter passing
  • Fundamental data types
  • Decisions
  • Loops
  • Arrays (and brief introduction to ArrayList)
  • Strings
  • Input and output (print, println, input from keyboard)
  • Random numbers
  • Coding Standard

2. Object Oriented Design

Packages: com.MatteV02.exercises.oop

  • Instance variables and encapsulation
  • Specifying the public interface of a class (and its implementation)
  • Static variables and methods
  • Inheritance hierarchies
  • Abstract classes
  • Interfaces (and anonymous implementations)
  • Object: the cosmic superclass
  • Wrapper types
  • UML class diagrams

3. Data Structures (Kotlin Collections)

Packages: com.MatteV02.exercises.collections

  • Iterable and Iterator interfaces
  • List interface and its implementations (ArrayList, LinkedList)
  • Set interface and its implementations (HashSet, LinkedHashSet, TreeSet)
  • Deque interface and its implementations (ArrayDeque, LinkedList)
  • Map interface and its implementations (HashMap, LinkedHashMap, TreeMap)
  • Sorting and searching

4. Generic Data Structures (Generics)

Packages: com.MatteV02.exercises.generics

  • Generic classes and type parameters
  • Implementing generic types
  • Generic methods
  • Constraining type parameters
  • Type erasure

5. Functional Programming

Packages: com.MatteV02.exercises.functional

  • Lambda expressions
  • Functional interfaces
  • Producing, transforming, and collecting functional streams
  • null-safety

6. Exceptions

Packages: com.MatteV02.exercises.exceptions

  • Throwing exceptions
  • Catching exceptions
  • Checked and unchecked exceptions
  • Closing resources

7. IO Framework

Packages: com.MatteV02.exercises.io

  • Manipulating paths
  • Manipulating filesystem (copy, move, etc)
  • Reading and writing files

8. Multi-threading

Packages: com.MatteV02.exercises.threads

  • Thread states
  • Thread interference
  • Thread synchronisation (synchronised/wait/notify)
  • ExecutorService
  • Callable/Future/Task

About

Repository of exercises in Kotlin written from nbicocchi/java-core.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Languages