Course: CELPIP: Reading and Writing Strategies
I will first provide a concise composition (13 sentences) in English, followed by the requested structured lecture sheet in semantic HTML. Composition (13 sentences) Welcome to the "Getting Started" chapter, where we build a firm foundation for data analysis using R and effective CELPIP preparation. First, set up your R environment by installing R from CRAN and a productive IDE such as RStudio to streamline development. Install essential packages like the tidyverse to access powerful tools for data manipulation with dplyr and plotting with ggplot2. Learn to import datasets (for example, read_csv("data.csv")), inspect them with head() and str(), and handle missing values before analysis. Use dplyr verbs—filter, select, group_by, summarize—to transform and summarize data efficiently. Visualize aggregated results with ggplot2, creating clear charts such as bar plots and scatter plots to reveal patterns. Begin simple statistical modeling with lm() for linear regression to explore relationships and generate interpretable summaries. In parallel, understand CELPIP’s four skills—listening, reading, writing, and speaking—and practice them consistently to track improvement. Leverage R to analyze and visualize practice test scores so you can target weak areas and measure progress over time. Paraphrasing and academic integrity are important: rephrase results and interpretations in your own words when writing reports. Time management and planning will help you balance coding practice, test preparation, and revision sessions. Keep code and analyses reproducible by documenting steps and saving scripts; reproducibility supports collaboration and review. Finally, iterate: clean data, visualize, model, paraphrase findings, and refine both your R skills and language proficiency as you progress. Semantic HTML Lecture SheetLesson
Topic: Getting Started — Data Analysis with R & CELPIP Introduction
Learning Outcomes
- Install and configure R and RStudio and understand the RStudio interface.
- Install and load essential packages such as tidyverse and ggplot2.
- Import, inspect, clean, and manipulate data frames using readr and dplyr.
- Create basic visualizations with ggplot2 and interpret them.
- Fit a simple linear model with lm() and read the model summary.
- Understand CELPIP test components and strategies for improvement.
- Apply reproducible workflows and paraphrase findings for reports.
Conceptual Explanation
Setup: Install R from CRAN and optionally RStudio; familiarize yourself with the four main panels: script editor, console, environment/history, and files/plots/packages/help.
Essential packages: tidyverse (dplyr, ggplot2, readr). Install example:
install.packages("tidyverse")
library(tidyverse)
Import & inspect data:
# Read CSV and inspect
products <- read_csv("data.csv")
head(products)
str(products)
Data manipulation examples:
# Filter and summarize
expensive_products <- products %>% filter(price > 20)
average_price_by_category <- products %>% group_by(category) %>% summarize(average_price = mean(price, na.rm = TRUE))
Visualization example:
ggplot(average_price_by_category, aes(x = category, y = average_price)) +
geom_bar(stat = "identity") +
theme_minimal() +
labs(title = "Average Price by Category", x = "Category", y = "Average Price")
Basic modeling example:
model <- lm(price ~ feature1 + feature2, data = products)
summary(model)
CELPIP overview: four skills — Listening, Reading, Writing, Speaking — practice strategies include timed practice, active listening/reading, writing drafts, and recorded speaking practice. Use R to analyze practice scores and visualize progress.
Reproducibility & paraphrase: save scripts, comment code, and paraphrase statistical interpretations in plain English to avoid plagiarism.
Bilingual (EN → বাংলা)
EN: Install R and RStudio to begin. → বাংলা: R এবং RStudio ইনস্টল করে শুরু করুন।
EN: Use tidyverse for data manipulation and ggplot2 for visualization. → বাংলা: ডেটা হ্যান্ডলিং-এর জন্য tidyverse এবং ভিজ্যুয়ালাইজেশনের জন্য ggplot2 ব্যবহার করুন।
EN: Clean data, visualize, model, then paraphrase results. → বাংলা: প্রথমে ডেটা পরিষ্কার করুন, ভিজ্যুয়ালাইজ করুন, মডেল তৈরি করুন এবং ফলাফল পুনঃবর্ণন করুন।
EN: CELPIP tests listening, reading, writing, and speaking. → বাংলা: CELPIP পরীক্ষা শ্রবণ, পাঠ্যবোধ, লেখা এবং কথা বলার দক্ষতা মূল্যায়ন করে।
Important Notes
- Always check data types with str() and convert factors/characters as needed.
- Use na.rm = TRUE when aggregating to handle missing values safely.
- Label plots and axes clearly; include units where appropriate.
- Interpret model output (coefficients, R-squared, p-values) in context.
- For CELPIP, simulate test timing and review modelled performance trends.
Exercises — True / False / Fill in the Blanks / MCQ / Matching / Descriptive / Creative
True / False
- RStudio is required to run R.
Answer
False. RStudio is optional but recommended as an IDE; R itself is required.
- ggplot2 is part of the tidyverse.
Answer
True. ggplot2 is included in the tidyverse collection.
- The lm() function fits a logistic regression by default.
Answer
False. lm() fits linear regression; glm(..., family = "binomial") fits logistic regression.
Fill in the Blanks
- To read a CSV using tidyverse you use __________.
Answer
read_csv()
- Use __________ from dplyr to compute grouped summaries.
Answer
group_by() and summarize()
- To suppress NA values in mean calculation use mean(x, __________ = TRUE).
Answer
na.rm
Multiple Choice (MCQ)
- Which function creates a scatter plot in ggplot2?
- geom_bar()
- geom_point()
- geom_line()
- geom_hist()
Answer
b) geom_point()
- Which package is primarily used for data manipulation?
- ggplot2
- readr
- dplyr
- shiny
Answer
c) dplyr
Matching
Match the R function to its purpose.
| Function | Purpose |
|---|---|
| read_csv() | A. Visualize data |
| ggplot() | B. Read CSV files |
| lm() | C. Fit linear models |
Answer
read_csv() → B. Read CSV files
ggplot() → A. Visualize data
lm() → C. Fit linear models
Descriptive
Explain in one paragraph how you would prepare a dataset with missing values and categorical variables for modeling.
Answer
First, inspect the dataset with str(), summary(), and colSums(is.na(.)) to locate missing values and data types. For missing values, decide whether to remove rows with na.omit() or impute sensible values (mean/median for numerical, mode or explicit "Unknown" for categorical) depending on missingness patterns. Convert categorical text columns to factors with as.factor() and create dummy/indicator variables if required by the model. Check for outliers and transform skewed distributions if necessary. Finally, split the cleaned data into training and test sets before fitting the model to avoid data leakage.
Creative
Design a short study plan (4 weeks) combining R practice and CELPIP preparation. Include daily time allocation.
Answer
Week 1: Focus on setup and basics — 1 hour/day R (install, RStudio, tidyverse tutorials), 1 hour/day CELPIP listening and reading practice. Week 2: Data manipulation & visualization — 1.5 hours/day R (dplyr, ggplot2 projects), 0.5 hour/day CELPIP writing tasks. Week 3: Modeling & interpretation — 1.5 hours/day R (lm(), diagnostics, reproducible scripts), 0.5 hour/day CELPIP speaking practice (record & review). Week 4: Integration & assessment — 1 hour/day R (project: import-clean-visualize-model and write-up), 1 hour/day timed CELPIP mock tests and review. Reserve weekends for revision, peer review, and polishing write-ups.
Activities, Vocabulary, Homework, Practice Task
Activities
- Activity 1: Install R & RStudio and run a "Hello world" script.
Answer
Run: print("Hello, R!") in console; verify RStudio panels are visible.
- Activity 2: Import a small CSV and produce a summary and a bar chart.
Answer
Use read_csv(), summary(), and ggplot() with geom_bar(stat = "identity").
Vocabulary
- tidyverse — a collection of R packages for data science.
Answer
Includes dplyr (manipulation), ggplot2 (visualization), readr (import).
- EDA — Exploratory Data Analysis.
Answer
Initial investigation of data distributions, relationships, and quality.
- lm() — linear model function.
Answer
Used to fit linear regression models; output includes coefficients and R-squared.
Homework
- Download a public CSV (e.g., from UCI or Kaggle), import it, and create at least two visualizations.
Answer
Submit the R script and images; include a 200-word interpretation paraphrasing results.
- Complete a CELPIP practice section (reading or listening) and log your score.
Answer
Bring results to next session and plot a simple bar chart tracking score improvements over attempts.
Practice Task
Project: Analyze a small dataset (products or sales), compute average price by category, visualize it, and fit a model predicting price from two features. Write a one-page report with paraphrased conclusions.
Answer
Expected steps: 1) read_csv("data.csv"), 2) clean (na.omit or mutate), 3) average_price_by_category <- data %>% group_by(category) %>% summarize(...), 4) ggplot(...) bar chart, 5) model <- lm(price ~ feature1 + feature2, data = data), 6) summary(model) and write a clear paraphrased interpretation of coefficients and fit (R-squared), plus recommendations.
Quick Reference
- Install: install.packages("tidyverse")
- Load: library(tidyverse)
- Read CSV: read_csv("file.csv")
- Head: head(df) • Structure: str(df)
- Filter: df %>% filter(condition)
- Group & Summarize: df %>% group_by(x) %>% summarize(mean = mean(y, na.rm = TRUE))
- Plot: ggplot(df, aes(x, y)) + geom_point()
- Model: lm(y ~ x1 + x2, data = df)
Next lesson preview: Data cleaning techniques, handling missing values, and advanced ggplot2 customization.