How to teach algorithms: implementation or application?
The answer here, as it seems to be so often, is "it depends." The courses you've compared are comparing apples to oranges. Which are you trying to make, apple juice, or orange juice? You have to select to version implementation or application, which best moves the lessons, and the students, toward the objectives and goals set for the course.

The Apples



Coursera (AP CS A): The students are provided the finished algorithms and expected to apply them properly to solve some larger problem. The emphasis is on solving the problem with the given tools, not creation of the tools. All the coding, by the student and supplied to the student, is done in Java.


Target


Java
Object-oriented methodology
Problem solving

Pros


The students have a firm foundation in Java and are ready for 2nd semester college courses employing Java
The students can understand, and use, the object-oriented programming paradigm common in most newer development models.

Cons


While students will have more to learn in Java before using it professionally, they will need to return to the beginning to switch to a different language.
The students will have a good grasp of using existing implementations of common algorithms, yet not have the skills to develop new algorithms to solve problems they don't know about yet.



The Oranges

CS50 AP (AP CSP): The discussion leads from comparing the algorithms to see how they do what they do, and probably the costs of doing it each way, to creating the code that will actually do that sort. The clear pseudo-code that they are given the programming assignment was presumably developed during the discussions of the algorithms, and is merely repeated in a concise format for them to convert to C code. They are learning how to conceptualize the objective, work through creating the algorithm and carry that into live code.


Target


Computational thinking

Pros


The student have a firm foundation for implementing new algorithms, as well as an understanding of how to apply current, and new, algorithms
The students are equipped with an understanding of how to apply computational thinking to solve new and unique problems not yet reduced to algorithms

Cons


The students may have used a language which is not used in later courses, so they will have learn a new language to continue with programming courses
-The students may not have been exposed to, or practiced much with, the object-oriented approach.