Deep Learning and Software Engineering - A Retrospective and Paths Forward
Association for Computing Machinery (ACM) via YouTube
Overview
Syllabus
Intro
Talk Outline
What is Machine Learning?
The Hierarchy of Artificial Intelligence
Machine Learning Taxonomy
ML Representations
Machine Learning vs. Traditional Programming
When do We Need Machine Learning?
The Computational Learning Process
Supervised ML Applied to Image Classificatio
The Five Elements of the Learning Process
Feature Engineering for "Canonical" Machine Learnin
"Canonical" ML Image Classification
Shortcomings of Traditional ML Techniques
The Advent of Deep Learning
Neurons: The Building Blocks of Rich Features
Neural Networks for Rich Embeddings
Automated Feature Discovery
How Can a Model Learn from Deep Embedding
CNN-Accuracy
Deep Learning Advantages and Drawbacks
Mining Software Repositories
Automation in Software Engineering Research
Systematic Literature Review
SLR Search Process
Publication Distribution By Venue
Data Processing Techniques by SE Task
DL4SE Neural Network Architectures
DLUSE Techniques to Combat Overfitting
DL4SE Benchmarks
Consideration of Occam's Razor
Non-Reproducibility Factors
Resulting Guidelines
Future Research Directions in DL4SE (cont'd)
Ethical and Social Considerations of DL4SE
HCI Aspects of Al-Assisted Developer Tools
New Application Areas and Data-Sources
Combining Empirical Knowledge with Deep Learning
Software 1.0 vs. Software 2.0
Software 2.0 = DL-based systems
Optimization by Gradient Descent to Find The Progra
Real-world DL-based System (Software 2.0)
The Transition to Software 2.0
Traditional SE Development vs. DL Developmer
Challenges: Software Development for DL
Challenges: Software Maintenance for DL
Challenges: Testing for DL
Challenges: Debugging for DL
Challenges: DL Deployment
What are the Next Steps?
Taught by
Association for Computing Machinery (ACM)