University of Sydney · S1 2027 · FACULTY OF COMPUTER SCIENCE

DATA2001 Data Science, Big Data and Data Variety

- one subject, every graph, every model, every mark
13 Chapters147-page Bible
Our own words - no uploaded lecturer files
Built to mirror S1 2027 · updated this semester
The Complete Exam Bible · S1 2027

DATA2001 Overview

Data Science, Big Data and Data Variety
— A free AI-tutored DATA2001 exam bible for USyd: worked SQL, ER modelling, Pandas, indexing, web scraping, APIs/NoSQL, geospatial, time-series, text and image data for the 50% final exam.
  • University of Sydney
  • S1 2027
  • 13 chapters
  • Computer Science

DATA2001 Data Science, Big Data and Data Variety is the University of Sydney's second-year, 6-credit-point unit (dual-coded with the advanced stream DATA2901) that teaches you to ingest, combine and analyse data across every major data model.

  • Assessed by Weekly revision quiz 5% · Early Feedback Task (EFT) 2% · SQL Challenge 8% · Midterm quiz 15% · Group Assignment 20% + 1 more
  • Key terms Entity-Relationship (ER) model, Primary key vs candidate key, Declarative query (SQL), Index
  • How to prepare Treat DATA2001 as a stack of hands-on skills, not a reading unit, and rehearse each on real data every week rather than cramming through STUVAC.
Why read this guide

What you get in the full DATA2001 Exam Bible

  1. 13 chapters, 147 pages — every examinable topic, week by week
  2. 17 original practice questions, each with a model answer in the Final Exam format
  3. 13 worked examples, solved the way DATA2001 marks
  4. 37 computed figures, redrawn from the course’s own numbers
  5. Exam-morning plan for the Final Exam (50%) — what to revise last, where marks are lost

Free on this page: assessment table, chapter map, one worked example, key terms, FAQ. The rest is in the full exam bible.

DATA2001 · University of Sydney
An independent, AskSia-authored study guide. AskSia is not affiliated with, endorsed by, or sponsored by University of Sydney; the course code and name are used for identification only.
Assessment

How DATA2001 is assessed

ComponentWeightFormat
Weekly revision quiz5%Canvas MCQ quiz, weeks 2-12, 0.5 mark per week, one attempt; Week X covers Week X-1
Early Feedback Task (EFT)2%Week 3, 15-min Canvas MCQ quiz in tutorial time, covers weeks 1-2
SQL Challenge8%Weeks 6/7 (test Week 7), 1-hour Ed 'write SQL' task in tutorial time; last submission marked
Midterm quiz15%Week 9, 50-min pen-and-paper (MCQs + short answer) in lecture time, covers weeks 4-8
Group Assignment20%Released Week 7, due Week 11; PDF report + Jupyter notebook + tutor conversation; group of 3-4, mark contribution-scaled (demo mandatory for any marks)
Final Exam50%Formal examination period; covers all unit content; duration/structure/open-closed confirm on Canvas / the unit outline
Other students are asking · DATA2001

What other students are asking about DATA2001

Where can I find lecture notes or study guides for DATA2001 at USyd?
The DATA2001 study guide in AskSia Library covers Data Science, Big Data and Data Variety in 13 chapters, with the assessment table, a chapter-by-chapter topic map, key terms and a worked example, free to read on this page.
Is there a final exam in DATA2001, and how much is it worth?
Yes. In the offering this AskSia Library guide is built from, Final Exam carries 50% of the DATA2001 mark; the full split is Weekly revision quiz 5%, Early Feedback Task (EFT) 2%, SQL Challenge 8%, Midterm quiz 15%, Group Assignment 20%, Final Exam 50%.
What does DATA2001 cover on accessing data in a database?
In AskSia Library's DATA2001 guide, the Accessing Data in a Database chapter explains relational schema · ER-to-relational mapping · PostgreSQL/pgAdmin · DDL & DML basics · (Week 2).
What does DATA2001 cover on declarative data analysis with sql?
In AskSia Library's DATA2001 guide, the Declarative Data Analysis with SQL chapter explains declarative querying · select/filter/join/group · set ops & subqueries · SQL for analysis · (Week 3).
What does DATA2001 cover on data analysis with python?
In AskSia Library's DATA2001 guide, the Data Analysis with Python chapter explains pandas load and clean · central tendency & spread · NumPy · the DB-API · (Week 4).
Weights, dates and every chapter are set out with their sources further down this page.
Contents · every chapter, one map

What DATA2001 covers

DATA2001 is a 6-credit-point, second-year USyd unit that builds from database foundations (ER modelling, SQL, Python) into scalable analytics and then a tour of data variety — web, spatial, time-series, text and image data.

