Enroll in Course › Course Detail
๐ŸŽฌ Simulate: Post-enrollment (M-10 return) Reset

Course Detail

Course overview

Python Programming for TVET

Covers Python fundamentals through data analysis and automation applications relevant to TVET practitioners. No prior programming experience required.

Programming Data Science Free
Course cover image

30 hours

Beginner

Cohort-based

Learning objectives and Prerequisites
  • Write Python scripts to automate repetitive data tasks
  • Analyze and visualize datasets using pandas and matplotlib
  • Apply Python skills in TVET curriculum development and reporting

No prerequisites

Course content

  • ๐Ÿ“„ Introduction to Python
  • ๐Ÿ“„ Variables and Data Types
  • ๐Ÿ“ Python Basics Quiz

6 lessons ยท quiz

8 lessons ยท assignment
Instructor
Photo

Dr. Sumali Hakrian

Python and data science expert with over 8 years of experience in TVET curriculum development

Enrollment CTA
You are enrolled in this course.
Continue Learning
๐Ÿ“ Spec notes โ€” UC-LMS.07 / SCR-LMS.04 (fields, actions, requirements)
Identity
  • Screen: SCR-LMS.04 โ€” Course Detail (Learner View)
  • Use case: UC-LMS.07 โ€” Enroll in Course (entry screen)
Brief description

Read-only course detail page for learners โ€” 5 regions: Course overview (title, cover image, description, tags, duration, difficulty, type), Learning objectives and Prerequisites, Course content (accordion), Instructor, Enrollment CTA. CTA adapts to enrollment state (checked on every page load): null โ†’ Enroll; pending_approval โ†’ Pending Approval (collapsible approval details) + Change Cohort; active โ†’ Continue Learning. After enrollment success (M-10 or AF-10A return), shows a transient success notification via ?enrolled=1.

Fields
  • Course overview: course_title ยท cover_image (lazy-load) ยท course_description ยท tag_list ยท duration ยท difficulty [beginner|intermediate|advanced] ยท course_type_label
  • Learning objectives and Prerequisites: learning_objectives ยท prerequisites_list (visible when prerequisites != null)
  • Course content: content_outline โ€” CourseVersion.snapshot ยท accordion ยท read-only
  • Instructor: instructor_photo (lazy-load) ยท owner_instructor_name (computed from CourseInstructor role=owner) ยท instructor_bio
  • Enrollment CTA โ€” pending_approval only: pending_cohort_name ยท approval_requested_at ยท approval_status_label (computed human-readable)
Actions
  • enroll "Enroll" โ€” enabled when enrollment_status == null ยท triggers UC-LMS.07-M-2
  • pending_approval "Pending Approval" โ€” toggles approval details collapse when enrollment_status == pending_approval ยท triggers UC-LMS.07-A-4A-2
  • change_cohort "Change Cohort" โ€” enabled when enrollment_status == pending_approval ยท triggers UC-LMS.07-A-4A-4
  • continue_learning "Continue Learning" โ€” enabled when enrollment_status == active ยท triggers UC-LMS.07-A-4B-2
Additional requirements
  1. CTA adapts to 3 enrollment states โ€” checked on every page load, no cache.
  2. Approval details (cohort, request date, status) are shown inside the Enrollment CTA region โ€” the collapse panel opens/closes via the "Pending Approval" button; there is no separate Approval Status card.
  3. All course info fields read-only โ€” learner cannot edit course data.
  4. Transient success notification (AR#4): shown once after M-10 / AF-10A return via ?enrolled=1 query param; CTA auto-switches to "Continue Learning".
  5. Lazy-load cover_image + instructor_photo [refs: NFR-02]