CS7646 – Machine Learning for Trading – Spring 2023
Course Development Recommendations, Guidelines, and Rules
The following development requirements and guidelines apply to all projects unless otherwise noted in the specific project requirements.
Always Allowed
- You can use any library that is on the Local Environment Setup page.
- You may use any standard python library in your implementations (except for the Python OS library, which is always prohibited).
- You may use code provided by the instructional staff or explicitly allowed by the instructional staff.
- You may use code written in prior terms of CS7646 and other Georgia Tech OMS courses, provided: 1) you are the sole author, 2) the code fully meets the assignment requirements, and 3) the code is properly cited and referenced.
Allowed with some exceptions (exceptions stated in project wiki)
- Files may be read using only 1) the functions in the util.py file or 2) other methods provided in “test” files that accompany specific projects, unless prohibited in the project wiki. As an example of an exception, Project 5 also allows the use of pandas.read_csv() to read the orders files alone.
Always Prohibited
- By default, code must not cause any information to be printed on a window/screen/console/terminal in the implementation submitted for grading.
- Code must never cause charts to appear on a window/screen/console/terminal in the implementations submitted for grading (e.g., Do not use plt.show() or any function that calls plt.show()). Be aware that some functions in util.py may be useful in debugging because they will display charts on a local machine but should not be used in the implementation submitted for grading.
- Code must not use global variables. (E.g., All code should exist as functions or classes.)
- Code must never use the Python OS library, which is always prohibited.
- Code must never use any library that is NOT specified in the Allowed section (above) or in the Project instructions.
- You may NOT move, edit, or copy environment files. For example, do not edit or copy util.py.
- You may NOT move files or folders to different locations to get your code to work.
- You may never use code you did not write yourself (except for properly cited code that is provided by the instructional staff).
- You must not edit (i.e., add, change, or delete) anything (including spaces) above the line that reads: “—do not edit anything above this line—“.
- Code must not create any new directories or temporary working files.
- An implementation must NOT use an absolute Import statement. An absolute import statement is one that includes a folder name in the statement. For example, if a specific directory (e.g., “assess_Learners”) is used in the import or from statement, we consider it an absolute import. For, example, “from assess_learners.DTLearner import DTLearner”.
- An implementation cannot leverage an existing Machine Learning package or library.
- Any Classes (other than Random) that create their own instance variables for later use (e.g., learners like kdtree).
- Code that includes any data reading routines. The provided testlearner.py code reads data for you.
Prohibited with some exceptions (exceptions stated in the project wiki)
- Random seeds may not be set in a project unless specifically allowed the project wiki. When allowed, a seed must: 1) be set only once per execution cycle, 2) be contained only in the designated file as stated in the project instructions, and 3) use your numeric GT ID as the seed value.
- You may not share Tables, Charts, or Statistics unless specifically allowed in dedicated threads in the class online forum.
Recommendations
While the use of print statements is useful when debugging, the code cannot print when in Gradescope. One way to ensure that your code prints locally, but not in Gradescope is via the use of a command-line argument.
The following code segment shows how implementation will print to a screen when –debug appears as the last statement in a command line. Within an IDE, this statement will need to be explicitly added as a parameter. Assume a file named testFile.py contains the following:
When this code is invoked as:
It will not print anything on the screen.
However, when it is invoked as:
It will print “Hi Dr. Joyner, This could have been a debugging statement instead.”
Note that code execution might result in “warning” messages appearing on a screen. Warning messages are okay, although we recommend addressing each warning message if possible.