Assessment stacks continuous checks (weekly quizzes, an early feedback task, an 8% SQL Challenge and a 20% group assignment) onto a 15% midterm and a 50% final exam covering the whole unit, so the chapters below follow the teaching weeks and point you to what each assessment tests.

01

Foundations and ER Modelling

data vs information vs knowledge · the V's of big data · conceptual DB design · entities, keys, cardinality · (Week 1)

Week 1 of University of Sydney DATA2001 sets the framing for the whole unit — the data/information/knowledge distinction, the V's of big data, and where data lives (warehouse vs lake vs lakehouse) — then teaches conceptual database design with the Entity-Relationship model (Peter Chen, 1976): entities, attribute kinds, keys, relationship degree and mapping cardinality.

  • Data vs information vs knowledge (the DIKW distinction) and the V's of big data — volume, velocity, variety, variability, veracity, visualization, value
  • Storage architectures: data warehouse (structured, SQL-optimised) vs data lake (raw, native format) vs data lakehouse (hybrid)
  • Conceptual database design: capturing information requirements graphically, independent of physical implementation
  • Entity sets (rectangles) and attribute kinds — simple, composite, multi-valued (double ellipse), derived
  • Keys: super key, candidate key (minimal), primary key (underlined; unique, no NULLs)
  • Relationships (diamonds), degree (unary/recursive, binary, ternary), and the relationship key as the combined PKs
In the full guide: 7 pages · 3 figures
02

Accessing Data in a Database

relational schema · ER-to-relational mapping · PostgreSQL/pgAdmin · DDL & DML basics · (Week 2)

Week 2 moves from the conceptual ER model to the relational model (Codd, 1970) and to physically accessing data: translating an ER schema into tables with primary and foreign keys, and connecting to a PostgreSQL database through pgAdmin to run DDL and DML.

  • The relational model: relations (tables) of tuples (rows) over atomic attribute values; a relation is a set, so rows are unique and unordered
  • ER-to-relational mapping — entities to tables, a 1:N relationship folded into the N-side as a foreign key, an M:N relationship to its own link table
  • SQL sublanguages: DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE/SELECT), DCL (permissions)
  • Keys and constraints in SQL: PRIMARY KEY, UNIQUE, FOREIGN KEY ... REFERENCES, NOT NULL, composite keys
  • Base data types: INTEGER/BIGINT, NUMERIC(p,q), VARCHAR(q) vs CHAR(q), DATE/TIMESTAMP
  • Select-From-Where queries, DISTINCT, comparison and logical operators, LIKE with % and _, ORDER BY, AS aliases
In the full guide: 10 pages · 2 figures
03

Declarative Data Analysis with SQL

declarative querying · select/filter/join/group · set ops & subqueries · SQL for analysis · (Week 3)

Week 3 treats SQL as a declarative language for data analysis — you describe WHAT to retrieve, not how — building from filtering and joins up to set operations, nested subqueries, aggregation and grouping.

  • Set operations UNION / INTERSECT / EXCEPT (auto-dedup) and their ALL multiset versions (m+n, min(m,n), max(0,m-n))
  • Nested/subqueries and set-comparison operators: IN, EXISTS, op ALL, op SOME/ANY, and correlated subqueries
  • Aggregate functions COUNT, SUM, AVG, MAX, MIN and the effect of DISTINCT
  • GROUP BY partitions rows; every non-aggregated SELECT/HAVING attribute must appear in GROUP BY
  • HAVING filters groups after aggregation vs WHERE filters rows before grouping
  • Conceptual clause evaluation order: FROM to WHERE to GROUP BY to HAVING to SELECT to ORDER BY
In the full guide: 8 pages · 2 practice questions · 2 figures
04

Data Analysis with Python

Pandas load and clean · central tendency & spread · NumPy · the DB-API · (Week 4)

Week 4 turns to Python for data-science workflows: loading and cleaning data with Pandas, computing summary statistics (central tendency and spread), core NumPy array operations, and running SQL from Python through the DB-API.

  • Variable taxonomy: numeric (continuous/discrete) vs categorical (ordinal/nominal); quantitative vs qualitative
  • Central tendency: mean, weighted mean, and the outlier-robust median (50th percentile)
  • Spread: range, sample variance s squared = sum of (x - mean) squared over (n - 1), and sample standard deviation
  • The sample-vs-population divisor gotcha: statistics.stdev uses n - 1, NumPy std defaults to n (use ddof=1)
  • Order statistics: percentiles/quantiles and the interquartile range (IQR = 75th - 25th percentile)
  • Evaluation on skewed data: precision = TP/(TP+FP), recall = TP/(TP+FN), and F1 as their harmonic mean
