JetBrains Academy
The place for learning and teaching computer science your way
JetBrains Academy’s New Projects and Topics: July Update
If you’re learning Python, JavaScript, Kotlin, or Go and you’re interested in adding unconventional projects to your developer portfolio, such as a traffic light, browser game, or account service, we’ve got you covered!
But that’s not all. We’re also introducing 66 new topics across programming languages, algorithms and data structures, system administration and DevOps, and computer science fundamentals. This will allow you to further expand your programming knowledge.
Now, let’s take a closer look at what’s new.
Python (data science, machine learning)
🆕 Python project: Traffic Light (Beta). Hard
In this project, not only will you create your own traffic light app, but you will also gain valuable skills in multi-threading, exception handling, class inheritance, and implementing the circular queue data structure.
🆕 Data science project: Random Forest from Scratch (Beta). Hard
Dive into the implementation of one of the most popular ensemble algorithms, Random Forest. You’ll have the opportunity to build the entire algorithm from scratch using numpy and test it on the titanic dataset from sklearn.
🆕 NLP project: HyperSearch Engine (Beta). Challenging
Build your very own search engine using the TF-IDF algorithm. Your program will be able to highlight the target word and provide context around it.
🆕 Django project: Regex Tester (Beta). Challenging
Harness the power of regular expressions by creating a tool for testing regexes. In this project, you’ll develop a simple regex tester that can store the history of tests, allowing you to tame the complexity of regular expressions.
🆕 Topics:
- Python: Garbage Collector and Memory Leaks
- Django: Model data types
- Flask: Flask Test client, Versioning API
- Data science instruments: Crosstab in pandas, KNeighborsClassifier in scikit-learn
- Machine learning: Preprocessing categorical features, Adaboost, Adaboost: an illustrated walk-through, Gradient boosting, Gradient boosting: the illustrated regression
- NLP: Introduction to Hugging Face, Implementation of transformers in Hugging Face, Hugging Face Datasets, Transformers in NLP, Introduction to dialogue systems, Rule-based dialogue systems, BLEU, ROUGE, N-gram and collocation measures
Last month 5 Python projects got high scores for their usefulness, clarity, and fun from our users. These projects have now been released from Beta and are ready for you to explore:
- Library Management System (Easy)
- Algorithms with IMDB (Challenging)
- HyperSchool (Challenging)
- Opinion Detector (Challenging)
- Spam Filter (Challenging)
Frontend (HTML, CSS, JavaScript)
🆕 Project: Site for Marathon (Beta). Easy
Discover the power of iframes in web development as you learn to seamlessly embed external content within your web pages. Explore the techniques of absolute positioning and z-index to precisely position elements on your page. Gain proficiency in working with images and adding subtle animations to enhance the dynamism of your web page.
🆕 Project: Who Wants to Be a Millionaire (Beta). Medium
Create a browser game while acquiring essential skills in web development. Dive into the world of browser events and learn to effectively handle them, enabling seamless interactivity within your game. Work with JSON objects, allowing you to efficiently store and manipulate game data, and develop your game logic using JavaScript.
🆕 Topics:
- HTML: Tag embed
- CSS: Filters, Media queries, Responsive images and videos, Responsive tables, Viewport
- JavaScript: Self-invoking functions and closures, Server-sent events, Objects prototyping
We’ve also released the Postprocessor project from Beta, with improved content and functionality.
Kotlin
🆕 Project: Bulls and Cows (Beta). Medium
Challenge yourself by creating an advanced version of the classic code-breaking game “Bulls and Cows”. Begin by recreating the original version of the game and then elevate it to new heights with your innovative additions and enhancements.
🆕 Spring Boot project: Account Service (Beta). Challenging
Master the Spring Security module. Gain a solid understanding of user authentication and authorization, allowing you to ensure the utmost security for your applications. Learn how to register security events and familiarize yourself with the latest information security standards for web applications, ensuring your projects meet modern requirements.
🆕 Topics:
- Kotlin: Retrofit, Advanced lambda expressions, Type-safe builders, StringBuffer
- Android: System apps and common intents, Crashlytics, Menus: Options, Popup
- Ktor: DefaultHeaders, Request Validation
- Koin: Koin Annotations
The Blockchain and Cinema Room Manager have also been released from Beta.
Go
🆕 Project: File Type Analyzer (Beta). Challenging
Files come in a variety of formats, often indicated by their names. Even if the file type has been manually changed or removed, information about the type is still embedded within the file. In this project, you’ll build a tool that extracts information from files to determine their type. Experiment with various algorithms and observe how different algorithms impact the tool’s speed.
🆕 Topics: Synchronization with channels, Context cancellation and timeouts
Java
🆕 Topics: Hashing java.security.MessageDigest, Understand the problem, External resources
Algorithms and structures
🆕 Topics: Dynamic programming: another approach, Cryptographic hash functions, Edit distance, Caesar cipher, Vigenère cipher
System administration and DevOps
🆕 Topics:
- Command line: How to parse JSON with jq, Sorting and transforming JSON with jq
- Docker: Docker-compose.yml syntax
- Git: Cherry-picking and checkout options, Git undo/reset
- Kubernetes: Tools for Local Kubernetes Deployment, What is a pod?
Scala
🆕 Topic: Unified types
Fundamentals
🆕 Topics:
- Essentials: Best practices for writing code, 12-factor application: configuration, process and execution
- SQL and databases: Explain, Explain Analyze, Leveraging Built-in SQL Functions and Features, Writing efficient SQL queries
That wraps up this month’s offerings! We hope you’ll enjoy exploring these exciting projects and topics to enhance your programming skills.
Note that projects marked as Beta are still in the early stages of testing. If you’re interested in checking out Beta projects on the platform, make sure the Beta-tester feature is enabled in your profile settings.
If you have any questions or if you would like to share your feedback, feel free to leave a comment below, contact us at academy@jetbrains.com, or share your thoughts with us on Twitter or Facebook.
Enjoy learning!
Your JetBrains Academy team