Inferred
Use this guide if you don’t want to install anything locally. Codespaces gives you a free, browser-based VS Code instance with all dependencies pre-installed.
Source:01 Setup Cloud · GitHub · microsoft/generative-ai-for-beginners
Authors: Microsoft (microsoft)
Licence: MIT — https://spdx.org/licenses/MIT.html
Use this guide if you don’t want to install anything locally.
Codespaces gives you a free, browser-based VS Code instance with all dependencies pre-installed.
1. Why Codespaces?
Benefit
What it means for you
✅ Zero installs
Works on Chromebook, iPad, school lab PCs…
✅ Pre-built dev container
Python 3, Node.js, .NET, Java already inside
✅ Free quota
Personal accounts get 120 core-hours / 60 GB-hours per month
💡 Tip
Keep your quota healthy by stopping or deleting idle codespaces
(View ▸ Command Palette ▸ Codespaces: Stop Codespace).
2. Create a Codespace (one click)
Fork this repo (top-right Fork button).
In your fork, click Code ▸ Codespaces ▸ Create codespace on main.
✅ A browser VS Code window opens and the dev container starts building.
This takes ~2 minutes the first time.
3. Add your API key (the safe way)
Option A Codespaces Secrets — Recommended
⚙️ Gear icon -> Command Pallete-> Codespaces : Manage user secret -> Add a new secret.
Name: OPENAI_API_KEY
Value: paste your key → Add secret
That’s it—our code will pick it up automatically.
Option B .env file (if you really need one)
cp.env.copy.env
code.env# fill in OPENAI_API_KEY=your_key_here
Metadata record
One description, two standard projections
Built from what the sources declared and what the gates observed.
Nothing absent has been filled in here.
2 values read out of the text by the enrichment rules stand under their elements, marked inferred, and are kept apart in the exports.
DCMI Metadata Terms. Dublin Core has no element that separates the original file from the text extracted out of it, and none for LOM's educational characterisation. Both survive here as provenance statements and in the record itself, not in the projection.
the standard ↗
The groups below are this library's, for reading. DCMI Terms itself has no categories; each term keeps its standard name.
Microsoft (microsoft) (content provider, container)
Everyone else named, with the role as declared and the scope they were declared at.
Publisherdcterms:publisher
none found — the source did not declare it
Only when the source names a publisher of the work. The platform it was collected from is recorded as provenance instead.
Content
2/5
Descriptiondcterms:description
inferred
read lines 7–8description.lede
Use this guide if you don’t want to install anything locally. Codespaces gives you a free, browser-based VS Code instance with all dependencies pre-installed.
The abstract, and the depositor's additional notes after it when the source has a field for them.
Works this one cites, when the source declares them as relations. What its text links to and its reference list cites is inferred, and stands under it apart.
What needs this resource, when a source declares it. The lab a component belongs to is inferred, and stands under it apart.
Provenancedcterms:provenance
this engine
source
conversion
markdown
Retrieved from GitHub on 2026-10-09 in response to the search string “AI "AI concepts" in:name,description,readme fork:false archived:false”. GitHub served the resource and is not asserted to be its publisher or author.
Text extracted from markdown to Markdown by passthrough; the original is retained unchanged beside it.
Found inside repository microsoft/generative-ai-for-beginners, whose own description is recorded separately and is not a description of this resource.
Where it was collected from, what was converted, and what container it came out of — the custody statements that would otherwise be mistaken for authorship.
IEEE 1484.12.1 Learning Object Metadata. LOM has no element for an SPDX identifier or a licence URI, so both are written into 6.3 Rights.Description. Flattening this record into simple Dublin Core would lose more again, which is why the two projections exist side by side rather than one being generated from the other.
the standard ↗
The language of the content, as the language gate read it off the converted text. The language the source declared is kept separately.
Description1.4
inferred
read lines 7–8description.lede
Use this guide if you don’t want to install anything locally. Codespaces gives you a free, browser-based VS Code instance with all dependencies pre-installed.
The abstract, and the depositor's additional notes after it as a second LangString when the source has a field for them.
Microsoft (microsoft) [https://github.com/microsoft] — content provider (contribution recorded against the container this resource was found in, not against the resource)
Role, entity and date per declared contribution. A role outside LOM's vocabulary is reported in the entry's description instead.
3 Meta-metadata
4/4
Identifier3.1
this engine
resource_id
URI: tag:aim-pro.eu,2026:oer/39236bfd3949/record
The identifier of this metadata record — the resource's own, with /record after it, because the record is a description of the resource and not the resource.
Contribute3.2
this engine
source
AIM-PRO WP3 OER harvester (GitHub) — creator
Who generated this record and when — a statement about the record, not about the resource.
Metadata schema3.3
LOMv1.0
aimpro-oer-profile/1
LOMv1.0, and the profile this was built against.
Language3.4
language gate
read a heuristic
en
4 Technical
3/7
Format4.1
conversion
markdown
text/markdown
One value per form held: the original as the source published it, and the Markdown this engine extracted.
Size4.2
conversion
markdown
1799
Bytes. The original's, because the resource is the file and not our conversion of it.
Yes unless the licence reserves nothing — attribution is a restriction. The conditions after the dash are the licence gate's reading; the export carries LOM's bare term.
21 Lessons, Get Started Building with Generative AI
The container a file was found inside, and the Markdown extracted from the original. What a lab requires, and the lab a component belongs to, are inferred and stand apart.
8 Annotation
0/3
Entity8.1
not collected — this library does not fill it
Comments on the resource's educational use, by whoever made them. The platform's review grades competencies, which are classification (9), and writes no comment here.
Date8.2
not collected — this library does not fill it
Description8.3
not collected — this library does not fill it
9 Classification
0/4
Purpose9.1
not collected — this library does not fill it
Empty in the record: no source declares a competency. The alignment reads the resource for them and stands beside the record, never in it, and a taxon path derived from the search string that found it would be a claim about the query.
Taxon path9.2
not collected — this library does not fill it
Where the competency framework goes. Empty in the record for the reason above.
Description9.3
not collected — this library does not fill it
Keyword9.4
not collected — this library does not fill it
What could not be established8
Where the source's metadata could not be carried
over as it was — missing, contradictory, with no matching term in the
standard, restructured, or taken from the repository — and what was done
instead. Without these notes, an empty element would look like something
the harvester missed.
Status
Field
Why
Not available
description
the only description available is the repository's own, which describes microsoft/generative-ai-for-beginners and not this resource. It is kept against the container and the resource's description is left empty
Since read out of the text by the enrichment rules: a description, shown above under its element, marked inferred.
Not available
creators
nobody is named as an author of this resource — the contributions recorded are about the container or carry a non-authorial role
Not available
dates
no publication date was declared; a collection date is not one and is kept separately
Not available
declared_language
the source declared no language; the recorded content language is this engine's reading of the text
Not available
rights_holder
no rights holder is named at source; the licence is recorded without one rather than attributed to the platform that served it
Not available
publisher
the source named no publisher of the work; where it was collected from is recorded as collection provenance instead, which is a different claim
Not available
educational
the source declared no educational metadata — no resource type, audience, context, difficulty or learning time. Nothing here estimates them
Declared, not mapped
structure_role
this file sits in the container as 'learning_resource' by directory convention. That is a fact about the repository's layout, not a declaration that the resource is of that educational type, so no educational element is filled from it