Java advanced itmo github

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Java Advanced course at ITMO University

cannor147/itmo-java

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Course was prepared and taught by Georgiy Korneev at ITMO University in 2019 (year2017, 4th semester).

Project setting in IntelliJ IDEA

  1. Open root directory of the repository. Unmark source mark from src directory for main project module if it is.
  2. Do Import module.. for each directory in src/modules . If you want only one specific module, do Import module.. for:
    • module of your choice
    • dependent modules from your choice (see point 4)
    • module ru.ifmo.rain.bashunov.runner
  3. Add directories test/artifats and test/lib as Library in your project. Also ass dependencies for each project modules to this libraries.
  4. Add dependencies between modules:
    • ru.ifmo.rain.bashunov.mapper from ru.ifmo.rain.bashunov.concurrent
  5. Before running the tests, run Build for the whole project. After any change you should do Rebuild for the whole project.
  6. For running the tests you should use HomeworkRunner from module ru.ifmo.rain.bashunov.runner .
  1. File crawling (statements (ru), solution)
    • running tests for simple modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.walk —mod Walk —module ru.ifmo.rain.bashunov.walk —class RecursiveWalk
    • running tests for advanced modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.walk —mod RecursiveWalk —module ru.ifmo.rain.bashunov.walk —class RecursiveWalk
  2. Set on array (statements (ru), solution)
    • running tests for simple modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.arrayset —mod SortedSet —module ru.ifmo.rain.bashunov.arrayset —class ArraySet
    • running tests for advanced modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.arrayset —mod NavigableSet —module ru.ifmo.rain.bashunov.arrayset —class ArraySet
  3. Students (statements (ru), solution)
    • running tests for simple modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.student —mod StudentQuery —module ru.ifmo.rain.bashunov.student —class StudentQueryImpl
    • running tests for advanced modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.student —mod StudentGroupQuery —module ru.ifmo.rain.bashunov.student —class StudentQueryImpl
  4. Implementor (statements (ru), solution)
    • running tests for simple modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.implementor —mod interface —module ru.ifmo.rain.bashunov.implementor —class Implementor
    • running tests for advanced modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.implementor —mod class —module ru.ifmo.rain.bashunov.implementor —class Implementor
  5. Jar Implementor (statements (ru), solution)
    • running tests for simple modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.implementor —mod jar-interface —module ru.ifmo.rain.bashunov.implementor —class Implementor
    • running tests for advanced modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.implementor —mod jar-class —module ru.ifmo.rain.bashunov.implementor —class Implementor
  6. Javadoc (statements (ru), solution)
    • script for creating Javadoc: HomeworkRunner -javadoc —test info.kgeorgiy.java.advanced.implementor —module ru.ifmo.rain.bashunov.implementor —source Implementor
  7. Iterative parallelism (statements (ru), solution)
    • running tests for simple modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.concurrent —mod scalar —module ru.ifmo.rain.bashunov.concurrent —class IterativeParallelism
    • running tests for advanced modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.concurrent —mod list —module ru.ifmo.rain.bashunov.concurrent —class IterativeParallelism
  8. Parallel run (statements (ru), solution)
    • running tests for simple modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.mapper —mod scalar —module ru.ifmo.rain.bashunov.concurrent —module ru.ifmo.rain.bashunov.mapper —class ParallelMapperImpl parallelism.MappedParallelism
    • running tests for advanced modification: HomeworkRunner -run —test info.kgeorgiy.java.advanced.mapper —mod list —module ru.ifmo.rain.bashunov.concurrent —module ru.ifmo.rain.bashunov.mapper —class ParallelMapperImpl parallelism.MappedParallelism
  9. Web Crawler (statements (ru), solution draft)
  10. HelloUDP (statements (ru), solution draft)
  11. HelloUDP (statements (ru))
  12. Text statistics (statements (ru))

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

ricnorr/ITMO-JAVA-ADVANCED

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Develop class RecursiveWalk , calculating files hash in specified direcotry recursively.

  • Console run format: java RecursiveWalk .
  • Input file contains list of directories needed to walk through.
  • Output file must contains calculation results for each line of unput line in the following format: , one per line.
  • Hash calculation algorithm: FNV.
  • In case of any errors, the hash result must be 00000000 .
  • Input and output files encoding is UTF-8.
  • Parent directory to the output file should be created if it is absent.
  • File sizes may exceed RAM size.

2. Collections Framework: ArraySet

Develop class ArraySet , implementing immutable ordered set.

  • Class ArraySet must implement NavigableSet interface.
  • All methods must be maximally asymptotic effective.

3. Data streams: Students

Develop class StudentDB , processing search queries over students database.

  • Class StudentDB must implement both StudentQuery and StudentGroupQuery interfaces.
  • Each method must contains exactly one operator.

4. Reflection: Implementor

Develop class Implementor , generating basic class or interface implementation source code.

  • Console arguments: qualified interface name to generate implementation of.
  • The result of the run must be a generated java code with Impl suffix, extending (implementing) given class (interface).
  • It must be possible to compile generated code without errors.
  • Generated class cannot be abstract.
  • Generated methods must ignore arguments and return default value of appropriate return type.
  • Input classes or interfaces do not utilize generics.

5. Jar: Jar Implementor

  1. Create .jar file including compiled Implementor and all related classes.
    • Created archive must be runnable using command java -jar
    • All additional command line arguments must be passed to Implementor
  2. Modify Implementor . With additional argument -jar it must create .jar archive including generated implementation of given class or interface.

6. Javadoc: Implementor Javadoc

  1. Add comprehensive documentation to solutions of problems 4 and 5 using Javadoc.
    • All classes and all methods (including private ones) must be provided with documentation.
    • Documentation must be compilable without errors.
    • All links to standard library classes must be valid.

7. Basic parallel computing: Iterative parallelism

Develop class IterativeParallelism , processing lists in multiple threads.

Оцените статью