-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Java Data Management Course
Data Management Course Overview
Below you can find the ordered content of the topic, in a linear progression
The linear progression of content aims to cover all content, course by course, workout by workout as follows:
- first course is the only core one, denoted by its manifest
- the next course is denoted by the first item of the next array in each course manifest
- each course has its order of workouts designated by the sections field in the same aforementioned manifest
1. arrays
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | collections-vs-arrays | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | using-arrays-parallelsort | ✅ | 🦑 deep 🔮 obscura ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | multidimensional-array-declaration | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | copying-an-array-with-system-arraycopy | ✅ | 👶 introduction 🔮 obscura |
❌ | ✅ | ❌ | ❌ | ❌ |
5 | arrays-vs-lists | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | avoid-numerical-overflows-with-java8-exact-methods | ✅ | 👶 introduction ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | detect-or-prevent-integer-overflow | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
3 | bitwise-and-bit-shift-operations-in-java | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
4 | negative-byte-values | ✅ | 👶 introduction 🔮 obscura |
❌ | ❌ | ❌ | ❌ | ❌ |
5 | bitwise-operations-in-java | ✅ | 👶 introduction 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | reading-and-writing-text-files | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | how-to-create-directories-in-java | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | checking-for-the-existence-of-files-and-directories | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ✅ | ❌ |
4 | create-system-file-paths-using-the-path-class | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | deleting-files-and-directories | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
4. numbers-i
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | default-values-for-unassigned-data-types | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | autoboxing-and-unboxing | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ✅ | ❌ |
3 | use-primitive-types-instead-of-wrapper-classes-when-possible | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | generating-random-numbers-in-java | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
5 | use-underscores-to-separate-digits-in-numeric-literals | ✅ | 👶 introduction 🔮 obscura |
❌ | ❌ | ❌ | ❌ | ❌ |
Exercises:
Game:
5. numbers-ii
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | using-valueof-to-convert-strings-to-numeric-values | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
2 | checking-a-double-for-nan-value | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
3 | careful-numeric-data-conversions | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ✅ | ❌ |
4 | do-not-attempt-comparisons-with-nan | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ✅ | ❌ |
5 | trigonometry-using-the-math-class | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
Exercises:
Game:
6. strings-i
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | replace-a-substring | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
2 | use-string-split-to-split-a-string-using-regular-expressions | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ✅ | ❌ |
3 | finding-a-substring-in-a-string | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
4 | determining-string-equality | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
5 | removing-leading-or-trailing-white-space-from-a-string | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
Exercises:
Game:
7. strings-ii
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | converting-numbers-to-strings | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
2 | converting-a-string-to-upper-or-lower-case | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
3 | using-printstream-format-to-format-a-string-before-printing | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | use-strings-in-a-switch-statement | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
5 | relative-url-s-in-java | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
Exercises:
Game:
8. strings-iii
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | avoid-floating-point-when-calculating-exact-quantities-such-as-money | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
2 | express-binary-literals-with-0b-and-hexadecimal-literals-with-0x | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
3 | use-decimalformat-class-to-format-numbers | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | string-formatting-and-parsing-with-simpledateformat | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | altering-format-string-output-by-changing-a-format-specifier-s-argument-index | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
9. data-tips-i
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | translating-scanner-tokens-into-primitive-types | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | the-console-class | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | system-out-vs-system-err | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
4 | system-independent-path-specification | ✅ | 👶 introduction 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
5 | use-try-with-resources-instead-of-finally | ✅ | 👶 introduction ✨ new |
❌ | ❌ | ❌ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | wildcards-vs-objects | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ❌ | ❌ | ❌ |
2 | using-unbounded-wildcards | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ❌ | ❌ | ❌ |
3 | upper-bounded-wildcards | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ❌ | ❌ | ❌ |
4 | using-lower-bounded-wildcards | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ❌ | ❌ | ❌ |
5 | wildcards-extras | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | writing-generic-methods | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
2 | type-inference-in-generic-methods | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ✅ | ❌ | ❌ |
3 | using-bounded-type-parameters-in-generic-methods | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ✅ | ❌ | ❌ |
4 | writing-generic-classes | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
5 | type-inference-in-generic-classes | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ❌ | ❌ | ❌ |
Exercises:
Game:
12. buffered-streams
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | using-buffered-streams | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
2 | flushing-buffered-streams | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ❌ | ❌ | ❌ |
3 | stringbuffer-vs-stringbuilder | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ❌ | ❌ | ❌ |
4 | using-stringbuilder-class | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | java-treemap-and-treeset-overview | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
2 | hashing | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | difference-between-hashmap-and-hashtable | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | java-hashset-and-hashmap-overview | ✅ | 👶 introduction | ❌ | ❌ | ❌ | ❌ | ❌ |
5 | how-and-when-to-use-weakhashmap-class | ✅ | 💪 workout 🦑 deep |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
14. file-system-i
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | renaming-a-file | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | how-to-list-all-files-in-a-directory-that-match-a-filename-extension-in-java | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | list-contents-of-a-directory-with-newdirectorystream | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
4 | listing-a-file-system-s-root-directories | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
5 | system-properties | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
15. file-system-ii
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | reading-file-attributes | ✅ | 💪 workout 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
2 | retrieving-file-store-attributes | ✅ | 💪 workout 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
3 | metadata-creating-a-user-defined-file-attribute | ✅ | 💪 workout 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | using-the-openoption-vararg-to-define-file-writing-behavior | ✅ | 💪 workout 🔮 obscura |
❌ | ❌ | ❌ | ❌ | ❌ |
5 | metadata-setting-a-file-s-owner | ✅ | 💪 workout 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
16. data-tips-ii
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | do-not-perform-bitwise-and-arithmetic-operations-on-the-same-data | ✅ | 👶 introduction 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
2 | math-vs-strictmath-in-java | ✅ | 👶 introduction 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | retrieve-the-component-type-of-an-array | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | use-arrays-aslist-to-initialise-lists | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | using-enum-in-java | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
17. tools-i
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | how-to-retrieve-running-java-processes-with-jps | ✅ | 🦑 deep 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | cpus-count-in-a-system | ✅ | 💪 workout 🔮 obscura |
❌ | ❌ | ❌ | ❌ | ❌ |
3 | intro-to-hprof | ✅ | 🦑 deep 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | the-jhat-tool | ✅ | 🦑 deep 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | intro-to-jconsole | ✅ | 🦑 deep 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
18. tools-ii
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | the-jinfo-tool | ✅ | 🦑 deep 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | intro-to-jstack-tool | ✅ | 🦑 deep 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | the-jmap-tool | ✅ | 🦑 deep 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | java-naming-and-directory-interface-jndi | ✅ | 🦑 deep 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
5 | the-concurrent-low-pause-collector-in-java | ✅ | 🦑 deep 🔮 obscura |
❌ | ❌ | ❌ | ❌ | ❌ |
Exercises:
Game:
19. file-system-iii
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | control-os-process-es-in-java8 | ✅ | 🦑 deep 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | how-to-check-for-static-dependencies-of-applications-and-libraries-from-the-command-line | ✅ | 🦑 deep 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | java8-s-new-stampedlock | ✅ | 🦑 deep 🔮 obscura ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
4 | jjs-oracle-nashorn-newest-javascript-engine | ✅ | 🦑 deep 🔮 obscura ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | use-optional-s-type-in-order-to-avoid-nullpointerexception-s | ✅ | 💪 workout ✨ new |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Given the insights are tagged with aspects, we can filter over the linear content progression and create learning sub-paths.
These sub-path progressions will most likely not cover all content, but they will ensure and enforce an unified learning experience, tailor for the user wish.
For example, a user might be interested in new additions and updates of a language, rather than introduction lessions. Note that these sub-paths don't take games into consideration
If you are being introduced to the topic for the first time
Insights:
- collections-vs-arrays
- multidimensional-array-declaration
- copying-an-array-with-system-arraycopy
- arrays-vs-lists
- avoid-numerical-overflows-with-java8-exact-methods
- detect-or-prevent-integer-overflow
- bitwise-and-bit-shift-operations-in-java
- negative-byte-values
- bitwise-operations-in-java
- reading-and-writing-text-files
- how-to-create-directories-in-java
- checking-for-the-existence-of-files-and-directories
- create-system-file-paths-using-the-path-class
- deleting-files-and-directories
- default-values-for-unassigned-data-types
- autoboxing-and-unboxing
- use-primitive-types-instead-of-wrapper-classes-when-possible
- generating-random-numbers-in-java
- use-underscores-to-separate-digits-in-numeric-literals
- using-valueof-to-convert-strings-to-numeric-values
- checking-a-double-for-nan-value
- careful-numeric-data-conversions
- do-not-attempt-comparisons-with-nan
- trigonometry-using-the-math-class
- replace-a-substring
- use-string-split-to-split-a-string-using-regular-expressions
- finding-a-substring-in-a-string
- determining-string-equality
- removing-leading-or-trailing-white-space-from-a-string
- converting-numbers-to-strings
- converting-a-string-to-upper-or-lower-case
- using-printstream-format-to-format-a-string-before-printing
- use-strings-in-a-switch-statement
- relative-url-s-in-java
- avoid-floating-point-when-calculating-exact-quantities-such-as-money
- express-binary-literals-with-0b-and-hexadecimal-literals-with-0x
- use-decimalformat-class-to-format-numbers
- string-formatting-and-parsing-with-simpledateformat
- altering-format-string-output-by-changing-a-format-specifier-s-argument-index
- translating-scanner-tokens-into-primitive-types
- the-console-class
- system-out-vs-system-err
- system-independent-path-specification
- use-try-with-resources-instead-of-finally
- writing-generic-methods
- writing-generic-classes
- using-buffered-streams
- stringbuffer-vs-stringbuilder
- using-stringbuilder-class
- java-treemap-and-treeset-overview
- hashing
- difference-between-hashmap-and-hashtable
- java-hashset-and-hashmap-overview
- renaming-a-file
- how-to-list-all-files-in-a-directory-that-match-a-filename-extension-in-java
- list-contents-of-a-directory-with-newdirectorystream
- listing-a-file-system-s-root-directories
- system-properties
- do-not-perform-bitwise-and-arithmetic-operations-on-the-same-data
- math-vs-strictmath-in-java
- retrieve-the-component-type-of-an-array
- use-arrays-aslist-to-initialise-lists
- using-enum-in-java
Theory put into practice/that’s how you achieve X points
Insights:
- wildcards-vs-objects
- using-unbounded-wildcards
- upper-bounded-wildcards
- using-lower-bounded-wildcards
- wildcards-extras
- type-inference-in-generic-methods
- using-bounded-type-parameters-in-generic-methods
- type-inference-in-generic-classes
- using-buffered-streams
- flushing-buffered-streams
- stringbuffer-vs-stringbuilder
- how-and-when-to-use-weakhashmap-class
- reading-file-attributes
- retrieving-file-store-attributes
- metadata-creating-a-user-defined-file-attribute
- using-the-openoption-vararg-to-define-file-writing-behavior
- metadata-setting-a-file-s-owner
- cpus-count-in-a-system
- use-optional-s-type-in-order-to-avoid-nullpointerexception-s
Prerequisite knowledge consisting of 2 or more 👶/💪 workouts
Insights:
- using-arrays-parallelsort
- wildcards-vs-objects
- using-unbounded-wildcards
- upper-bounded-wildcards
- using-lower-bounded-wildcards
- wildcards-extras
- type-inference-in-generic-methods
- using-bounded-type-parameters-in-generic-methods
- type-inference-in-generic-classes
- flushing-buffered-streams
- how-and-when-to-use-weakhashmap-class
- how-to-retrieve-running-java-processes-with-jps
- intro-to-hprof
- the-jhat-tool
- intro-to-jconsole
- the-jinfo-tool
- intro-to-jstack-tool
- the-jmap-tool
- java-naming-and-directory-interface-jndi
- the-concurrent-low-pause-collector-in-java
- control-os-process-es-in-java8
- how-to-check-for-static-dependencies-of-applications-and-libraries-from-the-command-line
- java8-s-new-stampedlock
- jjs-oracle-nashorn-newest-javascript-engine
Recently added/gained traction feature
Insights:
- using-arrays-parallelsort
- avoid-numerical-overflows-with-java8-exact-methods
- use-try-with-resources-instead-of-finally
- java8-s-new-stampedlock
- jjs-oracle-nashorn-newest-javascript-engine
- use-optional-s-type-in-order-to-avoid-nullpointerexception-s
Stories, obscure details that don’t specifically relate to a learning objective
Insights:
- using-arrays-parallelsort
- copying-an-array-with-system-arraycopy
- negative-byte-values
- bitwise-operations-in-java
- use-underscores-to-separate-digits-in-numeric-literals
- system-independent-path-specification
- reading-file-attributes
- retrieving-file-store-attributes
- metadata-creating-a-user-defined-file-attribute
- using-the-openoption-vararg-to-define-file-writing-behavior
- metadata-setting-a-file-s-owner
- do-not-perform-bitwise-and-arithmetic-operations-on-the-same-data
- math-vs-strictmath-in-java
- how-to-retrieve-running-java-processes-with-jps
- cpus-count-in-a-system
- intro-to-hprof
- the-jhat-tool
- intro-to-jconsole
- the-jinfo-tool
- intro-to-jstack-tool
- the-jmap-tool
- java-naming-and-directory-interface-jndi
- the-concurrent-low-pause-collector-in-java
- control-os-process-es-in-java8
- how-to-check-for-static-dependencies-of-applications-and-libraries-from-the-command-line
- java8-s-new-stampedlock
- jjs-oracle-nashorn-newest-javascript-engine
✅ All content has been tagged with aspects.
Want to contribute to this wiki? Go right ahead! If it has to do with how the Enki software ecosystem works, or editorial guidelines for how to write, let us handle that. Anything else, edit away!
Curriculum Format:
- Topic Documentation
- Course Documentation
- Workout Documentation
- Insight Documentation
- Glossary Documentation
Contributor Resources:
Curriculum overview:
Topic pages: