We investigate a natural language problem of parsing a free text into its discourse structure. Specifically, we look at how to parse free texts in the Penn Discourse Treebank representation in a fully data-driven approach. We first propose a classifier to tackle the hard problem of Implicit discourse relation classification. We then design a parsing algorithm and implement it into a full parser in a pipeline. We present a comprehensive evaluation on the parser from both component-wise and error-cascading perspectives. Textual coherence is strongly connected to a text's discourse structure. We present a novel model to represent and assess the discourse coherence of a text with the use of our discourse parser. Our model assumes that coherent text implicitly favors certain types of discourse relation transitions. We implement this model and apply it towards the text ordering ranking task, which aims to discern an original text from a permuted ordering of its sentences. Lastly, we demonstrate that incorporating discourse features can significantly improve two downstream natural language processing (NLP) tasks -- argumentative zoning and summarization -- in the scholarly domain.