In the full guide: 9 pages · 2 figures
05

Scalable Data Analytics

memory hierarchy · block transfer · indexing · partitioning & sharding · (Week 5)

Week 5 explains why big data needs a storage-aware approach: the memory hierarchy (RAM vs disk, with disk roughly 100,000 times slower), block/page-wise transfer and caching, then indexing as a separate pointer structure that avoids full scans, and partitioning/sharding for scale-out.

  • Storage hierarchy: RAM (fast, volatile, dear) vs HDD/SSD (slow, big, cheap) vs tape; READ = disk to RAM, WRITE = RAM to disk
  • Reducing I/O cost: block/page-wise transfer, caching/buffering hot vs cold data
  • Indexing as a separate pointer structure (book-index analogy); search key; composite/multi-attribute indexes
  • Clustered index (rows in key order, one per table) vs non-clustered (key+pointer, many allowed) vs covering index
  • CREATE INDEX / DROP INDEX; index selection from WHERE-clause columns; the fits-in-RAM trade-off
  • Distributed processing: shared-nothing clusters; parallelise first, then distribute
In the full guide: 11 pages · 4 figures
06

Web Scraping Data

automated page retrieval · HTML as semi-structured · the DOM · parsing/extraction · (Week 6)

Week 6 shows how to programmatically visit web pages, read their HTML and extract the specific data you want, treating HTML tags as a semi-structured, self-describing format parsed through the DOM with BeautifulSoup.

  • Web scraping (extract specific data from a site) vs web crawling (index whole pages); why scraped data is abundant but noisy
  • HTML as semi-structured data — flexible, self-describing tags (like JSON/XML), unlike a strict SQL schema
  • The HTTP request/response model: client GET to a server, which returns HTML (possibly built dynamically)
  • The Document Object Model (DOM): a tree of Document to html to head/body to elements/attributes/text
  • requests + BeautifulSoup: requests.get(url), status_code == 200, BeautifulSoup(text, 'html.parser'), find/find_all by tag/class/id
  • The .text (all nested text) vs direct-text extraction subtlety, and why scraping without a stable endpoint is brittle
In the full guide: 9 pages · 2 figures
07

Web APIs and NoSQL

REST APIs · JSON/XML semi-structured · JSONB in PostgreSQL · NoSQL stores · (Week 7)

Week 7 opens the data-variety arc through the web: retrieving data from REST APIs and handling semi-structured JSON and XML, then storing flexible/optional fields in PostgreSQL's JSONB and contrasting structured SQL with NoSQL stores.

  • XML — user-defined tags, well-formed rules (one root, case-sensitive, quoted attributes, closed tags), DTD validity
  • JSON — name:value pairs, objects { }, arrays [ ], values (string/number/object/array/boolean/null); easier to parse than XML
  • JSON in PostgreSQL: json (raw text) vs jsonb (binary, indexable, queryable); use columns for stable data, JSONB for flexible/optional
  • JSONB accessors: -> returns a JSON value, ->> returns text, and chained access for nested fields
  • Web APIs: client HTTP request to a URL, server response often as JSON; requests.get(url, params=...), status 200, response.json()
  • Paginated APIs: count (total available) vs number fetched per page, and the next URL; json.dumps / json.loads
In the full guide: 9 pages · 2 figures
08

Geospatial Data

spatial types · bounding boxes · SA2/SA4 regions · PostGIS & points of interest · (Week 8)

Week 8 works with (geo-)spatial data: spatial types (point, line, polygon), bounding boxes, and querying points of interest within a region, using PostgreSQL/PostGIS with SRID 4326 (WGS84 longitude/latitude).

  • Spatial vs geospatial data; why 'where' adds meaning; spatial queries (within-radius, within-region)
  • Vector data (point 0-D, line 1-D, polygon 2-D, plus Multi* collections) vs raster data (a grid of cells)
  • Coordinate systems: Cartesian, geodetic longitude/latitude, projected; SRID 4326 = WGS84 in degrees (X = lon, Y = lat)
  • PostGIS: CREATE EXTENSION postgis; geometry(Point, 4326); ST_Point(lon, lat), ST_AsText, ST_X/ST_Y, ST_AsGeoJSON; GiST index
  • Geometry (Cartesian plane, fast) vs Geography (earth surface, accurate) and the ::geography cast for metre distances
  • Topological relations (touches, contains vs covers, within, disjoint, overlaps) and the filter-refine strategy with an MBR
In the full guide: 11 pages · 4 figures
09

Midterm Checkpoint: Weeks 4-8

consolidation of Python, scalable analytics, scraping, APIs, spatial · 50-min pen-and-paper · (Week 9)

