A complex project may consist of many programming language source files as well as input/output data files. Also depending on complexity of the problem the project may have one or more applications (executables). A good programming practice suggests a hierarchical storage for all of this data on the disks:
Top_Dir -----+----- bin (executables)
!
+----- input (input data)
!
+----- output (output data/ results)
!
+----- src (programming language sources)
!
+----- lib (libraries)
!
+----- jobs (OS batches/scripts)
!
+----- work (temporary space/files)
The binary data files should be stored in separate directories to simplify the platform portability (Mac <–> Unix <–> MS Windows) for plain text files.