FA595 Financial Technology (FinTech)
Course Catalog Description
This course deals with networking and machine learning technologies underlying activities of markets, institutions and participants. The overall purpose is to give students a working understanding of a wide variety of the technological tools that permeate modern life. The successful student will be able to extend this knowledge, understand systems currently in place and use new developments in the field as they are created.
Meetings will be in person/streamed on Canvas, once per week. Recordings of these lectures will also be available online through Canvas. Lectures will focus on either understanding or implementing some element of technology.
As this course is being given as both an in person and an online class, use of the discussion boards on Canvas for questions and answers is highly encouraged.
Assessments will be conducted through individual or group assignments. They will emphasize the need to communicate code clearly for collaboration or review. Students will become well versed in the use of GitHub for sharing code
and managing versions.
The intent of this structure is to mimic the basic structure one might encounter in industry where code bases will
often be transferred from person to person as staff changes over time. As a result, there will be a focus on writing
code that can be understood and maintained.
The typical Stevens grading scheme for 500 level courses will apply to this class (of specific note: C minus, D plus and
D all become F). All students are expected to abide by the Stevens Honor System, as they would in all classes. The final grade in the class will be determined in the following manner:
- 25% Homework Assignments
- 25% Midterm Project
- 50% Final Project
As this is designed to be a project based course, there will be no in class examinations.
Percentages of points earned will be converted to letter grades as follows:
- 90s - A
- 80s – B
- 70s – C
- less than 70 – F
The high end of these ranges (except A and F) will earn a +. The low end of these ranges (except F) will earn a −.
||Python Review/Intro to Git
- Set up a Python3.6 development environment
- Understand the structure of an OOP Python project
- Know how to use Numpy, MatPlotLib, OpenCV, etc
- First exposure to setting up a Git project
||AWS and GitHub
- Become familiar with the command line in AWS
- See how to use PuTTY to connect to an AWS instance
- Learn how to deploy code from a Git project
||Flask and cURL
- Add Flask to an existing Python project to make it available on the web
- Understand the meaning and purpose of cURL calls
- Learn to use the requests Python library (GET and POST)
- Discussion about AWS Security Groups
- Introduction to HTML Templates
- Learn to read HTML/URL encoding/etc
- Use the request library to get information from an external source
- Implement a data scraper
- Create a Flask app that:
- Uses a POST request to accomplish something
- Uses a GET request to display the graph with an HTML render template
- Is open source and available on Git
- Is hosted on each team member’s AWS account
- Has a README with instructions for deployment to AWS by someone who will NOT read your source code
- Introduction of the midterm project
- Learn about NLTK and Textblob
- Implement stemming, lemmatization and VADER/TextBlob Sentiment Analysis
||Math on words
- Understand vector spaces
- Using SpaCy for word vectorizations
- Creating a classifier
- Short description of SQL
- Intro to Graph Theory
- Creating a classifier
- Setting up and connecting to Neo4J
- Making a Neo4J request from Python
||Science Kit Learn
- What is AI and ML?
- Examination of the fit/predict archetype
- Using fit/predict as Flask endpoints
||Science Kit Learn 2
- sklearn’s toy data sets
- Linear regression techniques
- KMeans Clustering and the Elbow Heuristic
||What is a Neural Network?
- A refresher on Linear Algebra
- How prediction works
- How learning works through back propagation
- Sample Neural Networks for basic logic gates
|| Using TensorFlow
- Creating the structure of a Neural Network
- Training and Testing
- MNIST handwriting recognition with Dense Layers
||Docker and Containers
- An explanation about Virtual Machines
- What does Docker do?
- Using docker-compose.yml to standardize deployment
||What is Blockchain?
- What problem does block chain solve?
- What is a hashing algorithm?
- What is a digital signature?
- How do we, theoretically, start our own cryptocurrency?