1/50
Topics include: Qt , Git , Software Development Lifecycle, and Data Science and Machine Learning
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
QMainWindow (class)
Class that your main window class inherits from that provides a framework to connect your backend .cpp file to your frontend .ui file
QWidget (class)
Class all widgets in Qt inherit from that gives them all common methods and fields. Allows for polymorphism.
ui (field)
Pointer to a list of pointers to the widgets in your UI
Connect (method)
Used to connect a slot to a signal by taking in the widget, signal for the widget, this, and the slot function.
Slots
Functions you make to respond to a signal
Signals
A trigger that is activated when an event happens (such as &QPushButton::clicked or &QTableWidget::cellClicked)
Working file/modified file
A file that has been modified from the last commit but not yet been staged or saved
Staging file
Getting a file ready to be committed but not yet committed. Done after a file is modified.
Committed file
Changes are saved to the git branch you’re working on
git add <fileName>
Moves fileName to staging status
git commit -m “description”
Commits all changes made by files currently in staging status, leaves message of description to describe the commit
git log
Lists past commits of your code
git status
Gives status of files you have in your branch
Untracked file
File that has never been committed
.gitignore
File that holds every file to ignore when committing
git diff
Shows differences between current files and most recently committed version
git commit -a -m ”description”
Stages and commits all working files and staging files.
git branch <branchName>
Creates new branch named branchName
git checkout <branch> / git switch <branch>
Switches to specified branch
git merge -m “description” <branch>
Merges specified branch with main and includes specified description.
<<<<<<< HEAD
edits in main branch
=======
edits in branchname branch
>>>>>>> branchname
File format for a merge conflict, delete <<<<<<<HEAD, =====, and >>>>>>>mybranch and choose whichever edit you want to keep,
git branch -d <branch>
Delete specified branch
Interviews
Start with a general overview question and ask follow up questions to understand actions, frustrations, skill level, variations in users, and goals. Try to understand the issue, don’t directly ask if they want an app that does X.
Personas
Task focused biography of the user we are designing for, a generic user that acts as a representation of our desired user base. Describes current behaviour
Scenarios
Describes the interactions between the persona and the system. Both the functional behaviour of the system (what it does and not how) and the goal driven behaviour of the persona.
User Requirements
High level overview of what our system should do, obtained from scenarios
System Requirements
Detailed description of system’s functions, services, and operational constraints. Obtained from user requirements and more specific.
Minimum Viable Product
Smallest version of the system that delivers value, subset of the requirements that we implement first. Designed in a way that it can be integrated and built into a full product.
Class Diagram Arrow
Shows that a class inherits from the class the arrow is pointing towards (Checking and Savings inherit from Account)
Class Diagram Multiplicity
Shows how many objects can be associated with that relationship (number is towards the class it applies to) (ex from diagram, each account only has one customer) (#..* shows that it can be # or more)
Model-View-Controller Architecture
Has a model (backend .cpp file) and a view (frontend .ui file in qt) that are connected through a controller (mainwindow.cpp in qt).
Data Science Pipeline
Collection, processing, exploration/visualization, analysis/machine learning, insight
Data Processing
Putting the raw data you collected into a format that is good for data science. Normalizing values, removing outliers, handling null values, etc.
AI
General ability of computers to emulate human thought
Data Science
Application of computational, statistical, and visualization techniques to extract and interpret knowledge from large amounts of data.
Machine Learning
Science of getting computers to realize a task without being explicitly programmed.
Supervised Learning
Give model input/output pairs to find patterns in
Unsupervised Learning
Give inputs only, model has to find a structure within them to classify them by/predict future values for
Classification
Separate data into predefined groups. Predicting a discrete-valued quantity. Can be binary (assign it 0 or 1/ true or false) or multiclass (assign it 1, 2, 3, …, k).
Regression
Predicting a continuous variable. Provide a predicted output when given a new input (what will the weather be tomorrow or what should this house cost if it is this size?)
Training data
Data we feed the model to learn from, in supervised learning this will include both input/outputs and for unsupervised learning it will be just inputs
Test data
Data we know the true values of that we feed to the model to evaluate how accurate its predictions are compared to our true values.
Confusion Matrix
Describes performance of a classification model by showing a table of true positive, false positive, true negative, and false negative values for the test data.
False Negative
A value that is actually true that the model classifies as false
False postive
A value that is actually false that the model classifies as true.
Accuracy
Ratio of correctly predicted observations to total observations. How many predictions did the model get right?
Precision
Ratio of correct predictions for either T/F to all predictions of either T/F. (Correct T/All predicted T or correct F/all predicted F).
Recall
Ratio of correct predictions either T/F to all real T/F values. (TP/(TP+FN) or (FP/(FP+TN))
F1 Score
Weighted average of precision and recall. F1>0.9 is excellent, 0.8-0.9 is good, and 0.5-0.8 is average.
Linear separator
Divides data with a line, above the line is one class below the line is a different class.
Decision Tree
More granular method of classifying data. Looks at one variable at a time and asks a question to classify the instance.