This will be an exploration of fundamental philosophical issues raised by the practice of science. It will cover issues in scientific methodology, scientific knowledge, the language of science, the relation between scientific theories and reality, the rationality of science and progress and the relation between science and society. By examining these issues we shall attempt to solve the demarcation problem and answer the following questions. Is there a principled way to distinguish legitimate scientific enterprises from pseudo-sciences? Is the special status of science in our society justified? Or is the practice of science just one human activity among the others? Is the practice of sciences immune from the influence of culture and ideology? What should the relationship between science and philosophy be?