Following are the categories and problem statements under those respective categories. Team can pick up any one of those problem statement and build the solution using their ideas. We have also suggested certain tools and platform you can use to build those solutions, you are free to choose any of them or anything else you feel suitable, but do not forget to integrate Microsoft platform services in your solutions.
- Graham Scan algorithm for Convex Hull O(n * log(n))
- Online construction of 3-D convex hull in O(n^2)
- Bentley Ottmann algorithm to list all intersection points of n line segments in O((n + I) * logn)
- Suggested Reading - http://softsurfer.com/Archive/algorithm_0108/algorithm_0108.htm
- Rotating Calipers Technique
- Suggested Reading - http://cgm.cs.mcgill.ca/~orm/rotcal.html
- Problems - Refer the article for a list of problems which can be solved using Rotating Calipers technique.
GSoC project page: https://summerofcode.withgoogle.com/archive/2016/projects/6309614853292032/
Hi everyone! I'm Eklavya, a Google Summer of Code student working on Zulip. This summer, I mostly worked on 2 things for Zulip:
- Making Zulip's code Python 3 compatible.
- Adding mypy type annotations to Zulip's python code.
#!/usr/bin/env python | |
""" | |
Tic-Tac-Toe | |
2 players 'a' and 'b' are playing the game. Player 'a' always moves first. | |
board_state is a 9-character string (row-major), each character representing who marked that cell. | |
'0' means that the cell is unmarked. | |
outcome is a one-character string containing 'w', 'l' or '0'. | |
""" |
from __future__ import print_function | |
import time | |
import sys | |
n = 9 | |
for i in range(n, 0, -1): | |
print(i, "O"*i + " "*(n-i), end='\r') | |
sys.stdout.flush() | |
time.sleep(1) | |
print('0 \nBlastoff!') |
#!/usr/bin/env python | |
""" | |
Controls: | |
Press keys A and D to move rocket 1 | |
Press keys H and K to move rocket 2 | |
Press Ctrl+C to exit | |
""" | |
from __future__ import print_function |
(This guide is meant for beginners. If you have solved 100+ problems and are looking for guidance on how to solve problems involving algorithms and data structures, this document is not for you.)
Competitive Programming is an interesting activity which mixes problem solving with programming. It is not only enjoyable but also very demanded in placements. Competitive programming will make you very good at writing efficient programs quickly.
In this project I will add Python 3 support to Zulip, without breaking Python 2 compatibility. I will also add type annotation (see PEP 483 and PEP 484) to all code. If time is left, I will also add support for platforms other than Ubuntu 14.04.
I am pretty comfortable programming in Python (both Python 2 and 3, but mainly 3). I especially like exploring advanced features of Python. My primary software development experience is with Django. I have used Django in many of my projects. You can view a list of my projects (and more about my skills) at https://sharmaeklavya2.github.io.
#!/bin/bash | |
DB_NAME="$USER" | |
DBMS_SHELL="psql" | |
#if [ "$1" = '--help' ]; then | |
if [[ ( "$1" == '--help' ) || ( "$1" == '-h' ) ]]; then | |
echo "usage: $0 [DB_NAME] [DBMS_SHELL]" | |
echo "default DB_NAME is your username" | |
echo "default DBMS_SHELL is 'psql'" |