Week 9 is the 15% midterm quiz — a 50-minute pen-and-paper paper of MCQs and short answers covering Weeks 4-8: Python/Pandas, scalable analytics and indexing, web scraping, web APIs/NoSQL and geospatial data.

  • Week 4 recap: variable taxonomy, mean/median, sample-vs-population divisor, IQR, precision/recall/F1, the DB-API
  • Week 5 recap: memory hierarchy and I/O cost, clustered/non-clustered/covering indexes, horizontal/vertical partitioning, sharding
  • Week 6 recap: scraping vs crawling, the DOM, BeautifulSoup find/find_all, semi-structured HTML, robots.txt ethics
  • Week 7 recap: REST APIs and response.json(), JSON vs XML, JSONB with -> and ->>, pagination (count vs fetched)
  • Week 8 recap: SRID 4326, vector vs raster, geometry vs geography and the ::geography metre cast, MBR filter-refine
  • Cross-topic links: WHERE-style filtering in SQL, Pandas .query() and NumPy Boolean masks all express the same idea
In the full guide: 12 pages · 5 practice questions · 3 figures
10

Timeseries and Health Data

temporal data (point vs period) · sensor/medical/transport series · point vs sequence storage · (Week 10)

Week 10 handles time-indexed data — almost all data is qualified by time as a point or a period — covering sensor, medical/health and transport series, how temporal data is represented and stored, and basic techniques to analyse and summarise it.

  • Temporal data motivation; kinds of time — user-defined (decision), valid time, transaction time
  • Temporal data types (instant/point, interval, period) and statement kinds (current, sequenced, nonsequenced)
  • Temporal relations: uni-, bi-, tri-temporal, semi-temporal
  • Representing time in a database: DATE/TIMESTAMP; representing 'till now' (max-timestamp is most used; NULL and 'now' pitfalls)
  • PostgreSQL range types (daterange) and GiST indexing of ranges for overlap/contains queries
  • Time-series storage: point-based (one row per timestamp) vs sequence-based (array_agg into arrays, unnest to expand)
In the full guide: 9 pages · 2 figures
11

Text Data Processing

unstructured text · NLP pipeline · TF-IDF · ambiguity of natural language · (Week 11)

Week 11 processes unstructured text that fits no predefined model — emails, articles, tweets, reviews — introducing the NLP preprocessing pipeline, the bag-of-words and TF-IDF weighting, word embeddings, and cosine similarity, and why natural language is hard for machines (ambiguity, context-dependence).

  • Unstructured data and why NLP is hard: ambiguity ('Eats, shoots and leaves'), context-dependence
  • Vector space model: documents and queries as weighted vectors over a term space
  • Bag-of-Words: a document as a multiset of word counts (loses order, grammar, context) vs dense word embeddings
  • Preprocessing pipeline: tokenise, normalise (lowercase/strip), stop-word removal, stemming/lemmatisation, n-grams
  • Term Frequency TF = freq(t,d) / words(d) and Inverse Document Frequency IDF = log(N / n_t)
  • TF-IDF = TF × IDF — high when a term is frequent in a document yet rare across the corpus
In the full guide: 10 pages · 3 figures
12

Image Data Processing

images/multimedia as data · pixels, bit depth & features · thresholding/segmentation · (Week 12)

Week 12 treats images and multimedia as data: how a digital image is represented as a 2-D array of pixels with a bit depth, and the computer-vision-style processing (filtering, thresholding, segmentation, feature extraction) used to pull information out of it.

  • Image as a function f(x, y) of intensity; sampling (space) and quantization (amplitude) to a digital image x[n1, n2]
  • Resolution N1 x N2 (total pixels N1 · N2) and bit depth B (values 0 to 2^B - 1; 8-bit gives 0-255, 0 = black, 255 = white)
  • Image types: binary/mask (0/1), grayscale (single channel 0-255), colour (RGB three channels), and multi-band
  • Lossless (PNG/TIFF/GIF) vs lossy (JPEG) formats; metadata (EXIF/XMP): time, camera, GPS, copyright
  • Processing output levels: low (image to image, e.g. filtering), mid (edges/segments/objects), high (scene understanding)
  • Filtering and denoising (median/average/Wiener); histograms and contrast; segmentation and thresholding
In the full guide: 11 pages · 5 figures
13

Exam Review and Synthesis

cross-model synthesis · high-yield recap · 50% final-exam strategy · (Week 13)

