Computing geodesics on meshes is a classical problem in computational and differential geometry. It measures the length of the local shortest path with minimum curvature along the surface between two points. Previous studies have documented many important properties of geodesics, such as being a distance metric, locally isotropic and invariant to isometric transformation. With those properties, geodesic distance could be considered as a more general definition of Euclidean distance. Thus, it plays an important role in constructing various algorithms, solving many real-world problems and developing countless applications in a wide range of fields, including computer graphic, digital geometric processing, computer vision and image processing, etc.Although computing discrete geodesics has been widely studied, there are still many difficult barriers in finding of geodesic distances and paths, including high computational cost, dependence on quality of the input mesh and scalability for other input data types with less connectivity information. Effectively computing discrete geodesics overcoming those issues can be a key to open larger doors to solving a lot of related problems.Traditionally, the proposed geodesic algorithms have tended to focus on geodesics between vertices rather than between arbitrary points on input mesh surfaces. Geodesics between two arbitrary points could be computed in a simple but inaccurate way using interpolation or in other way using re-triangulation which always is very expensive and can globally change the topology of the input meshes. The lack of this ability in computing geodesics can diminish its area of applications.This thesis aims at developing efficient and flexible geodesic algorithms to address the challenges of computing geodesics at vertices/surface points on large real-world models with high time performance for interactive applications. Our contributions include: i