All Projects → adnanaziz → Epijudge

adnanaziz / Epijudge

Licence: other
EPI Judge - Preview Release

Programming Languages

python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
C++
36643 projects - #6 most used programming language
javascript
184084 projects - #8 most used programming language
Makefile
30231 projects
CSS
56736 projects

Projects that are alternatives of or similar to Epijudge

Data Structures And Algorithms
Data Structures and Algorithms implemented In Python, C, C++, Java or any other languages. Aimed to help strengthen the concepts of DS&A. Give a Star 🌟 if it helps you.
Stars: ✭ 146 (-93.41%)
Mutual labels:  algorithms
Play Leetcode
My Solutions to Leetcode problems. All solutions support C++ language, some support Java and Python. Multiple solutions will be given by most problems. Enjoy:) 我的Leetcode解答。所有的问题都支持C++语言,一部分问题支持Java语言。近乎所有问题都会提供多个算法解决。大家加油!:)
Stars: ✭ 2,216 (+0.05%)
Mutual labels:  algorithms
Algorithms Learning
Algorithms learning note and LeetCode solution
Stars: ✭ 160 (-92.78%)
Mutual labels:  algorithms
Acm Icpc Cheat Sheet
Cheat sheet for ACM-ICPC. In memory of those good old days.
Stars: ✭ 148 (-93.32%)
Mutual labels:  algorithms
Awesome
🚠Algorithm And Data Structure
Stars: ✭ 152 (-93.14%)
Mutual labels:  algorithms
Algorithms Leetcode Javascript
Algorithms resolution in Javascript. Leetcode - Geeksforgeeks - Careercup
Stars: ✭ 157 (-92.91%)
Mutual labels:  algorithms
Image Comparison
Published on Maven Central and jCenter Java Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison. Can be used for automation qa tests.
Stars: ✭ 145 (-93.45%)
Mutual labels:  algorithms
Algorithm
The repository algorithms implemented on the Go
Stars: ✭ 163 (-92.64%)
Mutual labels:  algorithms
Embb
Embedded Multicore Building Blocks (EMB²): Library for parallel programming of embedded systems. Star us on GitHub? +1
Stars: ✭ 153 (-93.09%)
Mutual labels:  algorithms
Sc
Common libraries and data structures for C.
Stars: ✭ 161 (-92.73%)
Mutual labels:  algorithms
Labs
Labs for the Foundations of Applied Mathematics curriculum.
Stars: ✭ 150 (-93.23%)
Mutual labels:  algorithms
The Python Workshop
A New, Interactive Approach to Learning Python
Stars: ✭ 150 (-93.23%)
Mutual labels:  algorithms
Data Structures Algorithms
Your personal library of every algorithm and data structure code that you will ever encounter
Stars: ✭ 157 (-92.91%)
Mutual labels:  algorithms
Books
📚 All programming languages books
Stars: ✭ 148 (-93.32%)
Mutual labels:  algorithms
Funnyalgorithms
A repository with a bunch of funny algorithms, beginners friendly
Stars: ✭ 161 (-92.73%)
Mutual labels:  algorithms
Hackerrank
A collection of algorithms and solutions to problems in various languages from the site Hacker Rank.
Stars: ✭ 145 (-93.45%)
Mutual labels:  algorithms
Pygm
🐍 Python library implementing sorted containers with state-of-the-art query performance and compressed memory usage
Stars: ✭ 156 (-92.96%)
Mutual labels:  algorithms
Stats
A well tested and comprehensive Golang statistics library package with no dependencies.
Stars: ✭ 2,196 (-0.86%)
Mutual labels:  algorithms
Visualizer
A single-page website aiming to provide innovative and intuitive visualizations of common and AI algorithms.
Stars: ✭ 163 (-92.64%)
Mutual labels:  algorithms
C Plus Plus
Collection of various algorithms in mathematics, machine learning, computer science and physics implemented in C++ for educational purposes.
Stars: ✭ 17,151 (+674.31%)
Mutual labels:  algorithms

EPI Judge

Beta 5

Introduction

EPI Judge is meant to serve as a companion to our book Elements of Programming Interviews. Specifically, this project consists of the following:

  • Stub programs for each problem in our book in Python, Java, and C++
  • Test-cases that cover common corner-case and performance bugs
  • A framework for running these tests on your implementation on your machine