Week 13 synthesises the whole unit for the 50% final exam that covers all content (Weeks 1-13): the ER/SQL foundations, Python analysis, scalable analytics and indexing, and the full data-variety arc from scraping and APIs to spatial, time-series, text and image data.

  • Foundations recap: ER modelling and keys, ER-to-relational mapping, the relational model
  • SQL recap: SELECT-JOIN-GROUP BY-HAVING, set operations and subqueries, the six-step evaluation order
  • Analysis recap: Pandas cleaning, summary statistics with the right divisor, precision/recall/F1
  • Scaling recap: memory hierarchy and I/O, index selection, partitioning and sharding
  • Data-variety recap: scraping/DOM, REST APIs and JSON/JSONB, PostGIS and the ::geography cast, point-vs-sequence time-series, TF-IDF, image thresholding
  • Cross-model synthesis: choosing the right data model and tool for a task; filtering expressed in SQL, Pandas and NumPy
In the full guide: 10 pages · 2 figures

The first half builds the database and analysis foundations — conceptual design with the Entity-Relationship model, the relational model and SQL in PostgreSQL, data analysis in Python with Pandas and NumPy, and the storage-aware ideas (memory hierarchy, indexing, partitioning) that make analytics scale.

The second half is a tour of data variety: web scraping, web APIs and NoSQL (JSON/XML), geospatial data, time-series and health data, text (NLP) and image processing — the unit's core message being that different data models demand different tooling.

Assessment is continuous and cumulative: a weekly revision quiz (5%), an Early Feedback Task (2%), an 8% SQL Challenge on Ed, a 15% pen-and-paper midterm covering Weeks 4-8, a 20% group assignment, and a 50% final exam in the formal examination period that covers all unit content (Weeks 1-13).

The exact duration, section structure and open/closed-book status of the final are not published in the unit materials, so confirm them on Canvas and the unit outline. Because the final is half the mark and spans everything, steady weekly work — not a STUVAC scramble — protects both your understanding and your Weighted Average Mark (WAM).

Worked example · free

SQL analysis: average mark per country with a two-part HAVING

Q [5 marks]. Two tables describe a cohort. Student(sid, name, country) holds {1 Ava AU, 2 Ben AU, 3 Cara NZ, 4 Dan NZ, 5 Eve SG}; Enrolled(sid, ucode, mark) holds one 'INFO1001' row per student with marks Ava 70, Ben 80, Cara 60, Dan 50, Eve 90. Write a query that returns, for each country, the average mark — but only for countries that have more than one student AND whose average mark exceeds 65. Give the query, apply it by hand, and state the result. (5 marks)
Fig 3.1 — A single grouped query mapped to its result table.Fig 3.1 — A single grouped query mapped to its result table. Each clause is a stage: WHERE filters rows, GROUP BY buckets them, HAVING filters whole groups, SELECT shapes the columns, ORDER BY sorts the output. The Poetry group (revenue 12) is dropped by HAVING before you ever see it.ONE query = six clauses, evaluated in a fixed orderSELECTgenre, SUM(price*qty) AS revenue, COUNT(*) AS nFROMSaleWHEREprice > 0GROUP BYgenreHAVINGSUM(price*qty) >= 60ORDER BYrevenue DESCone row per groupgenrerevenuenFiction1053History802
Fig 3.1 — A single grouped query mapped to its result table. Each clause is a stage: WHERE filters rows, GROUP BY buckets them, HAVING filters whole groups, SELECT shapes the columns, ORDER BY sorts the output. The Poetry group (revenue 12) is dropped by HAVING before you ever see it.
  • +1Write the query. Join on the key, group by the grouping attribute, and put the two group-level tests in HAVING (not WHERE, because they filter groups after aggregation): SELECT s.country, AVG(e.mark) FROM Student s JOIN Enrolled e ON s.sid = e.sid GROUP BY s.country HAVING COUNT(*) > 1 AND AVG(e.mark) > 65.
  • +1Evaluate FROM/JOIN then GROUP BY: the join pairs each student with their mark, and grouping by country gives three groups — AU {70, 80}, NZ {60, 50}, SG {90}.
  • +1Compute the per-group aggregates the HAVING needs: AU has COUNT = 2, AVG = (70 + 80) ÷ 2 = 75; NZ has COUNT = 2, AVG = (60 + 50) ÷ 2 = 55; SG has COUNT = 1, AVG = 90.
  • +1Apply HAVING COUNT(*) > 1: AU and NZ pass (2 each), SG is dropped (only 1 student). Then apply AVG(mark) > 65 to the survivors: AU (75) passes, NZ (55) is dropped.
  • +1SELECT the surviving groups: only AU remains, with an average mark of 75. Both HAVING conditions must hold, so SG fails on the count and NZ fails on the average.
