My name is Jifeng Wu. I am a Computer Science Master's student at UBC working with Caroline Lemieux in the Software Practices Lab. I am interested in Programming Languages, Software Engineering, and Data Science.
Before that, I obtained my Bachelor of Engineering from the School of Computer Science, Wuhan University. My bachelor's thesis, "Effective Stack Wear Leveling for NVM," was advised by Qingan Li, and I have also done research in graph data mining, as advised by Yuanyuan Zhu. You can see my Wuhan University Student's Transcript here.
In my free time, I enjoy deriving personal interpretations of various concepts in the natural and social sciences, computer programming (I master C++, Python, and Shell, and am learning Rust and OCaml; I am also an avid Unix fan), photography, hiking, cycling, and cooking.
- Strategies, Tactics, and Mindset Learned from "The Ph.D. Grind"
- Linear Regression, Ridge Regression, Lasso Regression, and Kernel Ridge Regression
- Giving Talks on Research: Whats and Hows
- From the Fourier Series to the Fourier Transform to the Discrete-time Fourier Transform: Demystifying the Formulas
- Type-Theoretic Constructs in C++
- Python in a Functional Style: Closures, Generators, and Coroutines
- Understanding the Formulation of Information Entropy
You can find my blog and diary here, my CV here, and feel free to contact me through my social media links:
Work in Progress
- QuAC: Quick Attribute-Centric Type Inference for Python (Under Review for OOPSLA 2024)
- We implemented QuAC, a novel type inference tool for Python that collects attribute sets for Python expressions and uses information retrieval techniques to predict classes. Compared to baseline methods, QuAC efficiently handles rare non-builtin types and container type parameters and improves performance by an order of magnitude.
- Mentor: Prof. Caroline Lemieux
- Time: July 2023 - Present
- Poster and lightning talk of the prototype presented at the PNW PLSE 2023 Workshop
Papers
- Effective Stack Wear Leveling for NVM
- We increase the lifespan of non-volatile memory with limited write durability by implementing an LLVM pass that can convert wear-heavy loops in programs into recursive functions.
- Published in: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (2023)
- Authors: Jifeng Wu, Wei Li, Libing Wu, Mengting Yuan, Chun Jason Xue, Jingling Xue, Qingan Li
- Mentor: Prof. Qingan Li
- Time: August 2021 - August 2022
- Paper
- GitHub Repository
Essays
- EECE 571F Deep Learning with Structure Project "The Impact of Synthetic Data on Image Captioning Models"
- Significant improvements in the quality and availability of generative models have led to widespread synthetic data across the Internet. Motivated by previous work on synthetic data from an "in-the-wild" Stable Diffusion model improving accuracy and robustness of image classification, this paper investigates the influence of synthetic data on image captioning, a much more challenging task bridging computer vision and natural language processing, through experiments conducted with the classic "Show and Tell" model.
- Time: October 2023 - December 2023
- Essay
- GitHub Repository
- CPSC 548: Directed Studies Report on Program Synthesis
- This directed studies report on program synthesis explores fundamental concepts and principles, implements and compares classic program synthesis algorithms, and provides insights into their strengths, weaknesses, challenges, and future research directions. The experience has equipped me with knowledge and skills applicable to future research, such as working with SMT solvers (constraint solvers) and automating the data extraction and visualization processes.
- Mentor: Prof. Caroline Lemieux
- Time: January 2023 - April 2023
- Essay
- GitHub Repository
- Community Detection Using Social Relations and Trajectories
- Community detection is an essential task in social network analysis, but many friends on social networks are not close to one another in the real world. We introduce a novel approach that utilizes user trajectories to identify cohesive groups of users who frequently hang out together and presents algorithms for efficiently calculating spatiotemporal similarity between trajectories and community detection.
- Mentor: Prof. Yuanyuan Zhu
- Time: September 2019 - June 2021
- Essay
- GitHub Repository
Conference Experiences
- Time: October 7, 2023
- Observations and Gained Insights
- Role: Mentee, Programming Languages Mentoring Workshop
- Time: September 4, 2023
The Cornell, Maryland, Max Planck Pre-doctoral Research School 2023
- Role: Attendee
- Time: August 6 - 13, 2023
- Certificate
- Observations and Gained Insights
- Role: Student Volunteer
- Time: July 17 - 21, 2023
- Observations and Gained Insights
- Role: Presenter
- Time: May 9, 2023
- Presented poster and lightning talk on a prototype of "QuAC: Quick Attribute-Centric Type Inference for Python."
- Observations and Gained Insights
Links
Functional Programming
Theory
- Nothing is lost, everything is created: introduction to persistent data structures (also discusses the lineage of Functional Programming Languages and what are ADTs)
- Persistent data structures in functional programming
- Zippers
Practice
- My introduction to Z3 and solving satisfiability problems
- OCaml Programming: Correct + Efficient + Beautiful
- Caml trading - experiences with functional programming on Wall Street
- Resources for Functional Array Programming for Data Science
Research Programming
Machine Learning
Business Strategies
LLVM
Trajectory Data Mining
- A survey of trajectory distance measures and performance evaluation
Community Detection
- The Core Decomposition of Networks: Theory, Algorithms and Applications