Installation

Here's how to download the judge:

$ git clone https://github.com/adnanaziz/EPIJudge.git

If you do not have git, here's a good tutorial on installing git itself.

Running the judge using IDEs

Check out these one minute videos to see how easy it is to get started with the judge.

Python

PyCharm, Eclipse, NetBeans

Java

IntelliJ IDEA, Eclipse

C++

CLion, Visual Studio 2017

Running the judge from the command line

Python

$ python3 <program_name>.py

Java

Use the Makefile.

Compile and run a specific program:

$ make <program_name> 

Example:

$ make Anagrams

Compile and run the last program that you edited:

$ make

C++

You can manually compile and run all programs by directly invoking GCC and Clang.

$ g++ -pthread -std=c++14 -O3 -o anagrams anagrams.cc

You can also use the provided Makefile: make <program_name>. You can also use CMake with the provided CMakeLists.txt file.

$ make 

The default Makefile target is the last edited file.

$ make anagrams

FAQ

  • How can I contact the authors?

Please feel free to send us questions and feedback - [email protected] and [email protected]

  • Help, my EPIJudge is not working, what should I do?

If you do have issues, e.g., with install or with buggy tests, feel free to reach out to us via email. Please be as detailed as you can: the ideal is if you can upload a screencast video of the issue to youtube; failing that, please upload screenshots. The more detailed the description of the problem and your environment (OS, language version, IDE and version), the easier it’ll be for us to help you.

  • I'm new to programming, and don't have any kind of development environment, what should I do?

The IntelliJ Integrated Development environments described above are best-in-class, and have free versions that will work fine for the EPI Judge. They do not include the compilers. You can get the Java development environment from Oracle, and the Python development environment from Python.org. For C++, you have multiple options. The simplest is to install VisualStudio, which includes both the IDE and the compiler. Google is a good resource for installation help.

  • What compilers are supported for judge?

    • C++
      • Linux
        • GCC 5.4.1 and newer
        • Clang 4.0 and newer
      • OS X
        • Apple LLVM Clang 9.0.0 and newer
      • Windows
        • Visual Studio 2017 and newer
        • MinGW GCC 5.4.0 and newer
        • LXSS (Windows Subsystem for Linux) GCC 5.4.0 and newer
    • Java
      • Java 9 and newer
    • Python
      • Python 3.7 and newer
  • What compilers are supported for solutions?

    • C++
      • Linux
        • GCC 7.0.0 and newer
        • Clang 5.0 and newer
      • OS X
        • Apple LLVM Clang 9.0.0 and newer
      • Windows
      • Visual Studio 2017 and newer
        • MinGW GCC 7.2.0 and newer
        • LXSS (Windows Subsystem for Linux) GCC 7.2.0 and newer
      • Java
        • Java 9 and newer
      • Python
        • Python 3.6 and newer

Let us know if you managed to compile with an older version.

  • What does the UI look like?

Take a look at this screenshot.

  • How can I understand the test framework better?

The judge harness is fairly complex (but does not use nonstandard language features or libraries). You are welcome to study it, but we’d advise you against making changes to it (since it will lead to nasty merge conflicts when you update).

  • How do I import the C++ project?

If you want to import the project into your favourite IDE, you probably need to create IDE project with CMake (no need to do it for CLion, it supports CMake out-of-the-box).

Here is an example recipe for generationg Visual Studio project (list of all CMake supported IDEs). After installing CMake, open your terminal, go to epi_judge_cpp folder and run following commands:

mkdir vs
cd vs
cmake -G "Visual Studio 15 2017" ..

Then just open epi_judge_cpp/vs/epi_judge_cpp.sln solution with Visual Studio and it will load all EPI programs.

Tracking your progress

The file index.html in the root of this project tracks your progress through the problems. Specifically, there's an expanding tab for each chapter. Click on it, and you will see your progress, e.g., as below. This file gets updated each time you execute a program. You can use this file to map book problems to stub programs.

Acknowledgments

A big shout-out to the hundreds of users who tried out the release over the past couple of months. As always, we never fail to be impressed by the enthusiasm and commitment our readers have; it has served to bring out the best in us. We all thank Viacheslav Kroilov, for applying his exceptional software engineering skills to make EPI Judge a reality.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].