The query returns a single row: country = AU, average mark = 75. NZ is eliminated because its average (55) is not above 65, and SG is eliminated because it has only one student (COUNT > 1 fails). The key ideas the marker wants: JOIN on sid, GROUP BY country, and both filters in HAVING because they test aggregated groups, not individual rows.
Sia tip — WHERE filters rows before grouping; HAVING filters groups after aggregation — you cannot put AVG(mark) > 65 in WHERE. If a query mixes a per-row condition (e.g. mark IS NOT NULL) with a per-group one, the row condition goes in WHERE and the group condition in HAVING. Ask Sia to walk the six-step clause evaluation order (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY) on your own query; it explains each step and checks your working, it never just hands over an answer.
Glossary

Key terms

Entity-Relationship (ER) model
A graphical conceptual-design notation (Peter Chen, 1976) that captures information requirements as entity sets (rectangles), attributes (ellipses; double for multi-valued) and relationships (diamonds), with the primary key underlined. It says nothing about physical storage and later maps to a relational schema.
Primary key vs candidate key
A candidate key is a minimal set of attributes that uniquely identifies each row (no proper subset still identifies it); a table may have several. The primary key is the one candidate key chosen as the identifier — it is underlined in an ER diagram, must be unique, and automatically disallows NULLs.
Declarative query (SQL)
SQL describes WHAT data you want, not HOW to fetch it. A SELECT-FROM-WHERE query is evaluated conceptually as FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY, and the result is itself a table that may contain duplicate rows unless you use DISTINCT.
Index
A separate pointer data structure that lets the database find rows without scanning the whole table (like a book's index). A clustered index stores rows in key order (one per table); a non-clustered index keeps key+pointer while the table stays put (many allowed); a covering index holds every column a query needs, so no table lookup is required.
Semi-structured data
Self-describing, schema-flexible formats such as HTML, XML and JSON — tags or key-value pairs carry the structure with each record, unlike a strict relational table with fixed columns. PostgreSQL stores flexible/optional fields in a JSONB column and queries it with -> (returns JSON) and ->> (returns text).
TF-IDF
A term-weighting scheme for text: TF-IDF(t, d) = TF(t, d) × IDF(t), where TF = freq(t, d) ÷ (words in d) is local frequency and IDF = log(N ÷ n_t) is corpus rarity (N documents, n_t containing t). A term scores high when it is frequent in one document yet rare across the corpus.
FAQ

DATA2001 FAQ

Is DATA2001 hard?

It is broad rather than deeply mathematical. The unit spans a lot of tools — ER modelling, SQL in PostgreSQL, Pandas and NumPy, web scraping, APIs, and then a fast tour of spatial, time-series, text and image data — so the real challenge is keeping many small skills and vocabularies straight rather than any single hard idea.

The quantitative parts (summary statistics, TF-IDF, z-scores, cost intuition for indexing) are light and use standard formulas. Because assessment is continuous — weekly quizzes, an 8% SQL Challenge, a 15% midterm and a 20% group assignment all feed into the 50% final — students who write SQL and clean data hands-on each week, rather than cramming through STUVAC, tend to find it manageable.

Steady work also protects your Weighted Average Mark (WAM). It assumes prior Python (from DATA1002 or an equivalent), so brush that up early.

Can AI help me with DATA2001?

Yes, as a step-by-step study aid. Sia is an AI tutor built to mirror how DATA2001 is actually taught and assessed at the University of Sydney: it can walk you through an ER-to-relational mapping, a SELECT-JOIN-GROUP BY-HAVING query, a Pandas cleaning pipeline, an indexing decision, a bounding-box spatial query or a TF-IDF calculation one line at a time, and it checks your reasoning as you go.

Bring your own tutorial or past-exam question and ask Sia to explain each step. It does not do graded assessment for you — not the SQL Challenge, the midterm, the group assignment or the final exam — and the University of Sydney academic-integrity policy still applies. Use it to understand the method, not to produce work you submit.

Where can I find past exam papers / practice for DATA2001?

Start on Canvas, where the unit posts revision material, the weekly quizzes and any released practice, and search the University of Sydney Library's past-exam-paper collection for the unit. Your tutorial sheets and the Ed Lessons (SQL, NumPy, Python) are the closest match to the SQL Challenge and the short-answer style of the midterm and final.

This guide also includes a re-authored practice set that mirrors the exam's shape — SQL analysis, ER modelling, Pandas/stats, indexing, spatial and data-variety questions — with fresh numbers, and you can ask Sia to generate extra practice in the same style and explain each step. Treat any third-party 'model answers' with caution and confirm what is officially provided on Canvas.

What are the DATA2001 assessment rules and is there a hurdle?

the assessment table lists a weekly revision quiz (5%), an Early Feedback Task (2%), an 8% SQL Challenge, a 15% midterm, a 20% group assignment and a 50% final exam covering all content — summing to 100%. No component is stated as a pass/hurdle requirement in the unit materials, so do not assume one; confirm the current rules on Canvas and the unit outline.

The group assignment is contribution-scaled and requires a short tutor demo for any marks (a scaler, not a whole-unit hurdle). Late work is penalised (roughly 5% of available marks per day in the source materials) — check the exact late policy, the final-exam duration and its open/closed-book status on your Canvas Assessments page.

Do I need to know Python and PostgreSQL before starting?

You need prior Python — DATA2001 assumes procedural programming from DATA1002 (or DATA1902/INFO1110/an equivalent) and moves quickly into Pandas, NumPy and the psycopg2 DB-API.

You do not need SQL or databases beforehand; the unit teaches the relational model, SQL and PostgreSQL (via pgAdmin) from the ground up in Weeks 2-3, which is why the 8% SQL Challenge sits in Week 7. Install and connect to PostgreSQL early via Canvas instructions so the SQL Challenge and the group assignment's database ingestion do not catch you out.

If any tool feels rusty, ask Sia to drill the basics with worked examples before the graded tasks.

Chapter questions

Questions students ask in each DATA2001 chapter

What is the difference between data, information and knowledge?
Data is the raw, context-free material — numbers, text, symbols. Information is data processed and placed in a context so it means something to a user. Knowledge is the ability to understand information, form a view and make decisions or predictions from it. DATA2001 opens with this DIKW ladder because the whole unit is about turning raw, varied data into information you can act on. Chapter 01 · Foundations and ER Modelling
How does an ER diagram become relational tables?
Each entity set becomes a table keyed on its identifier. A 1:N relationship is represented by adding the 'one' side's primary key as a foreign key on the 'many' side's table. A many-to-many relationship becomes its own link table holding both foreign keys as a composite primary key, plus any relationship attributes. Multi-valued attributes also become their own tables. The mechanical nature of this mapping is exactly why the conceptual ER step in Week 1 matters. Chapter 02 · Accessing Data in a Database
What is the difference between WHERE and HAVING?
WHERE filters rows before any grouping happens, so it can only reference individual-row columns. HAVING filters groups after GROUP BY has aggregated them, so it can reference aggregates like AVG(mark) or COUNT(*). A query can use both: WHERE to keep only the rows of interest, then GROUP BY, then HAVING to keep only the groups that meet an aggregate condition. Chapter 03 · Declarative Data Analysis with SQL
When should I use the median instead of the mean?
Use the median when the data has outliers or is skewed, because it is robust — the mean of [3,4,5,6,7,10000] is over 1670, but the median is 5.5, which describes the typical value far better. Use the mean when the data is roughly symmetric and you need a quantity that uses every value (and feeds into variance and standard deviation). Reporting both, plus a spread measure, is safest. Chapter 04 · Data Analysis with Python
Why is disk access such a bottleneck?
Reading from an HDD is on the order of 100,000 times slower than reading from RAM, so moving data between disk and memory dominates the cost of large-data operations. The whole toolkit of this week — block/page-wise transfer, caching hot data in RAM, indexing to avoid full scans, and partitioning to shrink the data each query touches — exists to minimise that movement. Chapter 05 · Scalable Data Analytics
Why is HTML called semi-structured data?
Because its tags describe the data with each record but do not enforce a fixed schema the way a relational table does. Like JSON and XML, HTML is self-describing and flexible — different pages can carry different tags — which is why you parse it into a DOM tree and navigate to the elements you want rather than reading fixed columns. Structured (SQL), semi-structured (HTML/XML/JSON) and unstructured (text/image) is a distinction the exam tests. Chapter 06 · Web Scraping Data
What is the difference between JSON and XML?
Both are semi-structured, self-describing formats used to transport data. XML wraps data in user-defined, case-sensitive tags and needs a dedicated parser (and optionally a DTD to be 'valid'), which makes it heavier. JSON represents data as objects and arrays of name:value pairs that map straight onto native language structures and parse more easily, which is why most modern web APIs return JSON. Chapter 07 · Web APIs and NoSQL
What is the difference between the geometry and geography types?
geometry treats coordinates as points on a flat Cartesian plane, which is fast and fine over small areas but measures distances in the coordinate unit (degrees for SRID 4326). geography treats them as points on the earth's ellipsoid, so area, distance and length come out accurately in metres over large scales, at more CPU cost and with fewer functions defined. You commonly store geometry and cast to ::geography when you need metre-accurate distances. Chapter 08 · Geospatial Data
What does the DATA2001 midterm cover and how is it run?
The midterm is a 50-minute pen-and-paper quiz in Week 9, worth 15%, with multiple-choice and short-answer questions covering Weeks 4-8: Python/Pandas and statistics, scalable analytics and indexing, web scraping, web APIs/NoSQL, and geospatial data. There is no new lecture content in Week 9. Confirm the exact date, room and rules on Canvas, as details can change between offerings. Chapter 09 · Midterm Checkpoint: Weeks 4-8
What is the difference between valid time and transaction time?
Valid time is when a fact was actually true in the real world; transaction time is when the database stored it. They can differ — an enrolment valid from 1 February might be entered on 5 February. A uni-temporal relation tracks one of them, a bi-temporal relation tracks both (each with a start and end), which lets you ask 'what did we believe was true, and when did we record it?' Chapter 10 · Timeseries and Health Data
Why use TF-IDF instead of raw word counts?
Raw counts are misleading for two reasons: longer documents naturally have higher counts, and words common across the whole corpus (like 'data') say little about any one document. TF normalises by document length, and IDF downweights terms that appear in many documents. Multiplying them, TF-IDF = TF × IDF, scores a term highly only when it is frequent in a particular document yet rare across the corpus — exactly the terms that characterise that document. Chapter 11 · Text Data Processing
How is a digital image represented as data?
As a 2-D array of pixels x[n1, n2], where n1 indexes the row and n2 the column, produced by sampling a continuous image in space and quantizing its intensity in amplitude. Each pixel's value is an unsigned integer set by the bit depth — commonly 8-bit, so 0 (black) to 255 (white). A colour image is three such arrays (R, G, B), and resolution N1 x N2 is the pixel grid size. To a computer an image is 'just a 2-D array of numbers', which is what makes computer vision hard. Chapter 12 · Image Data Processing
What does the DATA2001 final exam cover and how is it structured?
The final is worth 50% and covers all unit content, Weeks 1-13 — ER/SQL foundations, Python analysis, scalable analytics and indexing, and the whole data-variety arc. The exact duration, section structure, mark allocation and open/closed-book status are not published in the available course materials, so confirm them on Canvas and the unit outline (for reference the in-semester midterm was a 50-minute pen-and-paper MCQ + short-answer quiz on Weeks 4-8). Because it spans everything, revise breadth-first. Chapter 13 · Exam Review and Synthesis
Study strategy

How to study for the exam

Treat DATA2001 as a stack of hands-on skills, not a reading unit, and rehearse each on real data every week rather than cramming through STUVAC.

For the foundations half (Weeks 1-5), draw an ER diagram and map it to relational tables, then write SELECT-JOIN-GROUP BY-HAVING queries in PostgreSQL until the six-step clause evaluation order (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY) is automatic — this is exactly what the 8% SQL Challenge tests under time pressure.

Drill the Pandas/NumPy cleaning-and-statistics workflow (load a CSV, drop duplicates and NAs, compute mean/median/variance with the right sample-vs-population divisor) and be able to justify an index choice (clustered vs non-clustered vs covering) and a partitioning plan.

For the data-variety half (Weeks 6-12), build a one-line mental model per model: HTML/DOM scraping, REST-API-to-JSON-to-JSONB, PostGIS bounding-box and ::geography distance, point-vs-sequence time-series storage, the TF-IDF text pipeline, and image thresholding. The midterm (Week 9) covers Weeks 4-8, so consolidate those first; the 50% final covers everything, so leave time to revisit the ER/SQL foundations too.

When a step won't click, ask Sia to explain that single step a different way and set you a fresh practice question in the same style — it teaches the method and checks your reasoning, and it never substitutes for your own graded work.

Confirm the exam date, room, duration and open/closed-book status on Canvas and the University of Sydney exam timetable; the final sits in the Semester 1, 2027 formal examination period (around June 2027).

Study DATA2001 with AI

Your AI Computer Science tutor for DATA2001

Stuck on a hard DATA2001 question? Sia is AskSia’s AI Computer Science tutor — ask any DATA2001 Data Science, Big Data and Data Variety question and get a clear, step-by-step explanation grounded in how the course is actually taught and assessed. Read this whole study guide free, then take your hardest questions to Sia.

A+Everything unlocked
Unlocks this Bible + all 202 of your University of Sydney subjects - and 1,000+ Bibles across every Australian university.
Sia - your DATA2001 tutor, unlimited, worked the way the exam marks it
The full 147-page Bible + practice bank with worked solutions
Chrome extension - sync your LMS so Sia knows your deadlines
Bilingual EN / Chinese on every Bible and every Sia answer
$0.99 Trial
30-day money-back · cancel in one tap · how it works
DATA2001 · Data Science, Big Data and Data Variety - independent study guide on the AskSia Library. More University of Sydney subjects · Microeconomics across all universities