Skip to content

Tasks List by module

bastinjul edited this page Aug 27, 2019 · 3 revisions

Module 1 | Java Introduction, Static and main methods, Arrays, Dev Tools, Pre-post conditions

🔢 Task folder ℹ️ Short Description
Introduction Code exercise to introduce java to students
LearnExceptions Code exercise to introduce exceptions in java
Array2D Code exercise to help students to make distinction between multidimensional array and matrix
AccessModifiers MCQ on modifiers / packages
CommonErrors MCQ on some common Java programming errors
StringUtils Code exercise on implementing several common methods inspired from java's String API
Casting Theorical questions on type casting in java

Module 2 | Complexity, Arborescent data structures, Basic algorihtms, Invariants and proof of correctness

🔢 Task folder ℹ️ Short Description
ComplexityMQC1 Simple MCQ on time complexity
complexityMCQ2 Harder MCQ on time complexity including complexity on trees and recursive functions
ComplextiySpaceMCQ MCQ on space complexity
ComplexityArraySearch Code exercise on finding an element in a given array with best possible complexity
MergeSortImplementation Code exercise on implementation of the merge sort algorithm
MaximumSumSubarray Code exercise on finding the maximum contiguous subarray in a given array
valley Code exercise on finding the deepest valley and the biggest mountain in a given array
CodeAccuracy MCQ on Pre, Post conditions and Invariants
CodeAccuracy2 Code exercise on making assertations and implementation on code (Quicksort )
TreeCombineWith Code exercise on implementing a sum-merge method of two tree
TreeInorder Code exercise on implementing two different version of an "in-order" tree traversal : a recursive version and an iterative version
TreeSame Code exercise on implenting the method equals for Node and Tree
BubbleSortInvariant MCQ on invariant of the bubble sort algorithm
Fibonacci Code exercise on recursive / iterative implementation of the same method
HanoiTower Code exercise on Hanoi Tower. Recursive exercise

Module 3 | Object Oriented Programming (inheritance, generics, etc), Abstract Data Types

🔢 Task folder ℹ️ Short Description
CircularLL Code exercise on implementing a Circular linked list
Generics Code exercise on a recursive structure with interfaces like Predicate / Function
Generics2 Code exercise on genericity (based on previous task)
Generics3 Code exercise on implementing logic gates using BiFunction and Function
Inheritance Small Code exercise (type : fill the gaps) on inheritance
MyArrayList Code exercise on implementing your own version of ArrayList
PostScript Code exercise on interpreter that uses operations stored in a stack
QueueWithStacks Code exercise on implementing a FIFO queue using two stacks
StackWithQueue Code exercise on implementing a LIFO stack using a queue

Module 4 | Software Engineering Topics: Design Patterns (MVC for GUI), Architecture, Testing

🔢 Task folder ℹ️ Short Description
BlackBox Code exercise on blackbox testing on specifications of a binarySearch method
Coverage Code exercise on code coverage (JaCoCo)
Factory Code exercise on the Factory design pattern
Observer Code exercise on the Observer design pattern
VisitorBasic Code exercise on the Visitor design pattern (beginner)
Visitor Code exercise on the Visitor design pattern (advanced)
AbstractClass Code exercise on abstract class (Shape)

Module 5 | Functional Programming and Lambda, Recursive Programming

🔢 Task folder ℹ️ Short Description
LambdaExpressioninJava Code exercises on lambda expressions
ComparatorvsComparable Code exercise on comparator and comparable
Optional Code exercise on Optional
FList Code exercise on functional linked lists
FListMergeSort Code exercise on the merge sort algorithm with functional linked lists
FTree Code exercise on functional immutable tree
InfiniteStreams Code exercise on infinite streams
Streams Code exercise on function programming with Streams (Beginner)
Streams2 Code exercise on function programming with Streams (Advanced)

Module 6 | Parallelism: threads and introduction to synchronisation

🔢 Task folder ℹ️ Short Description
ProducerConsumer Code exercise on implementing the famous Producer / Consumer problem
Future Code exercise on Future
BoundedBuffer Code exercise on a bounded buffer with threads
CyclicBarrier Code exercise on a cyclic barrier with threads
ParallelelMergeSort Code exercise on a merge sort parallel with threads
SharedCounter Code exercise on handling shared counter with threads
ThreadsIntroduction Code exercise to introduce the usage of threads