From 7b603c4e2ae9df45c663c1aaef6c64402ea34b7d Mon Sep 17 00:00:00 2001 From: Richard Boone Date: Wed, 25 Nov 2020 19:10:30 +0000 Subject: [PATCH 1/2] Update requirements/SKILLS.json --- requirements/SKILLS.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/SKILLS.json b/requirements/SKILLS.json index 403ef37..8523e58 100644 --- a/requirements/SKILLS.json +++ b/requirements/SKILLS.json @@ -5718,7 +5718,7 @@ "comments": "", "training": [], "eval": [], - "description": "Use the Management and Development Processes (MADP) Agile Process Improvemnt Coaching (APIC) templates to create a product charter.", + "description": "Use the Management and Development Processes (MADP) Agile Process Improvemnt Coaching (APIC) templates to create a project charter.", "topic": "Agile", "requirement_src_id": "", "references": [], -- GitLab From e60bdd131be258221e559e7e90184a7fa7580264 Mon Sep 17 00:00:00 2001 From: Richard Boone Date: Wed, 25 Nov 2020 19:51:21 +0000 Subject: [PATCH 2/2] Update IDF.rel-links.json --- rel-links/training/IDF.rel-links.json | 19863 ++++++++++++------------ 1 file changed, 9928 insertions(+), 9935 deletions(-) diff --git a/rel-links/training/IDF.rel-links.json b/rel-links/training/IDF.rel-links.json index 6e3127d..7600720 100644 --- a/rel-links/training/IDF.rel-links.json +++ b/rel-links/training/IDF.rel-links.json @@ -1,9935 +1,9928 @@ -[{ - "_id": { - "$oid": "5ee9250a761cf87371cf30a1" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c20" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/ch4-overloading-and-templates.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c1f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/ch4-overloading-and-templates.html" - } - ], - "course": "IDF", - "module": "cpp-programming", - "topic": "ch4-overloading-and-templates", - "subject": "cpp_overload", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [], - "performance_objectives": [], - "module_id": "IDF_CPP_OVRLD", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/ch4-overloading-and-templates/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30a2" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a5b" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c1e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c1b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c1c" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c26" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" - } - ], - "course": "IDF", - "module": "cpp-programming", - "topic": "object-oriented-programming-c++", - "subject": "cpp_oop", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [], - "performance_objectives": [], - "module_id": "IDF_CPP_OOP", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/object-oriented-programming-c++/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30a3" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a5e" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/c++-standard-template-library.html" - } - ], - "course": "IDF", - "module": "cpp-programming", - "topic": "c++-standard-template-library", - "subject": "cpp_stl", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [], - "performance_objectives": [], - "module_id": "IDF_CPP_STL", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/c++-standard-template-library/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30a4" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db8" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd2" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aee" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aea" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aed" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32de4" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e02" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ddf" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Pointers_Arrays", - "subject": "Memory Operators", - "lecture_time": 45, - "perf_demo_time": 60, - "references": [ - "https://www.tutorialspoint.com/cprogramming/c_pointers.htm", - "https://en.wikipedia.org/wiki/Magic_number_%28programming%29", - "https://en.wikipedia.org/wiki/Hexspeak" - ], - "lesson_objectives": [ - { - "description": "Contextualize key memory concepts in relation to C", - "proficiency_level": "B", - "KSATs": [ - "K0103", - "K0210" - ] - }, - { - "description": "Differentiate referencing and dereferencing memory in C", - "proficiency_level": "B", - "KSATs": [ - "K0103", - "K0210" - ], - "MSBs": [ - { - "description": "Interpret '*' and '\u0026' symbols in C", - "proficiency_level": "B", - "KSATs": [ - "K0103" - ] - } - ] - }, - { - "description": "Understand memory traversal in C through pointer arithmetic", - "proficiency_level": "B", - "KSATs": [ - "K0761", - "K0104" - ], - "MSBs": [ - { - "description": "Identify the relationship between pointer addresses and arrays in C ", - "proficiency_level": "B", - "KSATs": [ - "K0761", - "K0104" - ] - } - ] - }, - { - "description": "Identify and create multi-dimensional arrays in C", - "proficiency_level": "B", - "KSATs": [ - "K0104" - ], - "MSBs": [] - }, - { - "description": "Identify the purpose of function pointers in C", - "proficiency_level": "B", - "KSATs": [ - "K0760", - "S0098" - ], - "MSBs": [] - }, - { - "description": "Identify the purpose of double pointers in C", - "proficiency_level": "B", - "KSATs": [ - "K0103" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Utilize post and pre increment/decrement operators.", - "item_proficiency": "3", - "KSATs": [ - "S0108", - "S0033" - ] - }, - { - "description": "Utilize operators in a mathematical equation.", - "item_proficiency": "3", - "KSATs": [ - "S0029", - "S0033" - ] - }, - { - "description": "Utilize operators in a boolean equation.", - "item_proficiency": "3", - "KSATs": [ - "S0031", - "S0032", - "S0033" - ] - } - ], - "module_id": "IDF_Pointer_Arrays", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Pointers_Arrays/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30a6" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dfa" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Control_flow/index" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cee" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Control_flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df2" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Control_flow/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Control_flow", - "subject": "C Control Flow", - "lecture_time": 15, - "perf_demo_time": 30, - "references": [ - "http://www.math.utah.edu/computing/compilers/c/Ritchie-CReferenceManual.pdf", - "https://d1wqtxts1xzle7.cloudfront.net/53354310/Prentice_Hall_-_The_C_Programming_Language-_Brian_W._Kernighan__Dennis_M._Ritchie__2nd_ed.__ISBN_.pdf?1496315528=\u0026response-content-disposition=inline%3B+filename%3DThe_C_programming_Language.pdf\u0026Expires=1599681363\u0026Signature=CFnRn1YR99~hOdLzzxd-PEVUCQhrZB3iBskB-ngN7FADpK5BSASkhtdSRYpjv7irS2Xh7pWUA6Mvv95cjvek2hxE2BaSTIPSy2q2YpdhJaydVoY4RtC215uWVH2PDXsjdzTlpQ7QQolGIqyaTtNXxACj7uhcveNK-cczFAw3r7iHzNRsAr7lFhuCWzSQcbj1HFMSc6VlBGR0zKDSiBL5SW0Rf7BtPH~mrUeRgFeIhVU4eFfYOwlidjlanEpo29eU87WmpZrFQ1GwKGqf7Zw6f0uv5cgg6yQq-KXChLZjFmwmjTpSja8N5qHgNbEzjuQpQTxnlEWEhxiAKBX-MRd7pQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA", - "https://www.tutorialspoint.com/cprogramming/switch_statement_in_c.htm", - "http://web.engr.oregonstate.edu/~rookert/cs162/ecampus-video/CS161/template/chapter_4/ifelse.html" - ], - "lesson_objectives": [ - { - "description": "Identify the purpose of 'switch' in C.", - "proficiency_level": "B", - "KSATs": [ - "K0755" - ], - "MSBs": [] - }, - { - "description": "Differentiate common loop types in C.", - "item_proficiency": "B", - "KSATs": [ - "K0102", - "K0107", - "S0081" - ], - "MSBs": [] - }, - { - "description": "Identify if-else syntax in C", - "KSATs": [ - "K0754" - ], - "proficiency_level": "B", - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Implement the 'switch' statement in C to convert arithmetic bases", - "proficiency_level": "3", - "KSATs": [ - "S0082", - "K0755" - ], - "MSBs": [ - { - "description": "Convert user input to different numeric bases.", - "proficiency_level": "2", - "KSATs": [ - "S0079", - "S0160", - "K0096", - "" - ] - } - ] - }, - { - "description": "Implement the 'switch' statement in C to execute simple written formulas", - "proficiency_level": "3", - "KSATs": [ - "A0018", - "S0034", - "S0082", - "K0755" - ], - "MSBs": [ - { - "description": "Parse strings to arithmetic functions", - "proficiency_level": "2", - "KSATs": [ - "S0029", - "S0079", - "S0113", - "S0160", - "K0096" - ] - } - ] - }, - { - "description": "Implement common loop types in C.", - "item_proficiency": "2", - "KSATs": [ - "K0102", - "K0107", - "S0081" - ], - "MSBs": [ - { - "description": "Leverage loops to iterate through arrays in C", - "proficiency_level": "2", - "KSATs": [ - "S0035", - "S0079", - "S0081", - "S0160" - ] - } - ] - }, - { - "description": "Use the C syntax for if-else to craft solutions to a problem", - "proficiency_level": "3", - "KSATs": [ - "S0082", - "K0754" - ], - "MSBs": [ - { - "description": "Check value in char array using if statement in C.", - "proficiency_level": "3", - "KSATs": [ - "K0007", - "S0082", - "K0754" - ] - }, - { - "description": "Use 'if' in relation to user input in C.", - "proficiency_level": "3", - "KSATs": [ - "S0082", - "K0754", - "S0079", - "K0111" - ] - }, - { - "description": "Use if-else to implement bitwise instructions in C.", - "proficiency_level": "3", - "KSATs": [ - "S0082", - "S0030", - "K0754", - "K0111" - ] - }, - { - "description": "Check and manipulate int values using if-else statements in C.", - "proficiency_level": "3", - "KSATs": [ - "S0034", - "S0082", - "K0754" - ] - }, - { - "description": "Use greater and less than in C.", - "proficiency_level": "3", - "KSATs": [ - "S0082", - "K0754" - ] - } - ] - } - ], - "module_id": "IDF_C_Switch", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Control_flow/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30aa" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aef" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b37" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b21" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b14" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b24" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b18" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b17" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b2c" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b19" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b1a" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b1b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b1c" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b1d" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e15" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e00" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e01" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Multi_Threading", - "subject": "Intro to Threads", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [ - { - "description": "Explain how to implement a thread safely in multi-threading programs.", - "item_proficiency": "B", - "KSATs": [ - "K0173", - "K0184", - "K0185" - ], - "MSBs": [ - { - "description": "Understand how to implement a pthread in multi-threading programs.", - "proficiency_level": "3", - "KSATs": [ - "K0174" - ] - }, - { - "description": "Understand how to implement a fork in multi-threading programs.", - "proficiency_level": "3", - "KSATs": [ - "K0175" - ] - }, - { - "description": "Understand how to join and detach a thread in a multi-threading programs.", - "proficiency_level": "3", - "KSATs": [ - "K0176", - "K0179" - ] - }, - { - "description": "Understand how to exit a thread in multi-threading programs.", - "proficiency_level": "3", - "KSATs": [ - "K0178" - ] - } - ] - }, - { - "description": "Explain the safe utilization of common or shared resources within a multithreaded program.", - "item_proficiency": "B", - "KSATs": [ - "K0180", - "K0181", - "K0182", - "K0813" - ], - "MSBs": [ - { - "description": "Explain the use of mutex in multi-threading programs.", - "proficiency_level": "B", - "KSATs": [ - "K0180" - ] - }, - { - "description": "Explain the use of semaphore in multi-threading programs.", - "proficiency_level": "B", - "KSATs": [ - "K0181" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Demonstrate the creation and utilization of a multithreaded program.", - "item_proficiency": "2", - "KSATs": [ - "S0144", - "S0145", - "S0146" - ], - "MSBs": [ - { - "description": "Demonstrate the use of threads in multi-threading programs.", - "proficiency_level": "2", - "KSATs": [ - "S0144" - ] - }, - { - "description": "Explain the use of semaphore in multi-threading programs.", - "proficiency_level": "2", - "KSATs": [ - "S0145" - ] - }, - { - "description": "Explain the use of mutex in multi-threading programs.", - "proficiency_level": "2", - "KSATs": [ - "S0146" - ] - } - ] - } - ], - "module_id": "BD_C_Multithreading", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Multi_Threading/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30ae" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae7" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e0e" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b32" - }, - "item_proficiency": "3", - "url": "https://www.geeksforgeeks.org/pure-functions/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a9b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aaf" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae8" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dde" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b1f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b1e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a3c" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cde" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cdd" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db6" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Functions", - "subject": "Functions", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [ - { - "description": "Explain how to create and use header files.", - "item_proficiency": "B", - "KSATs": [ - "K0101" - ], - "MSBs": [ - { - "description": "Explain how to properly create a header file using the correct file extension.", - "proficiency_level": "B", - "KSATs": [ - "K0101" - ] - }, - { - "description": "Explain how to properly utilize a system and local header file.", - "proficiency_level": "B", - "KSATs": [ - "K0101" - ] - } - ] - }, - { - "description": "Explain how to use the main() function.", - "item_proficiency": "B", - "KSATs": [ - "K0093" - ], - "MSBs": [] - }, - { - "description": "Explain how to properly utilize the return statement.", - "proficiency_level": "B", - "KSATs": [ - "K0007", - "K0012" - ], - "MSBs": [] - }, - { - "description": "Explain how to properly utilize parameters in a function.", - "proficiency_level": "B", - "KSATs": [ - "K0010" - ], - "MSBs": [ - { - "description": "Explain how to use a Function Prototype", - "proficiency_level": "B", - "KSATs": [ - "K0010" - ] - }, - { - "description": "Explain how to utilize a Function Definition to establish a functions body of statements", - "proficiency_level": "B", - "KSATs": [ - "K0010" - ] - } - ] - }, - { - "description": "Summarize how to create and implement functions", - "item_proficiency": "B", - "KSATs": [ - "K0009" - ], - "MSBs": [ - { - "description": "Explain why to write a function.", - "proficiency_level": "B", - "KSATs": [ - "K0009" - ] - }, - { - "description": "Explain how to write a function.", - "proficiency_level": "B", - "KSATs": [ - "K0009" - ] - } - ] - }, - { - "description": "Identify the scope of a declared variable.", - "item_proficiency": "B", - "KSATs": [ - "K0011" - ], - "MSBs": [ - { - "description": "Describe what a storage class specifier does.", - "proficiency_level": "B", - "KSATs": [ - "K0011" - ] - } - ] - }, - { - "description": "Explain the constructs of a recursive function using C.", - "item_proficiency": "B", - "KSATs": [ - "K0737" - ] - } - ], - "performance_objectives": [ - { - "description": "Demonstrate the proper creation and use of a header files in C.", - "proficiency_level": "3", - "KSATs": [ - "S0158" - ] - }, - { - "description": "Demonstrate the proper utilization of parameters in a function.", - "proficiency_level": "3", - "KSATs": [ - "S0048" - ], - "MSBs": [ - { - "description": "Explain the differences between pass by value and pass by reference for a function.", - "proficiency_level": "B", - "KSATs": [ - "K0010" - ] - } - ] - }, - { - "description": "Create and implement functions to meet a requirement.", - "proficiency_level": "3", - "KSATs": [ - "A0061" - ] - }, - { - "description": "Demonstrate the implementation of a recursive function.", - "proficiency_level": "3", - "KSATs": [ - "S0049" - ] - } - ], - "module_id": "IDF_Functions", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Functions/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30af" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dda" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/C_compiler/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b06" - }, - "item_proficiency": "B", - "url": "https://upload.wikimedia.org/wikipedia/commons/1/1b/Portable_Executable_32_bit_Structure_in_SVG_fixed.svg" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b09" - }, - "item_proficiency": "B", - "url": "https://upload.wikimedia.org/wikipedia/commons/e/e4/ELF_Executable_and_Linkable_Format_diagram_by_Ange_Albertini.png" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b0b" - }, - "item_proficiency": "B", - "url": "https://resources.infosecinstitute.com/complete-tour-of-pe-and-elf-structure/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b0a" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/C_compiler/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df3" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/C_compiler/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "C_compiler", - "subject": "C_compiler", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/" - ], - "lesson_objectives": [ - { - "description": "Differentiate between a Portable Executable (PE) File and a Executable and Linkable Format (ELF)", - "proficiency_level": "B", - "KSATs": [ - "K0142", - "K0210", - "K0141" - ], - "MSBs": [ - { - "description": "Explain the purpose of a Portable Executable File", - "proficiency_level": "B", - "KSATs": [ - "K0141" - ] - }, - { - "description": "Explain the purpose of an Executable and Linkable Format (ELF) file.", - "proficiency_level": "B", - "KSATs": [ - "K0141" - ] - } - ] - }, - { - "description": "Contrast libraries and executables", - "proficiency_level": "B", - "KSATs": [ - "K0144" - ], - "MSBs": [ - { - "description": "Explain the purpose of a library in C", - "proficiency_level": "B", - "KSATs": [ - "K0144" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Build a statically linked program", - "proficiency_level": "2", - "KSATs": [ - "S0112", - "S0084" - ], - "MSBs": [ - { - "description": "Explain the purpose of static linking", - "proficiency_level": "2", - "KSATs": [ - "S0084", - "S0112" - ] - }, - { - "description": "Identify the steps required to link a program in C", - "proficiency_level": "3", - "KSATs": [ - "S0084", - "S0112" - ] - } - ] - } - ], - "module_id": "IDF_C_compiler", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/C_compiler/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30b0" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cdc" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32eea" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e0d" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/gcc.html?highlight=man,pa#man-pages" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d34" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/gcc.html?highlight=man,pa#man-pages" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b07" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c8e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/Definitions.html?highlight=Integrated,Development,Environment#definitions" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d33" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/Documentation.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e0b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/Documentation.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Introduction", - "subject": "Definitions", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [ - { - "description": "Explain how set up an environment to use the C language.", - "item_proficiency": "B", - "KSATs": [ - "K0689" - ], - "MSBs": [ - { - "description": "Explain how to setup C programming environment on Linux and Windows.", - "proficiency_level": "B", - "KSATs": [ - "K0689" - ] - }, - { - "description": "Explain the basics of the different text editors and development environments.", - "proficiency_level": "B", - "KSATs": [ - "K0689" - ] - } - ] - }, - { - "description": "Explain the usage of key components of the C programming language.", - "item_proficiency": "B", - "KSATs": [ - "K0689" - ], - "MSBs": [ - { - "description": "Describe basic programming Definitions.", - "proficiency_level": "B", - "KSATs": [ - "K0689" - ] - }, - { - "description": "Describe general and specific features to the C programming language.", - "proficiency_level": "B", - "KSATs": [ - "K0689" - ] - } - ] - }, - { - "description": "Explain the usage of man pages in linux to find information about C components.", - "item_proficiency": "B", - "KSATs": [ - "K0825" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Using key basic components of C, demonstrate how to analyze, modify, develop, debug and document basic program in the C programming language.", - "item_proficiency": "3", - "KSATs": [ - "T0009" - ] - }, - { - "description": "Demonstrate the utilization of man pages to find function details and utilize function.", - "item_proficiency": "3", - "KSATs": [ - "S0155" - ] - } - ], - "module_id": "BD_C_Definitions", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Introduction/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30b2" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af7" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b00" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af8" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32afa" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df3" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e0f" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a9c" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/structs.html?highlight=style#coding-style-guide" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32acd" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ace" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc9" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dcb" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd1" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dbc" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dbb" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db9" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dba" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dbd" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dbf" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Structs", - "subject": "Structs", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://www.tutorialspoint.com/cprogramming/c_structures.htm", - "https://www.geeksforgeeks.org/structures-c/", - "https://www.geeksforgeeks.org/enumeration-enum-c/", - "https://www.tutorialspoint.com/enum-in-c", - "https://www.tutorialspoint.com/cprogramming/c_typedef.htm", - "https://www.geeksforgeeks.org/typedef-versus-define-c/", - "https://www.geeksforgeeks.org/linked-list-set-1-introduction/", - "https://www.learn-c.org/en/Linked_lists", - "https://www.tutorialspoint.com/data_structures_algorithms/linked_list_program_in_c.htm", - "https://www.geeksforgeeks.org/doubly-linked-list/", - "https://www.tutorialspoint.com/data_structures_algorithms/doubly_linked_list_program_in_c.htm", - "https://www.geeksforgeeks.org/circular-singly-linked-list-insertion/", - "https://www.tutorialspoint.com/data_structures_algorithms/circular_linked_list_program_in_c.htm" - ], - "lesson_objectives": [ - { - "description": "Identify the syntax and purpose of structs in C", - "KSATs": [ - "K0124", - "K0126", - "K0127", - "K0004", - "S0156" - ], - "proficiency_level": "B", - "MSBs": [ - { - "description": "Identify the syntax and purpose of structs in C", - "proficiency_level": "B", - "KSATs": [ - "K0124", - "S0156" - ] - }, - { - "description": "Identify the syntax and use of linked lists in C", - "proficiency_level": "B", - "KSATs": [ - "K0056", - "K0057", - "K0058", - "K0060" - ] - }, - { - "description": "Identify the syntax and use of TypeDef in C", - "proficiency_level": "B", - "KSATs": [ - "K0127", - "K0689" - ] - } - ] - }, - { - "description": "Identify the syntax and types of linked lists in C", - "KSATs": [ - "K0060", - "K0058", - "K0057", - "K0056", - "S0070", - "S0069", - "S0068", - "S0067", - "S0066", - "S0065", - "S0057", - "S0056", - "S0055" - ], - "proficiency_level": "B", - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Implement structs in C", - "KSATs": [ - "S0156", - "S0112", - "K0124" - ], - "proficiency_level": "2", - "MSBs": [] - }, - { - "description": "Implement linked lists in C", - "KSATs": [ - "S0055", - "S0056", - "S0057", - "S0065", - "S0066", - "S0067", - "S0068", - "S0069", - "S0070", - "K0056", - "K0057", - "K0058", - "K0060" - ], - "proficiency_level": "2", - "MSBs": [] - } - ], - "module_id": "IDF_Structs", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Structs/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30b3" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae9" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d9b" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d9d" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32afc" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da0" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Array_Strings", - "subject": "Arrays", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://www.cs.bu.edu/teaching/cpp/string/array-vs-ptr/", - "https://www.codingame.com/playgrounds/14213/how-to-play-with-strings-in-c/array-of-c-string", - "https://www.geeksforgeeks.org/whats-difference-between-char-s-and-char-s-in-c/", - "https://www.tutorialspoint.com/cprogramming/c_strings.htm" - ], - "lesson_objectives": [ - { - "description": "Understand Array (including String) syntax in C", - "proficiency_level": "B", - "KSATs": [ - "K0096", - "K0128", - "S0034", - "S0035" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Implement Arrays and Strings as Arrays in C", - "KSATs": [ - "S0036", - "K0128", - "K0096", - "S0034", - "S0035" - ], - "proficiency_level": "2", - "MSBs": [] - } - ], - "module_id": "IDF_Arrays_Strings", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Arrays_strings/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30b4" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae9" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Variables/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aec" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Variables/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e11" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Variables/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Variables", - "subject": "Data Types", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [ - { - "description": "Explain how to declare and implement data types in C.", - "item_proficiency": "B", - "KSATs": [ - "K0096" - ], - "MSBs": [] - }, - { - "description": "Explain how to utilize type casting to convert data types in C.", - "item_proficiency": "B", - "KSATs": [ - "K0106" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Demonstrate the utilization of type casting to convert a variable to a different data type.", - "item_proficiency": "3", - "KSATs": [ - "S0159" - ] - } - ], - "module_id": "IDF_Data_Types", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Variables/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30b6" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b07" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd7" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd5" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d99" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b8d" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c1a" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "C-Debugging", - "subject": "Debugging", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html", - "https://u.osu.edu/cstutorials/2018/09/28/how-to-debug-c-program-using-gdb-in-6-simple-steps/", - "https://www.geeksforgeeks.org/gdb-step-by-step-introduction/", - "https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugging-using-windbg", - "https://code.visualstudio.com/docs/introvideos/debugging" - ], - "lesson_objectives": [ - { - "description": "Identify strategies for debugging in C", - "proficiency_level": "B", - "KSATs": [ - "K0140", - "K0321", - "K0505", - "S0016", - "K0095" - ] - } - ], - "performance_objectives": [ - { - "description": "Debug a C program", - "proficiency_level": "2", - "KSATs": [ - "S0016", - "K0140", - "K0321", - "K0505", - "K0095", - "S0079", - "S0089" - ] - } - ], - "module_id": "IDF_Debugging", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Debugging/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30b7" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Bitwise_operators/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d96" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Bitwise_operators/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Bitwise_operators", - "subject": "Bitwise_operators", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [ - { - "description": "Identify and understand bitwise operators.", - "item_proficiency": "B", - "KSATs": [ - "K0111" - ], - "MSBs": [ - { - "description": "Explain the us of the bitwise (AND, OR, XOR, NOT) operators.", - "item_proficiency": "B", - "KSATs": [ - "K0111" - ] - }, - { - "description": "Explain the us of the bitwise Shift operator.", - "item_proficiency": "B", - "KSATs": [ - "K0111" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Demonstrate the utilization of bitwise operators to manipulate binary values.", - "item_proficiency": "2", - "KSATs": [ - "S0030" - ] - } - ], - "module_id": "IDF_C_Bitwise", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Bitwise_operators/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30b8" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc9" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dcb" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd1" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db7" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dcc" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd0" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dce" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc8" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dcf" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dcd" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dbc" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dbb" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db9" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dba" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dbd" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dbf" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dbe" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc5" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc0" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc1" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc2" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc3" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc6" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc7" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32acb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32acd" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ace" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32acf" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae5" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ced" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ceb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a3d" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a3a" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a7f" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cc0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dca" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Data_Structures/Graphs/slides/#/2" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ef0" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/struct_format.html?highlight=structs#format" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Data_Structures", - "subject": "Data_Structures", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [], - "performance_objectives": [], - "module_id": "IDF_Data_Structures", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Data_Structures/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30b9" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da6" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a2d" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da9" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da8" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da7" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aad" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html?highlight=dry#recommendations" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a41" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cdf" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce5" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce6" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce7" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce9" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cea" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32daa" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "IO_part_2", - "subject": "IO_part_2", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://www.geeksforgeeks.org/basics-file-handling-c/", - "https://www.tutorialspoint.com/cprogramming/c_file_io.htm", - "https://www.cs.utah.edu/~germain/PPS/Topics/C_Language/file_IO.html" - ], - "lesson_objectives": [ - { - "description": "Identify functions and syntax for file IO in C", - "KSATs": [ - "S0042", - "S0043", - "S0044", - "S0046", - "S0045", - "A0179", - "A0412", - "K0005", - "K0746", - "K0747" - ], - "proficiency_level": "B", - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Read and write files in C", - "KSATs": [ - "S0042", - "S0043", - "S0044", - "S0046", - "S0045", - "A0412", - "K0005", - "K0746", - "K0747" - ], - "proficiency_level": "2", - "MSBs": [] - } - ], - "module_id": "IDF_IO_part_2", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/IO_part_2/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30bb" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af5" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Error_handling/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df8" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Error_handling/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df7" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Error_handling/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b2d" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Error_handling/Math_functions.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b2a" - }, - "item_proficiency": "B", - "url": "http://spc.cs.ucdavis.edu/index.php/situations/off-by-one-error" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b2e" - }, - "item_proficiency": "B", - "url": "https://www.gnu.org/software/gnulib/manual/html_node/Safe-Allocation-Macros.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Error_handling", - "subject": "Error_handling", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://www.tutorialspoint.com/c_standard_library/errorno_h.htm", - "https://www.geeksforgeeks.org/error-handling-c-programs/", - "https://www.tutorialspoint.com/c_standard_library/c_macro_assert.htm", - "https://www.geeksforgeeks.org/assertions-cc/" - ], - "lesson_objectives": [ - { - "description": " Understand motivation for and basic implementation of error handling in C", - "KSATs": [ - "K0123", - "K0189", - "K0190", - "K0192", - "S0110", - "S0113" - ], - "proficiency_level": "B", - "MSBs": [ - { - "description": "Understand the basic sources of error generation in C programs", - "proficiency_level": "B", - "KSATs": [ - "K0123", - "K0189", - "K0190", - "K0192" - ] - }, - { - "description": "Identify methods for sanitizing input ", - "proficiency_level": "2", - "KSATs": [ - "S0110", - "S0113" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Sanitize inputs and implement basic error handling ", - "KSATs": [ - "K0123", - "K0189", - "K0190", - "K0192", - "S0110", - "S0113" - ], - "proficiency_level": "2", - "MSBs": [] - } - ], - "module_id": "IDF_Error_handling", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Error_handling/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30bc" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af9" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a39" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32de1" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32de5" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e07" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d35" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd5" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/performance_labs/Valgrind_tool.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Memory_Management", - "subject": "Memory_mgmt", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://www.geeksforgeeks.org/dynamic-memory-allocation-in-c-using-malloc-calloc-free-and-realloc/", - "https://www.geeksforgeeks.org/difference-between-malloc-and-calloc-with-examples/", - "http://cs.ecs.baylor.edu/~donahoo/tools/valgrind/", - "https://stackoverflow.com/questions/5134891/how-do-i-use-valgrind-to-find-memory-leaks", - "https://www.geeksforgeeks.org/memory-layout-of-c-program/" - ], - "lesson_objectives": [ - { - "description": "Identify the fundamentals of memory management in C", - "KSATs": [ - "K0119", - "K0122", - "K0121", - "K0120", - "K0758", - "K0823", - "S0151", - "S0089", - "A0082" - ], - "proficiency_level": "B", - "MSBs": [ - { - "description": "Identify how to use memory on the heap in C", - "proficiency_level": "B", - "KSATs": [ - "K0121", - "K0757", - "K0758", - "S0090", - "S0091" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Implement memory management in C", - "KSATs": [ - "S0090", - "S0091", - "S0151", - "K0823", - "K0758", - "K0122", - "K0121", - "K0119", - "A0082" - ], - "proficiency_level": "2", - "MSBs": [ - { - "description": "Allocate and deallocate memory on the heap in C", - "proficiency_level": "2", - "KSATs": [ - "K0121", - "K0757", - "K0758", - "S0090", - "S0091" - ] - } - ] - } - ], - "module_id": "IDF_Memory_mgmt", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Memory_Management/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30c5" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad3" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad5" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad6" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad8" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad7" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32adc" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ada" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad9" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ade" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32add" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32adf" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" - } - ], - "course": "IDF", - "module": "network-programming", - "topic": "intro-to-sockets", - "subject": "Intro_to_Sockets", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://docs.python.org/3/library/socket.html" - ], - "lesson_objectives": [ - { - "description": "Understand the structure and use of sockets programming in Python", - "proficiency_level": "C", - "KSATs": [ - "K0063", - "K0064", - "K0066", - "K0068", - "K0081", - "A0631" - ] - } - ], - "performance_objectives": [ - { - "description": "Implement the Python functions from the Socket Library", - "KSATs": [ - "K0063", - "K0064", - "K0081", - "K0068" - ] - } - ], - "module_id": "IDF_intro_to_Sockets", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/intro-to-sockets/", - "created_on": "2020-06-16", - "updated_on": "2020-10-27" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30c6" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c98" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cb7" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cba" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cb9" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cbb" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cbf" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - } - ], - "course": "IDF", - "module": "network-programming", - "topic": "advanced-functionality", - "subject": "advanced_functionality", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [], - "performance_objectives": [], - "module_id": "IDF_advanced_functionality", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/advanced-functionality/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30c8" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dec" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ddd" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32deb" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a46" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32deb" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a46" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af5" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a5a" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b25" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b25" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" - } - ], - "subject": "serialization", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://docs.python.org/2/library/socket.html?highlight=pton#socket.error", - "https://docs.python.org/2/library/socket.html?highlight=pton#socket.socket.setblocking", - "https://docs.python.org/3/library/json.html", - "https://docs.python.org/3/library/struct.html", - "https://docs.python.org/2/howto/unicode.html", - "https://docs.python.org/3/library/heapq.html", - "https://docs.python.org/3/library/bisect.html", - "https://docs.python.org/3/library/collections.html", - "https://docs.python.org/2/library/socket.html", - "http://man7.org/linux/man-pages/man2/setsockopt.2.html", - "https://linux.die.net/man/2/getsockopt", - "https://docs.python.org/2/library/socketserver.html", - "https://pymotw.com/2/logging/index.html#module-logging", - "https://docs.python.org/2/library/thread.html" - ], - "lesson_objectives": [ - { - "description": "Understand the intersection of advanced topics in Python Network Programming.", - "KSATs": [ - "K0091", - "K0677", - "K0696", - "K0697", - "K0698", - "K0703", - "K0063", - "K0154", - "K0173", - "S0144", - "A0564" - ], - "MSBs": [ - { - "description": "Recognize approaches to error handling and error prevention in Network Programming", - "KSATs": [ - "K0123", - "S0110" - ] - } - ] - }, - { - "description": "Understand how to account for endianness between differing systems.", - "KSATs": [ - "K0091" - ], - "MSBs": [] - }, - { - "description": "Understand implications of threading in network programming.", - "KSATs": [ - "K0154", - "K0173", - "A0564", - "S0144" - ], - "MSBs": [] - } - ], - "performance_objectives": [], - "module_id": "Socketserver", - "network": "COMMERCIAL", - "course": "IDF", - "module": "network-programming", - "topic": "Sockets", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/advanced-functionality/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30c9" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad5" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad6" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad8" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae1" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae0" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae3" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae2" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae5" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c70" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c72" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c71" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c73" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c75" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c74" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c76" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c77" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32adb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c63" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32de3" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a30" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b08" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/bsd-socket-api.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ddc" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/bsd-socket-api.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a3f" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a33" - }, - "item_proficiency": "2", - "url": "https://www.tutorialspoint.com/python_network_programming/python_dns_look_up.htm" - } - ], - "course": "IDF", - "module": "network-programming", - "topic": "intro-to-networking", - "subject": "intro-to-networking", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://www.geeksforgeeks.org/basics-computer-networking/", - "https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml", - "https://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-en-4/ch-ports.html", - "https://www.cisco.com/c/en/us/td/docs/security/asa/asa98/configuration/general/asa-98-general-config/ref-ports.pdf", - "https://www.geeksforgeeks.org/introduction-to-wireshark/", - "https://www.andrew.cmu.edu/course/14-740-s18/applications/labs/lab0.pdf", - "http://cs.brown.edu/courses/csci1680/f19/content/wireshark1.pdf", - "http://www.steves-internet-guide.com/tcpip-ports-sockets/" - ], - "lesson_objectives": [ - { - "description": "Understand different types of ethernet configurations.", - "KSATs": [ - "K0086" - ], - "MSBs": [] - }, - { - "description": "Describe common network devices", - "KSATs": [ - "K0089" - ], - "MSBs": [] - }, - { - "description": "Describe the Address Resolution Protocol (ARP)", - "KSATs": [ - "K0611" - ], - "MSBs": [ - { - "description": " Describe physical and logical network infrastructure", - "proficiency_level": "B", - "KSATs": [ - "K0697" - ] - }, - { - "description": "Describe the purpose of switches.", - "proficiency_level": "B", - "KSATs": [ - "K0697" - ] - }, - { - "description": "Describe the purpose of hubs.", - "proficiency_level": "B", - "KSATs": [ - "K0697" - ] - }, - { - "description": "Describe the purpose of routers.", - "proficiency_level": "B", - "KSATs": [ - "K0697" - ] - }, - { - "description": "Describe the purpose of firewalls.", - "proficiency_level": "B", - "KSATs": [ - "K0697" - ] - } - ] - }, - { - "description": "Describe the purpose of OSI Layer 2", - "KSATs": [ - "K0073" - ], - "MSBs": [] - }, - { - "description": "Understand how an IPv4 address is constructed.", - "KSATs": [ - "K0081" - ], - "MSBs": [] - }, - { - "description": "Describe the purpose of OSI Layer 3", - "KSATs": [ - "K0071" - ], - "MSBs": [] - }, - { - "description": "Understand how an IPv6 address is constructed. ", - "KSATs": [ - "K0082" - ], - "MSBs": [] - }, - { - "description": "Understand the behavior of Network address translation (NAT)", - "KSATs": [ - "K0087" - ], - "MSBs": [] - }, - { - "description": "Understand how to apply CIDR notation to an IP address.", - "KSATs": [ - "K0088" - ], - "MSBs": [] - }, - { - "description": "Understand constructs of the Transmission Control Protocol (TCP)", - "KSATs": [ - "K0064" - ], - "MSBs": [] - }, - { - "description": "Understand constructs of the User Datagram Protocol (UDP)", - "KSATs": [ - "K0065" - ], - "MSBs": [] - }, - { - "description": "Describe the purpose of OSI Layer 7", - "KSATs": [ - "K0075" - ], - "MSBs": [] - }, - { - "description": "Describe the Hypertext Transfer Protocol/Secure (HTTP/HTTPS)", - "KSATs": [ - "K0612" - ], - "MSBs": [] - }, - { - "description": "Understand the process of the Domain Name System (DNS)", - "KSATs": [ - "K0613" - ], - "MSBs": [] - }, - { - "description": "Describe the process of the Simple Mail Transfer Protocol (SMTP)", - "KSATs": [ - "K0614" - ], - "MSBs": [] - }, - { - "description": "Describe the process of the Internal Control Message Protocol (ICMP)", - "KSATs": [ - "K0615" - ], - "MSBs": [] - }, - { - "description": "Describe the process of the Dynamic Host Configuration Protocol (DHCP)", - "KSATs": [ - "K00615" - ], - "MSBs": [] - }, - { - "description": "Explain concepts of networking protocols", - "KSATs": [ - "K0696" - ], - "MSBs": [ - { - "description": "Describe the process of IP", - "KSATs": [ - "K0696" - ] - }, - { - "description": "Describe the process of HTTP/HTTPS", - "KSATs": [ - "K0696" - ] - }, - { - "description": "Describe the process of DNS", - "KSATs": [ - "K0696" - ] - }, - { - "description": "Describe the process of SMTP", - "KSATs": [ - "K0696" - ] - }, - { - "description": "Describe the process of ICMP", - "KSATs": [ - "K0696" - ] - }, - { - "description": "Describe the process of DHCP", - "KSATs": [ - "K0696" - ] - } - ] - }, - { - "description": "Describe the Open Systems Interconnect (OSI) Model", - "KSATs": [ - "K0066" - ], - "MSBs": [] - }, - { - "description": "Describe the process of ports in network programming", - "KSATs": [ - "K0610" - ], - "MSBs": [] - }, - { - "description": "Describe the process of protocols in network programming", - "KSATs": [ - "K0610" - ], - "MSBs": [] - }, - { - "description": "Describe the purpose of Reading For Comments (RFC)", - "KSATs": [ - "K0617" - ], - "MSBs": [] - }, - { - "description": "Describe the purpose of wireshark", - "KSATs": [ - "K0759" - ], - "MSBs": [ - { - "description": "Describe the process of packet capture(PCAP) based intrusion detection (IDS) analysis", - "KSATs": [ - "K0594" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Describe the properties IPv4 Addressing", - "KSATs": [ - "A0631" - ] - }, - { - "description": "Describe the properties IPv6 Addressing", - "KSATs": [ - "A0632" - ] - }, - { - "description": "Describe the process of packet captures", - "KSATs": [ - "A0604" - ] - }, - { - "description": "Apply the process of packet capture(PCAP) File analysis", - "KSATs": [ - "A0605", - "A0116" - ] - }, - { - "description": "Apply the properties of capture Filters", - "KSATs": [ - "A0606" - ] - }, - { - "description": "Describe the process of trace connections", - "KSATs": [ - "A0607" - ] - }, - { - "description": "Utilize wireshark to analyze client/server program network traffic", - "KSATs": [ - "S0095" - ] - } - ], - "module_id": "IDF_Networking_Concepts", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/intro-to-networking/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30ca" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a36" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/osi-layer-2/lab-2-1.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dfb" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/osi-layer-2/lab-2-1.html" - } - ], - "course": "IDF", - "module": "network-programming", - "topic": "Python_Networking", - "subject": "Python Client Server", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [], - "performance_objectives": [ - { - "description": "Create client server applications in Python", - "KSATs": [ - "A0117", - "S0096" - ], - "MSBs": [ - { - "description": "Use different ports in Python network programming", - "KSATs": [ - "K0610" - ] - } - ] - } - ], - "module_id": "Python Sockets", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Python_Networking/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30cb" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cef" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32afe" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aff" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b05" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b02" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b03" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a3a" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a3d" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac5" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac7" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac8" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac9" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32acc" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aca" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b04" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b01" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cb5" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - } - ], - "course": "IDF", - "module": "algorithms", - "topic": "Intro-to-algorithms", - "subject": "Intro to Algorithms", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [], - "performance_objectives": [], - "module_id": "BD_Algorithms_BigO", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30d0" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa8" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cdb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d93" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cb8" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/additional_libraries_modules.html?highlight=serial#paramiko-pip-and-the-hitchhikers-guide" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd6" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/additional_libraries_modules.html?highlight=json#json" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a5c" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a5a" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b25" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b20" - }, - "item_proficiency": "B", - "url": "http://effbot.org/zone/thread-synchronization.htm" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b27" - }, - "item_proficiency": "B", - "url": "https://medium.com/@gauravkumarindia/synchronization-and-race-conditions-with-multi-threading-in-python-2d35930bb61e" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b28" - }, - "item_proficiency": "B", - "url": "https://codewithoutrules.com/2017/08/16/concurrency-python/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d36" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e12" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a28" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c81" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa5" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32abf" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac0" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac1" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d92" - }, - "item_proficiency": "", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/virtualenv.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd9" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/virtualenv.html" - } - ], - "course": "IDF", - "module": "python", - "topic": "Advanced", - "subject": "Advanced Python", - "lecture_time": 45, - "perf_demo_time": 90, - "references": [ - "https://docs.python.org/3/howto/regex.html", - "https://realpython.com/intro-to-python-threading/", - "https://pythonpedia.com/en/tutorial/9050/ctypes", - "https://python-docs.readthedocs.io/en/latest/dev/virtualenvs.html", - "https://www.w3schools.com/python/python_regex.asp", - "https://realpython.com/python-metaclasses/", - "https://docs.python.org/3/library/index.html", - "https://www.geeksforgeeks.org/python-design-patterns/", - "https://realpython.com/python-testing/", - "https://docs.python.org/3/library/ctypes.html", - "https://docs.python.org/3/library/unittest.html", - "https://docs.python.org/3/library/threading.html" - ], - "lesson_objectives": [ - { - "description": "Employ C-Types.", - "proficiency_level": "B", - "KSATs": [], - "MSBs": [ - { - "description": "Describe the purpose of C-Types.", - "proficiency_level": "B", - "KSATs": [ - "K0029" - ] - }, - { - "description": "Differentiate between ctypes.CDLL and ctypes.PyDLL.", - "proficiency_level": "B", - "KSATs": [ - "K0029" - ] - }, - { - "description": "Describe the load library function.", - "proficiency_level": "B", - "KSATs": [ - "K0029" - ] - }, - { - "description": "Describe the of purpose of structures.", - "proficiency_level": "B", - "KSATs": [ - "K0029" - ] - } - ] - }, - { - "description": "Employ advanced Python libraries.", - "proficiency_level": "C", - "KSATs": [ - "K0024" - ], - "MSBs": [ - { - "description": "Describe the purpose of sys library.", - "proficiency_level": "B", - "KSATs": [ - "K0024" - ] - }, - { - "description": "Describe the purpose of os library.", - "proficiency_level": "B", - "KSATs": [ - "K0024" - ] - }, - { - "description": "Describe the purpose of subprocess library.", - "proficiency_level": "B", - "KSATs": [ - "K0024" - ] - }, - { - "description": "Given a scenario, select the best library to interact with the system.", - "proficiency_level": "C", - "KSATs": [ - "K0024" - ] - } - ] - }, - { - "description": "Discuss the purpose of the hashlib library.", - "KSATs": [], - "MSBs": [] - }, - { - "description": "Describe the purpose of the JSON library.", - "proficiency_level": "B", - "KSATs": [ - "K0699" - ], - "MSBs": [] - }, - { - "description": "Describe the purpose of PIP (Python Package Installer).", - "proficiency_level": "B", - "KSATs": [ - "K0733" - ], - "MSBs": [] - }, - { - "description": "Understand metaclasses.", - "proficiency_level": "B", - "KSATs": [], - "MSBs": [ - { - "description": "Describe the purpose of metaclasses.", - "proficiency_level": "B", - "KSATs": [] - }, - { - "description": "Describe the benefits of metaclasses.", - "proficiency_level": "B", - "KSATs": [] - }, - { - "description": "Describe the purpose of the super() method.", - "proficiency_level": "B", - "KSATs": [] - }, - { - "description": "Describe the purpose of the new() method.", - "proficiency_level": "B", - "KSATs": [] - } - ] - }, - { - "description": "Describe multi-threading.", - "proficiency_level": "B", - "KSATs": [], - "MSBs": [ - { - "description": "Describe the purpose of multi-threading.", - "proficiency_level": "B", - "KSATs": [] - }, - { - "description": "Describe the benefits of multi-threading.", - "proficiency_level": "B", - "KSATs": [] - }, - { - "description": "Identify the Python library methods used for threading.", - "proficiency_level": "A", - "KSATs": [] - }, - { - "description": "Identify how to lock a thread in Python", - "proficiency_level": "B", - "KSATs": [] - } - ] - }, - { - "description": "Employ the Regular Expression (re) library.", - "proficiency_level": "C", - "KSATs": [ - "K0828" - ], - "MSBs": [ - { - "description": "Describe regular expressions", - "proficiency_level": "B", - "KSATs": [ - "K0828" - ] - }, - { - "description": "Differentiate between Python re module methods.", - "proficiency_level": "B", - "KSATs": [ - "K0828" - ] - }, - { - "description": "Given a pattern, write the appropriate regular expression to match it.", - "proficiency_level": "C", - "KSATs": [ - "K0828" - ] - }, - { - "description": "Given a regular expression, predict the strings that will match.", - "proficiency_level": "C", - "KSATs": [ - "K0828" - ] - } - ] - }, - { - "description": "Discuss the purpose of unit testing.", - "KSATs": [ - "K0625" - ], - "MSBs": [] - }, - { - "description": "Discuss the unittest library.", - "KSATs": [ - "K0625" - ], - "MSBs": [] - }, - { - "description": "Discuss the doctest library.", - "KSATs": [ - "K0625" - ], - "MSBs": [] - }, - { - "description": "Describe the terms and fundamentals associated with object-oriented programming using Python.", - "proficiency_level": "B", - "KSATs": [ - "K0030" - ], - "MSBs": [ - { - "description": "Describe the behavior of a singleton design pattern.", - "proficiency_level": "A", - "KSATs": [ - "K0042" - ] - }, - { - "description": "Describe the behavior of an adapter design pattern.", - "proficiency_level": "A", - "KSATs": [ - "K0043" - ] - }, - { - "description": "Describe the behavior of a bridge design pattern.", - "proficiency_level": "A", - "KSATs": [ - "K0044" - ] - } - ] - }, - { - "description": "Set up and replicate a Python Virtual Environment.", - "KSATs": [ - "S0028" - ], - "MSBs": [ - { - "description": "Understand the purpose and benefits of Python Virtual Environments.", - "proficiency_level": "B", - "KSATs": [ - "K0734" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Create a structure to pass to an imported CDLL.", - "KSATs": [] - }, - { - "description": "Import a C library (.DLL/.SO) to utilize a C compiled function.", - "KSATs": [] - }, - { - "description": "Create a Python script that interacts with system processes.", - "KSATs": [ - "S0026" - ] - }, - { - "description": "Create a Python script that interacts with operating system functionality.", - "KSATs": [ - "S0026" - ] - }, - { - "description": "Create a Python script that interacts with system-level information.", - "KSATs": [ - "S0026" - ] - }, - { - "description": "Given a set of requirements, implement a metaclass.", - "KSATs": [ - "A0563" - ] - }, - { - "description": "Utilize the Thread library to implement a simple multithreaded program.", - "KSATs": [ - "A0564" - ] - }, - { - "description": "Use the Python 're' library to match a specified pattern.", - "KSATs": [ - "S0161" - ] - }, - { - "description": "Design a unit test", - "KSATs": [ - "A0077" - ] - }, - { - "description": "Implement a unit test.", - "KSATs": [ - "A0077" - ] - }, - { - "description": "Utilize unit test results to guide program debugging.", - "KSATs": [ - "A0077" - ] - } - ], - "module_id": "BD_PY_ADVNCD_CTYPE", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/advanced/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30d6" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c3b" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cb3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a9e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a9f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32caa" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" - } - ], - "course": "IDF", - "module": "python", - "topic": "python_features", - "subject": "running_python", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://docs.python.org/3/", - "https://docs.python.org/2.7/library/index.html", - "https://wiki.python.org/moin/Python2orPython3?action=recall\u0026rev=96", - "https://docs.python.org/3.7/library/index.html", - "https://docs.python.org/2.7/", - "https://realpython.com/run-python-scripts/", - "https://www.pythonforbeginners.com/basics/python-docstrings/", - "https://www.guru99.com/python-2-vs-python-3.html", - "https://www.python.org/dev/peps/pep-0008/" - ], - "lesson_objectives": [ - { - "description": "Describe how to use Python from the command line", - "KSATs": [ - "K0514" - ], - "MSBs": [], - "proficiency_level": "A" - }, - { - "description": "Explain the purpose and usage of elements and components of the Python programming language", - "KSATs": [ - "K0690" - ], - "MSBs": [], - "proficiency_level": "B" - }, - { - "description": "Identify code written for Python 2 or Python 3", - "proficiency_level": "B", - "KSATs": [ - "K0023" - ], - "MSBs": [] - }, - { - "description": "Describe execution of Python from the command line", - "proficiency_level": "B", - "KSATs": [ - "K0514" - ], - "MSBs": [] - }, - { - "description": "Use Python Documentation (PyDocs)", - "proficiency_level": "B", - "KSATs": [ - "K0022" - ], - "MSBs": [] - }, - { - "description": "Apply Python standards", - "proficiency_level": "B", - "KSATs": [ - "K0021" - ], - "MSBs": [ - { - "description": "Interpret Python Enhancement Protocol 8 (PEP8) standards", - "proficiency_level": "B", - "KSATs": [ - "K0021" - ] - }, - { - "description": "Employ documentation of Python code", - "proficiency_level": "B", - "KSATs": [ - "K0021" - ] - }, - { - "description": "Describe the Python Library", - "proficiency_level": "B", - "KSATs": [ - "K0024" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Launch Python from the command line", - "KSATs": [] - } - ], - "module_id": "BD_PY_FEATRS_RUN", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/python_features/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30d9" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab7" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d95" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cc6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d97" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aba" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab5" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab9" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32abd" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cc3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ccd" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d98" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d96" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" - } - ], - "course": "IDF", - "module": "python", - "topic": "Data_Types", - "subject": "tuples", - "lecture_time": 30, - "perf_demo_time": 0, - "references": [ - "https://www.w3schools.com/python/python_dictionaries.asp", - "https://www.w3schools.com/python/python_tuples.asp", - "https://docs.python.org/3/tutorial/datastructures.html", - "https://www.tutorialspoint.com/python/python_variable_types.htm", - "https://www.tutorialspoint.com/python3/python_strings.htm", - "https://realpython.com/python-dicts/", - "https://docs.python.org/3/library/string.html", - "https://www.w3schools.com/python/python_lists.asp", - "https://docs.python.org/3/library/stdtypes.html", - "https://docs.python.org/3/library/numbers.html" - ], - "lesson_objectives": [ - { - "description": "Describe tuples", - "proficiency_level": "B", - "KSATs": [ - "K0016" - ], - "MSBs": [ - { - "description": "Describe the purpose of tuples", - "proficiency_level": "B", - "KSATs": [ - "K0016" - ] - }, - { - "description": "Describe the properties of tuples", - "proficiency_level": "B", - "KSATs": [ - "K0016" - ] - } - ] - }, - { - "description": "Discuss the use of the range() function in Python3", - "KSATs": [], - "MSBs": [] - }, - { - "description": "Describe a string", - "proficiency_level": "B", - "KSATs": [ - "K0711" - ], - "MSBs": [ - { - "description": "Distinguish between the default string encoding in Python2 vs Python3", - "proficiency_level": "B", - "KSATs": [ - "K0711" - ] - }, - { - "description": "Describe the options for string variable assignment", - "proficiency_level": "B", - "KSATs": [ - "K0711" - ] - }, - { - "description": "Identify string prefixes", - "proficiency_level": "B", - "KSATs": [ - "K0711" - ] - } - ] - }, - { - "description": "Describe basic string methods", - "proficiency_level": "B", - "KSATs": [ - "K0711" - ], - "MSBs": [] - }, - { - "description": "Comprehend dictionaries in Python", - "proficiency_level": "C", - "KSATs": [ - "K0014" - ], - "MSBs": [ - { - "description": "Describe the syntax to create a dictionary", - "proficiency_level": "B", - "KSATs": [ - "K0014" - ] - }, - { - "description": "Describe the syntax to access items in a dictionary", - "proficiency_level": "B", - "KSATs": [ - "K0014" - ] - }, - { - "description": "Describe the syntax to add, update and delete items in a dictionary", - "proficiency_level": "B", - "KSATs": [ - "K0014" - ] - }, - { - "description": "Describe the syntax to create and access multi-dimensional dictionaries", - "proficiency_level": "B", - "KSATs": [ - "K0014" - ] - } - ] - }, - { - "description": "Comprehend sets Python", - "proficiency_level": "A", - "KSATs": [ - "K0017" - ], - "MSBs": [ - { - "description": "Describe the syntax to create a set", - "proficiency_level": "B", - "KSATs": [ - "K0017" - ] - }, - { - "description": "Describe the syntax to access items in a set", - "proficiency_level": "B", - "KSATs": [ - "K0017" - ] - }, - { - "description": "Describe the syntax to add and delete items in a set", - "proficiency_level": "B", - "KSATs": [ - "K0017" - ] - } - ] - }, - { - "description": "Comprehend frozensets in Python", - "proficiency_level": "A", - "KSATs": [ - "K0017" - ], - "MSBs": [] - }, - { - "description": "Differentiate operations that can be done to a set but not a frozenset in Python", - "proficiency_level": "A", - "KSATs": [ - "K0017" - ], - "MSBs": [] - }, - { - "description": "Employ variables in Python", - "proficiency_level": "C", - "KSATs": [], - "MSBs": [ - { - "description": "Describe the purpose of variables", - "proficiency_level": "B", - "KSATs": [] - }, - { - "description": "Describe the syntax to determine data type of a variable", - "proficiency_level": "B", - "KSATs": [] - }, - { - "description": "Describe the syntax to assign a variable", - "proficiency_level": "B", - "KSATs": [] - } - ] - }, - { - "description": "Apply the concept of mutability", - "proficiency_level": "B", - "KSATs": [ - "K0018", - "K0019" - ], - "MSBs": [ - { - "description": "Describe mutability", - "proficiency_level": "B", - "KSATs": [ - "K0018", - "K0019" - ] - }, - { - "description": "Identify the mutability of specific data types in Python", - "proficiency_level": "B", - "KSATs": [ - "K0015", - "K0016" - ] - } - ] - }, - { - "description": "Distinguish between different number prefixes", - "proficiency_level": "B", - "KSATs": [ - "K0008" - ], - "MSBs": [] - }, - { - "description": "Distinguish between different number types", - "proficiency_level": "B", - "KSATs": [ - "K0008" - ], - "MSBs": [] - }, - { - "description": "Describe the Boolean data type", - "proficiency_level": "B", - "KSATs": [ - "K0008" - ], - "MSBs": [] - }, - { - "description": "Employ arithmetic operators", - "proficiency_level": "C", - "KSATs": [ - "K0716" - ], - "MSBs": [ - { - "description": "Differentiate arithmetic operators", - "proficiency_level": "C", - "KSATs": [ - "K0716" - ] - }, - { - "description": "Given a scenario predict the resulting type of a math operation with different operand types", - "proficiency_level": "C", - "KSATs": [ - "K0716" - ] - }, - { - "description": "Differentiate bitwise operators", - "proficiency_level": "B", - "KSATs": [ - "K0111" - ] - }, - { - "description": "Describe the order of operations", - "proficiency_level": "B", - "KSATs": [ - "K0716" - ] - } - ] - }, - { - "description": "Employ type conversion", - "proficiency_level": "C", - "KSATs": [ - "K0712" - ], - "MSBs": [] - }, - { - "description": "Comprehend lists in Python", - "proficiency_level": "B", - "KSATs": [ - "K0015" - ], - "MSBs": [ - { - "description": "Describe the syntax to slice a list", - "proficiency_level": "B", - "KSATs": [ - "K0015" - ] - }, - { - "description": "Describe the syntax to retrieve/modify/delete an element of a list", - "proficiency_level": "B", - "KSATs": [ - "K0015" - ] - }, - { - "description": "Describe the syntax to combine a list", - "proficiency_level": "B", - "KSATs": [ - "K0015" - ] - }, - { - "description": "Comprehend multidimensional lists", - "proficiency_level": "B", - "KSATs": [ - "K0015" - ] - } - ] - }, - { - "description": "Comprehend map, filter and reduce in Python", - "proficiency_level": "B", - "KSATs": [], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Store specified data in a tuple.", - "KSATs": [ - "S0024" - ] - }, - { - "description": "Create a program using strings and string methods", - "KSATs": [ - "S0023" - ] - }, - { - "description": "Utilize string methods to manipulate strings", - "KSATs": [ - "S0023" - ] - }, - { - "description": "Store user input as a string", - "KSATs": [ - "S0023" - ] - }, - { - "description": "Use the Python interpreter to identify the data type", - "KSATs": [ - "S0023" - ] - }, - { - "description": "Use arithmetic operators to modify Python program functionality", - "KSATs": [ - "S0029" - ] - }, - { - "description": "Use bitwise operators to modify Python program functionality", - "KSATs": [ - "S0030" - ] - }, - { - "description": "Use type conversion to modify Python program functionality", - "KSATs": [ - "S0023" - ] - }, - { - "description": "Use Python to create, access and manipulate a list", - "KSATs": [ - "S0024" - ] - }, - { - "description": "Use Python to create, access and manipulate a Multi-dimensional list", - "KSATs": [ - "S0024" - ] - } - ], - "module_id": "BD_PY_DTYPES_TUP", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Data_Types/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30df" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac7" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b01" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b02" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b03" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b05" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32afe" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aff" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a3d" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms" - } - ], - "course": "IDF", - "module": "python", - "topic": "Algorithms", - "subject": "Algorithms", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://github.com/TheAlgorithms/Python/tree/master/searches", - "https://www.tutorialspoint.com/python_data_structure/python_big_o_notation.htm", - "https://github.com/TheAlgorithms/Python/tree/master/data_structures", - "https://stackabuse.com/sorting-algorithms-in-python/", - "https://github.com/TheAlgorithms/Python/tree/master/sorts", - "https://www.tutorialspoint.com/python_data_structure/python_sorting_algorithms.htm", - "https://realpython.com/sorting-algorithms-python/" - ], - "lesson_objectives": [ - { - "description": "Understand and implement common algorithm types using Python", - "proficiency_level": "B", - "KSATs": [ - "K0045", - "K0046", - "K0047", - "K0049", - "K0133", - "K0134", - "K0135", - "K0136", - "K0137" - ], - "MSBs": [] - }, - { - "description": "Identify how big O notation describes algorithm efficiency", - "proficiency_level": "1", - "KSATs": [ - "A0093", - "K0132" - ], - "MSBs": [] - }, - { - "description": "Identify the uses and efficiency of common sorting algorithms", - "proficiency_level": "B", - "KSATs": [ - "K0133", - "K0134", - "K0136", - "K0137", - "A0093" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Implement search and sort algorithms in Python", - "KSATs": [ - "A0087", - "A0093" - ] - }, - { - "description": "Recognize the implications of big O notation", - "KSATs": [ - "A0093", - "K0132" - ] - }, - { - "description": "Implement common sorting algorithms in Python", - "KSATs": [ - "K0133", - "K0134", - "K0136", - "K0137", - "A0093" - ] - } - ], - "module_id": "BD_PY_ALGO", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Algorithms/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30e7" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dfa" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cc4" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d9e" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da1" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da3" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da2" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da5" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab4" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab2" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab8" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32abc" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32abe" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a3b" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce8" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ce4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df2" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d9f" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da4" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cc9" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cec" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" - } - ], - "course": "IDF", - "module": "python", - "topic": "flow_control", - "subject": "break_continue", - "lecture_time": 15, - "perf_demo_time": 60, - "references": [ - "https://www.tutorialspoint.com/python/python_basic_operators.htm", - "https://www.w3schools.com/python/python_for_loops.asp", - "https://docs.python.org/3/library/operator.html", - "https://wiki.python.org/moin/WhileLoop", - "https://www.tutorialspoint.com/python3/python_files_io.htm", - "https://www.w3schools.com/python/python_while_loops.asp", - "https://wiki.python.org/moin/ForLoop", - "https://realpython.com/python-conditional-statements/", - "https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops", - "https://docs.python.org/3/library/io.html" - ], - "lesson_objectives": [ - { - "description": "Comprehend if, elif, else statements in Python", - "proficiency_level": "B", - "KSATs": [ - "K0713" - ], - "MSBs": [ - { - "description": "Describe if, elif, else syntax", - "proficiency_level": "B", - "KSATs": [ - "K0713" - ] - }, - { - "description": "Given Python Code, predict the behavior of code involving if, elif, else syntax.", - "proficiency_level": "B", - "KSATs": [ - "K0713" - ] - } - ] - }, - { - "description": "Comprehend While loops in Python", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ], - "MSBs": [ - { - "description": "Describe While loop syntax", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ] - }, - { - "description": "Describe using the while loop to repeat code execution.", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ] - }, - { - "description": "Given Python Code, predict the outcome of a while loop.", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ] - } - ] - }, - { - "description": "Comprehend For loops in Python", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ], - "MSBs": [ - { - "description": "Describe For loop syntax", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ] - }, - { - "description": "Describe using the For loop to iterate through different data type elements.", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ] - }, - { - "description": "Given Python Code, predict the outcome of a For loop.", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ] - } - ] - }, - { - "description": "Comprehend Python operators", - "proficiency_level": "B", - "KSATs": [ - "K0715", - "K0735" - ], - "MSBs": [ - { - "description": "Describe the purpose of membership operators", - "proficiency_level": "B", - "KSATs": [ - "K0715" - ] - }, - { - "description": "Describe the purpose of identity operators", - "proficiency_level": "B", - "KSATs": [ - "K0715" - ] - }, - { - "description": "Describe the purpose of boolean operators", - "proficiency_level": "B", - "KSATs": [ - "K0715" - ] - }, - { - "description": "Describe the purpose of assignment operators", - "proficiency_level": "B", - "KSATs": [ - "K0735" - ] - } - ] - }, - { - "description": "Given a scenario, select the appropriate relational operator for the solution.", - "proficiency_level": "C", - "KSATs": [ - "K0715", - "K0735" - ], - "MSBs": [] - }, - { - "description": "Given a code snippet containing operators, predict the outcome of the code.", - "proficiency_level": "C", - "KSATs": [ - "K0715", - "K0735" - ], - "MSBs": [] - }, - { - "description": "Comprehend the purpose of the Break statement", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ], - "MSBs": [] - }, - { - "description": "Comprehend the purpose of the Continue statement", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ], - "MSBs": [] - }, - { - "description": "Given a code snippet, predict the behavior of a loop that contains a break/continue statement.", - "proficiency_level": "B", - "KSATs": [ - "K0107" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Control the execution of a program with conditional if, elif, else statements.", - "KSATs": [ - "S0082" - ] - }, - { - "description": "Use a while loop to repeat code execution a specified number of times", - "KSATs": [ - "S0081" - ] - }, - { - "description": "Iterate through Python object elements with a For loop", - "KSATs": [ - "S0081" - ] - }, - { - "description": "Utilize assignment operators as part of a Python code solution.", - "KSATs": [ - "S0033" - ] - }, - { - "description": "Utilize boolean operators as part of a Python code solution.", - "KSATs": [ - "S0032" - ] - }, - { - "description": "Utilize membership operators as part of a Python code solution.", - "KSATs": [ - "S0032" - ] - }, - { - "description": "Utilize identity operators as part of a Python code solution.", - "KSATs": [ - "S0032" - ] - }, - { - "description": "Utilize break or continue statements to control code behavior in loops.", - "KSATs": [ - "S0081" - ] - } - ], - "module_id": "BD_PY_FLCON_BREAK", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Flow_Control/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30ea" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32abb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a57" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d93" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a9d" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cdb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d91" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa7" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa9" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aae" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab4" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab2" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32abc" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a7c" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ca3" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ee1" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aab" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aac" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab8" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd7" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd4" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cc2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b34" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa5" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aaa" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" - } - ], - "course": "IDF", - "module": "python", - "topic": "oop", - "subject": "user_classes", - "lecture_time": 60, - "perf_demo_time": 120, - "references": [ - "https://realpython.com/python3-object-oriented-programming/", - "https://docs.python.org/3/library/exceptions.html", - "https://docs.python.org/3/tutorial/modules.html", - "https://wiki.python.org/moin/HandlingExceptions", - "https://www.w3schools.com/python/python_classes.asp", - "https://pip.pypa.io/en/stable/quickstart/", - "https://docs.python.org/3/tutorial/classes.html", - "https://docs.python.org/3/tutorial/modules.html#packages" - ], - "lesson_objectives": [ - { - "description": "Understand how to import modules and module components in Python.", - "proficiency_level": "C", - "KSATs": [ - "K0013" - ], - "MSBs": [ - { - "description": "Employ the Python standard library to solve a problem.", - "KSATs": [ - "K0024" - ], - "proficiency_level": "C" - } - ] - }, - { - "description": "Describe how to utilize PIP to install a Python package.", - "proficiency_level": "B", - "KSATs": [ - "K0733" - ], - "MSBs": [] - }, - { - "description": "Comprehend Python objects", - "KSATs": [ - "K0033" - ], - "MSBs": [ - { - "description": "Comprehend Python classes", - "KSATs": [ - "K0032" - ] - }, - { - "description": "Differentiate between Python objects and classes", - "KSATs": [ - "K0034" - ] - } - ] - }, - { - "description": "Explain the Python keyword super", - "KSATs": [ - "K0037" - ], - "MSBs": [] - }, - { - "description": "Explain Python object initialization", - "KSATs": [ - "K0038" - ], - "MSBs": [] - }, - { - "description": "Explain Python object attributes", - "KSATs": [ - "K0040" - ], - "MSBs": [] - }, - { - "description": "Describe polymorphism in Python", - "KSATs": [ - "K0031" - ], - "MSBs": [] - }, - { - "description": "Describe inheritance in Python", - "KSATs": [ - "K0036" - ], - "MSBs": [] - }, - { - "description": "Describe getter and setter functions in Python", - "KSATs": [ - "K0039" - ], - "MSBs": [] - }, - { - "description": "Understand how to implement input validation in Python.", - "KSATs": [ - "K0195" - ], - "MSBs": [] - }, - { - "description": "Understand how to implement exception handling in Python.", - "KSATs": [ - "K0710" - ], - "MSBs": [] - }, - { - "description": "Describe the terms and fundamentals associated with object-orientated programming using Python.", - "proficiency_level": "C", - "KSATs": [ - "K0030" - ], - "MSBs": [ - { - "description": "Describe the advantages of object-orientated programming in Python.", - "proficiency_level": "A", - "KSATs": [ - "K0035" - ] - } - ] - }, - { - "description": "Discuss Common Principles of object-oriented programming.", - "KSATs": [], - "MSBs": [] - }, - { - "description": "Discuss Code Styling Considerations of object-orientated programming.", - "KSATs": [], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Create, reuse and import modules in Python.", - "KSATs": [ - "A0561" - ] - }, - { - "description": "Utilize modules in the Python standard library.", - "KSATs": [ - "S0026" - ] - }, - { - "description": "Install and utilize a Python package via PIP.", - "KSATs": [ - "S0027" - ] - }, - { - "description": "Write a class in Python", - "KSATs": [ - "A0726" - ] - }, - { - "description": "Instantiate a Python object", - "KSATs": [ - "A0727" - ] - }, - { - "description": "Write a class constructor", - "KSATs": [ - "A0729" - ] - }, - { - "description": "Write object-oriented programs", - "KSATs": [ - "A0725" - ] - }, - { - "description": "Implement object inheritance.", - "KSATs": [ - "A0728" - ] - }, - { - "description": "Expand class functionality using getter and setter functions.", - "KSATs": [ - "A0725" - ] - }, - { - "description": "Use class methods to modify instantiated class objects.", - "KSATs": [ - "A0725" - ] - }, - { - "description": "Write a program to demonstrate input validation in Python.", - "KSATs": [ - "S0079" - ] - }, - { - "description": "Write a program to demonstrate exception handling in Python.", - "KSATs": [ - "S0080" - ] - } - ], - "module_id": "BD_PY_OOP_USRCLS", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/oop/", - "created_on": "2020-06-16", - "updated_on": "2020-08-18" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30f1" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aaf" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db6" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a9b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dad" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db4" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd3" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a3c" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cda" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db5" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc4" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" - } - ], - "course": "IDF", - "module": "python", - "topic": "functions", - "subject": "user_functions", - "lecture_time": 100, - "perf_demo_time": 120, - "references": [ - "https://pythonspot.com/recursion/", - "https://realpython.com/python-thinking-recursively/", - "https://www.digitalocean.com/community/tutorials/how-to-define-functions-in-python-3", - "https://www.programiz.com/python-programming/generator", - "https://www.w3schools.com/PYTHON/python_scope.asp", - "https://realpython.com/python-lambda/", - "https://www.w3schools.com/python/python_lambda.asp", - "https://www.w3schools.com/python/python_iterators.asp", - "https://www.programiz.com/python-programming/closure", - "https://pythonbasics.org/scope/" - ], - "lesson_objectives": [ - { - "description": "Understand the scope of a declared variable in Python.", - "proficiency_level": "B", - "KSATs": [ - "K0011" - ], - "MSBs": [] - }, - { - "description": "Describe the purpose and use of iterators in Python", - "proficiency_level": "B", - "KSATs": [ - "K0026" - ], - "MSBs": [] - }, - { - "description": "Describe the purpose and use of generators in Python", - "proficiency_level": "B", - "KSATs": [ - "K0027" - ], - "MSBs": [] - }, - { - "description": "Understand how functions are created and implemented in Python.", - "proficiency_level": "B", - "KSATs": [ - "K0009" - ], - "MSBs": [ - { - "description": "Understand the purpose of the return statement in Python.", - "proficiency_level": "B", - "KSATs": [ - "K0007" - ] - }, - { - "description": "Understand the purpose of parameters for a function in Python.", - "proficiency_level": "B", - "KSATs": [ - "K0010" - ] - }, - { - "description": "Understand how return values are used in a function in Python.", - "proficiency_level": "B", - "KSATs": [ - "K0012" - ] - }, - { - "description": "Understand how to implement a function that returns multiple values in Python.", - "proficiency_level": "B", - "KSATs": [ - "K0736" - ] - } - ] - }, - { - "description": "Describe the purpose and use of lambda functions in Python.", - "proficiency_level": "B", - "KSATs": [ - "K0028" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Write a program to parse command line arguments in Python.", - "KSATs": [ - "S0014" - ] - }, - { - "description": "Write a program to return multiples values in Python.", - "KSATs": [ - "S0047" - ] - }, - { - "description": "Write a program to receive input parameters in Python.", - "KSATs": [ - "S0048" - ] - }, - { - "description": "Create and implement functions to meet a requirement in Python.", - "KSATs": [ - "A0061", - "S0052", - "S0050", - "A0061" - ] - } - ], - "module_id": "BD_PY_FUNC_USRFUNC", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/functions/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30f3" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b38" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b41" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b45" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32baf" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df5" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b39" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b4c" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b49" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b3b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b3d" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b3e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b3f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b40" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b42" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b48" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b4a" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b4b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b5a" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b4f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b50" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b51" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cfa" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cfb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cfe" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e1d" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Debugging_ASM_pt1.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b3c" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/negative_bitwise.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b46" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Data_Types.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d2f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Data_Types.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b47" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d24" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b53" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dfc" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b86" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" - } - ], - "course": "IDF", - "module": "assembly", - "topic": "Intro_to_ASM", - "subject": "Computer_basics", - "lecture_time": 90, - "perf_demo_time": 60, - "references": [ - "https://www.csee.umbc.edu/courses/undergraduate/313/spring05/burt_katz/lectures/Lect10/structuresInAsm.html", - "https://www.gnu-pascal.de/gpc/Endianness.html", - "https://www.tutorialspoint.com/assembly_programming/assembly_registers.htm", - "https://en.wikibooks.org/wiki/X86_Assembly/X86_Architecture", - "http://www.c-jump.com/CIS77/ASM/DataTypes/lecture.html", - "https://unix.stackexchange.com/questions/297982/how-to-step-into-step-over-and-step-out-with-gdb", - "https://www.tutorialspoint.com/assembly_programming/assembly_variables.htm", - "https://courses.cs.washington.edu/courses/cse351/13su/lectures/12-structs.pdf", - "https://www.geeksforgeeks.org/assembly-language-program-find-largest-number-array/", - "https://stackoverflow.com/questions/43562980/swapping-two-int-pointers-in-assembly-x86" - ], - "lesson_objectives": [ - { - "description": "Review computer fundamentals necessary to contextualize Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0201", - "K0202", - "K0219", - "K0315" - ], - "MSBs": [ - { - "description": "Describe the specifics of x86 architecture.", - "proficiency_level": "B", - "KSATs": [ - "K0201" - ] - }, - { - "description": "Describe the specifics of x86_64 architecture.", - "proficiency_level": "B", - "KSATs": [ - "K0202" - ] - }, - { - "description": "Differentiate data sizes and their prefixes in computer soft- and hard-ware", - "proficiency_level": "B", - "KSATs": [ - "K0219" - ] - } - ] - }, - { - "description": "Understand underlying structure and methodology for working with Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0207", - "K0209", - "K0210", - "K0213", - "K0214", - "K0215", - "K0216", - "K0217", - "K0223", - "K0224", - "K0225", - "K0226" - ], - "MSBs": [ - { - "description": "Identify an operand as part of an instruction in Assembly", - "proficiency_level": "B", - "KSATs": [ - "K0207" - ] - }, - { - "description": "Understand the purpose of an assembler", - "proficiency_level": "B", - "KSATs": [ - "K0209" - ] - }, - { - "description": "Understand the implications of the term 'endianness' to data", - "proficiency_level": "B", - "KSATs": [ - "K0210" - ] - }, - { - "description": "Identify and describe 64 bit registers", - "proficiency_level": "B", - "KSATs": [ - "K0213" - ] - }, - { - "description": "Identify and describe 32 bit registers", - "proficiency_level": "B", - "KSATs": [ - "K0214" - ] - }, - { - "description": "Identify and describe the lower 16 bit registers", - "proficiency_level": "B", - "KSATs": [ - "K0215" - ] - }, - { - "description": "Identify and describe the 'high' 8-bit registers", - "proficiency_level": "B", - "KSATs": [ - "K0216" - ] - }, - { - "description": "Identify and describe the 'low' 8-bit registers", - "proficiency_level": "B", - "KSATs": [ - "K0217" - ] - }, - { - "description": "With required resources, describe the purpose and use of the NASM assembler", - "proficiency_level": "B", - "KSATs": [ - "K0223" - ] - }, - { - "description": "Understand the implementation of opcodes in Assembly", - "proficiency_level": "B", - "KSATs": [ - "K0224" - ] - }, - { - "description": "Understand how the assembler works", - "proficiency_level": "B", - "KSATs": [ - "K0225" - ] - }, - { - "description": "Identify differences across assemblers", - "proficiency_level": "B", - "KSATs": [ - "K0226" - ] - } - ] - }, - { - "description": "Differentiate data types and registers in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0213", - "K0214", - "K0215", - "K0216", - "K0217", - "K0763", - "K0769", - "S0125", - "S0130", - "S0134" - ], - "MSBs": [ - { - "description": "Identify the purpose of movzx in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0769" - ] - }, - { - "description": "Identify the purpose of xchg in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0771" - ] - }, - { - "description": "Identify unique characteristics of registers in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0213", - "K0214", - "K0215", - "K0216", - "K0217" - ] - }, - { - "description": "Identify different data types in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0763" - ] - } - ] - }, - { - "description": "Describe Advanced Data Type use in Assembly", - "proficiency_level": "B", - "KSATs": [ - "K0221", - "K0222" - ], - "MSBs": [ - { - "description": "Understand the purpose of 'structure' in Assembly'", - "proficiency_level": "B", - "KSATs": [ - "K0222", - "K0308", - "S0114" - ] - }, - { - "description": "Understand iteration of consecutive memory addresses in Assembly, i.e, how to iterate through an array", - "proficiency_level": "B", - "KSATs": [ - "K0221" - ] - } - ] - } - ], - "map_for": "training", - "performance_objectives": [ - { - "description": "Write programs to move, replace, and swap values in registers using Assembly.", - "KSATs": [ - "S0143", - "S0125", - "K0767", - "K0771" - ] - }, - { - "description": "Write programs partially copying data - leveraging and adapting across registers of different sizes.", - "KSATs": [ - "S0134", - "S0143", - "S0125", - "K0769", - "K0771" - ] - }, - { - "description": "Identify and access different registers appropriately in Assembly.", - "proficiency_level": "2", - "KSATs": [ - "S0134", - "K0213", - "K0214", - "K0215", - "K0216", - "K0217" - ], - "MSBs": [ - { - "description": "Use movzx across register types as appropriate in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0769", - "S0125" - ] - }, - { - "description": "Recognize limitations of xchg and implement as appropriate in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0771", - "S0125" - ] - } - ] - } - ], - "module_id": "IDF_ASM_CMP_Basic", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "topic_path": "mdbook/src/Intro_to_ASM/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30f6" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b73" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d02" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d03" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d01" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d19" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d0f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d1f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d1d" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d27" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d29" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b68" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b6b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b65" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d2a" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b69" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d18" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d22" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d23" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d16" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Strings_Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cfa" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Strings_Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e2f" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Strings_Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b44" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Strings_Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b57" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32de7" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Control_Flow.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b53" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Control_Flow.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df0" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Control_Flow.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b56" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b5e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b61" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b62" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d28" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d2c" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df6" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b58" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" - } - ], - "course": "IDF", - "module": "assembly", - "topic": "ASM_Control_flow", - "subject": "Control_Flow", - "lecture_time": 15, - "perf_demo_time": 45, - "references": [ - "https://www.amd.com/system/files/TechDocs/24594.pdf", - "https://eli.thegreenplace.net/2011/09/06/stack-frame-layout-on-x86-64/", - "https://security.stackexchange.com/questions/129499/what-does-eip-stand-for", - "https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-1-manual.pdf", - "https://wiki.osdev.org/X86-64_Instruction_Encoding#Legacy_Prefixes", - "https://en.wikipedia.org/wiki/FLAGS_register", - "https://www.quora.com/What-is-POPF-I-can-understand-PUSHF-cause-it-simply-push-flags-but-what-is-POPF-How-does-computer-know-what-is-flag-to-pop-1", - "http://www.c-jump.com/CIS77/ASM/Instructions/I77_0070_eflags_bits.htm", - "https://nasm.us/doc/nasmdoc3.html", - "https://compas.cs.stonybrook.edu/~nhonarmand/courses/sp17/cse506/ref/assembly.html", - "https://datacadamia.com/computer/cpu/register/eflags", - "https://www.tutorialspoint.com/assembly_programming/assembly_scas_instruction.htm", - "https://www.tutorialspoint.com/assembly_programming/assembly_registers.htm", - "https://en.wikipedia.org/wiki/X86_calling_conventions", - "https://en.wikibooks.org/wiki/X86_Assembly/Control_Flow", - "https://revers.engineering/applied-re-accelerated-assembly-p1/", - "https://wiki.skullsecurity.org/index.php?title=Registers#eip", - "https://www.felixcloutier.com/x86/scas:scasb:scasw:scasd" - ], - "lesson_objectives": [ - { - "description": "Understand and utilize flags in Assembly to solve relevant problems.", - "proficiency_level": "B", - "KSATs": [ - "K0237", - "K0238", - "K0239", - "K0774", - "K0775", - "S0125", - "S0138" - ], - "MSBs": [ - { - "description": "Set flags via arithmetic and manually in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0237", - "K0238", - "K0239", - "K0774", - "K0775", - "S0125", - "S0138" - ] - } - ] - }, - { - "description": "Understand and utilize flags in Assembly to solve relevant problems.", - "proficiency_level": "B", - "KSATs": [ - "K0237", - "K0238", - "K0239", - "K0774", - "K0775", - "S0125", - "S0138" - ], - "MSBs": [ - { - "description": "Set flags via arithmetic and manually in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0237", - "K0238", - "K0239", - "K0774", - "K0775", - "S0125", - "S0138" - ] - } - ] - }, - { - "description": "Identify, differentiate, and leverage string functions in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0798", - "K0799", - "K0800", - "K0801", - "K0802", - "S0129" - ], - "MSBs": [ - { - "description": "Understand the purpose of the scas instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0798" - ] - }, - { - "description": "Understand the purpose of the stos instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0799" - ] - }, - { - "description": "Understand the purpose of the lods instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0800" - ] - }, - { - "description": "Understand the purpose of the movs instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0801" - ] - }, - { - "description": "Understand the purpose of the cmps instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0802" - ] - } - ] - }, - { - "description": "Differentiate and implement conditional and unconditional control flow in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0794", - "K0795", - "K0796", - "K0797", - "K0811", - "K0812", - "S0117", - "S0118", - "S0128", - "S0129" - ], - "MSBs": [ - { - "description": "Understand the purpose of the cmp instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0794" - ] - }, - { - "description": "Understand the purpose of the test instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0795" - ] - }, - { - "description": "Understand the purpose of the jcc and other conditional jump instructions.", - "proficiency_level": "B", - "KSATs": [ - "K0796" - ] - }, - { - "description": "Understand the purpose of the loop instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0797" - ] - }, - { - "description": "Understand the purpose of the cmp instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0794" - ] - } - ] - }, - { - "description": "Differentiate function call syntaxes and accompanying registers across OSes and architectures", - "proficiency_level": "B", - "KSATs": [ - "K0233", - "K0253", - "K0254", - "K0255", - "K0232", - "K0236", - "K0813", - "K0815", - "S0119", - "S0121", - "S0134" - ], - "MSBs": [ - { - "description": "Differentiate register use by architecture and OS", - "proficiency_level": "B", - "KSATs": [ - "K0254", - "K0255" - ] - }, - { - "description": "Identify the function and use of name mangling by OS", - "proficiency_level": "B", - "KSATs": [ - "K0236" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Utilize common string instructions in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "S0129" - ] - }, - { - "description": "Leverage conditional branching to solve problems in Assembly.", - "proficiency_level": "D", - "KSATs": [ - "S0128", - "S0123", - "K0252", - "K0796", - "K0218" - ], - "MSBs": [ - { - "description": "Understand the purpose of the jcc and other conditional jump instructions.", - "proficiency_level": "D", - "KSATs": [ - "K0796" - ] - }, - { - "description": "Utilize common conditional instructions.", - "proficiency_level": "D", - "KSATs": [ - "S0128" - ] - }, - { - "description": "Dereference and iterate through memory in Assembly.", - "proficiency_level": "2", - "KSATs": [ - "S0123", - "K0252" - ] - } - ] - }, - { - "description": "In Assembly, access predefined external utility functions.", - "KSATs": [ - "S0121", - "S0177" - ] - }, - { - "description": "In Assembly, use name mangling to create implement functions.", - "KSATs": [ - "S0119" - ] - } - ], - "module_id": "IDF_ASM_control_flow", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/ASM_Control_Flow/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf30fb" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b3a" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b4d" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b43" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b63" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d01" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b4e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b60" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b55" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d2e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e0c" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b44" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf7" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d05" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cfa" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d0d" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d0f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d15" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d25" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32de6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/negative_bitwise.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b8d" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/negative_bitwise.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cb1" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/negative_bitwise.html" - } - ], - "course": "IDF", - "module": "assembly", - "topic": "ASM_basic_ops", - "subject": "ASM Basic Ops", - "lecture_time": 60, - "perf_demo_time": 60, - "references": [ - "https://stackoverflow.com/questions/46790666/how-is-stack-memory-allocated-when-using-push-or-sub-x86-instructions", - "https://c9x.me/x86/html/file_module_x86_id_72.html", - "https://eli.thegreenplace.net/2011/09/06/stack-frame-layout-on-x86-64/", - "https://www.amd.com/system/files/TechDocs/24594.pdf", - "https://blog.holbertonschool.com/hack-virtual-memory-stack-registers-assembly-code/", - "https://www.felixcloutier.com/x86/div", - "http://www.cs.tau.ac.il/~maon/teaching/2014-2015/seminar/seminar1415a-lec6-runtime.pdf", - "https://www.cs.uaf.edu/2012/fall/cs301/lecture/09_21_stack.html", - "https://learn.adacore.com/labs/bug-free-coding/chapters/stack.html", - "https://www.tutorialspoint.com/assembly_programming/assembly_arithmetic_instructions.htm", - "https://www.tutorialspoint.com/operating_system/os_processes.htm" - ], - "lesson_objectives": [ - { - "description": "Recognize methods in Assembly for using the stack", - "proficiency_level": "B", - "KSATs": [ - "K0817", - "S0123" - ], - "MSBs": [ - { - "description": "Understand how to use the stack", - "proficiency_level": "B", - "KSATs": [ - "K0203", - "K0230", - "K0235" - ] - }, - { - "description": "push and pop to the stack in Assembly", - "proficiency_level": "B", - "KSATs": [ - "K0203", - "K0235", - "K0220" - ] - } - ] - }, - { - "description": "Identify, differentiate, and leverage arithmetic functions in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "S0126", - "K0778", - "K0779", - "K0780", - "K0781", - "K0782", - "K0783" - ], - "MSBs": [ - { - "description": "Identify how to add and subtract in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0778", - "K0779" - ] - }, - { - "description": "Articulate the procedures and registers for multiplication and division in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0780", - "K0781" - ] - }, - { - "description": "Identify how to increment and decrement registers in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "K0782", - "K0783" - ] - } - ] - }, - { - "description": "Differentiate methods and purposes for bitwise shifts in Assembly.", - "proficiency_level": "B", - "KSATs": [ - "S0115", - "S0139", - "K0211", - "K0784", - "K0785", - "K0786", - "K0787", - "K0788", - "K0789", - "K0790", - "K0791", - "K0809" - ], - "MSBs": [ - { - "description": "Understand the purpose of the scas instruction.", - "proficiency_level": "B", - "KSATs": [ - "K0798" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Apply knowledge of the stack through commands in Assembly", - "proficiency_level": "2", - "KSATs": [ - "K0203", - "K0230", - "K0235", - "S0157" - ] - } - ], - "module_id": "IDF_ASM_basic_ops", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/ASM_Basic_Operations/", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf3105" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a35" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Input_Validation/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af5" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Input_Validation/index.html" - } - ], - "course": "IDF", - "module": "pseudocode", - "topic": "Input_Validation", - "subject": "Pseudocode Input Validation", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "Farrell, Joyce, Programming Logic \u0026 Design (2017)" - ], - "lesson_objectives": [ - { - "description": "Demonstrate the use of input validation in a pseudocode program", - "proficiency_level": "B", - "KSATs": [ - "A0004", - "S0110" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Utilize input validation to prevent errors in pseudocode", - "KSATs": [ - "S0110" - ] - } - ], - "module_id": "IDF_pseudocode", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Input_Validation", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf3106" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e29" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html?highlight=loop#the-loop-structure" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html?highlight=loop#the-loop-structure" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df2" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html?highlight=loop#the-loop-structure" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e27" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html#understanding-the-three-basic-structures" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html#understanding-the-three-basic-structures" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dfa" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html#understanding-the-three-basic-structures" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d43" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d3d" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ca2" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Overview.html" - } - ], - "course": "IDF", - "module": "pseudocode", - "topic": "Checkpoints", - "subject": "Pseudocode Structures", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "Farrell, Joyce, Programming Logic \u0026 Design (2017)" - ], - "lesson_objectives": [ - { - "description": "Demonstrate the use of loops in a pseudocode program", - "proficiency_level": "B", - "KSATs": [ - "K0107", - "S0172", - "S0081" - ], - "MSBs": [] - }, - { - "description": "Distinguish between the three basic programming structures", - "proficiency_level": "B", - "KSATs": [ - "S0171", - "S0081", - "K0107", - "K0754", - "S0082" - ], - "MSBs": [ - { - "description": "Utilize a sequential structure in a pseudocode program", - "proficiency_level": "2", - "KSATs": [ - "S0171" - ] - }, - { - "description": "Utilize a Looping Structure in a pseudocode program", - "proficiency_level": "B", - "KSATs": [ - "S0081", - "K0107" - ] - }, - { - "description": "Utilize a Conditional Structure in a pseudocode program", - "proficiency_level": "B", - "KSATs": [ - "S0082", - "K0754" - ] - } - ] - }, - { - "description": "Select the appropriate control structure for a pseudocode problem", - "proficiency_level": "B", - "KSATs": [ - "K0835" - ] - }, - { - "description": "Explain the utility of an algorithm written in pseudocode", - "proficiency_level": "B", - "KSATs": [ - "K0834" - ] - } - ], - "performance_objectives": [ - { - "description": "Utilize loops to solve a problem in pseudocode and flowchart format", - "KSATs": [ - "S0082" - ] - }, - { - "description": "Develop a solution to solve a problem using conditional structures.", - "KSATs": [ - "S0082" - ] - }, - { - "description": "Develop a solution to solve a problem conditional looping structures.", - "KSATs": [ - "S0081" - ] - }, - { - "description": "Develop a solution to solve a problem using sequential structures", - "KSATs": [ - "S0081" - ] - } - ], - "module_id": "IDF_pseudocode", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Checkpoints", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf3107" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32afd" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ccb" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cc9" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d9c" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Labs/PseudoLab4.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d9f" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Labs/PseudoLab4.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dfa" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Labs/PseudoLab4.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a4b" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Labs/PseudoLab4.html" - } - ], - "course": "IDF", - "module": "pseudocode", - "topic": "Decisions", - "subject": "Pseudocode Decisions", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "Farrell, Joyce, Programming Logic \u0026 Design (2017)" - ], - "lesson_objectives": [ - { - "description": "Demonstrate the use of logic in conditional statements", - "proficiency_level": "C", - "KSATs": [ - "K0714", - "K0715", - "S0031", - "S0032" - ], - "MSBs": [ - { - "description": "Explain the use of logical operators", - "proficiency_level": "C", - "KSATs": [ - "K0714", - "K0031" - ] - }, - { - "description": "Explain the use of relational operators", - "proficiency_level": "C", - "KSATs": [ - "K0715", - "K0032" - ] - } - ] - }, - { - "description": "Demonstrate how to construct conditional statement blocks in both pseudocode and flowchart form", - "proficiency_level": "B", - "KSATs": [ - "K0754", - "S0082" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Utilize conditional statements to solve a problem in pseudocode", - "KSATs": [ - "S0082", - "A0018" - ] - }, - { - "description": "Use logical operators to build a conditional statement", - "KSATs": [ - "K0031" - ] - }, - { - "description": "Use logical operators to build a conditional statement", - "KSATs": [ - "S0032" - ] - } - ], - "module_id": "IDF_pseudocode", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Decisions", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5ee9250a761cf87371cf3108" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a9b" - }, - "item_proficiency": "B", - "url": "https://gitlab.com/39iosdev/ccd-iqt/idf/pseudocode/-/blob/master/mdbook/src/Labs/PseudoLab5.md" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab3" - }, - "item_proficiency": "B", - "url": "https://gitlab.com/39iosdev/ccd-iqt/idf/pseudocode/-/blob/master/mdbook/src/Labs/labs.md#pseudocode-activity-6" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cdd" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Added_Modules.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ab0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aaf" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cde" - }, - "item_proficiency": "B", - "url": "https://www.freecodecamp.org/news/how-recursion-works-explained-with-flowcharts-and-a-video-de61f40cb7f9/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dd3" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc4" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db5" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Added_Modules.html#program-3-2" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32db6" - }, - "item_proficiency": "3", - "url": "https://www.techiedelight.com/reverse-a-string-using-recursion/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" - } - ], - "course": "IDF", - "module": "pseudocode", - "topic": "Pseudocode_Functions", - "subject": "Pseudocode Functions", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "Farrell, Joyce, Programming Logic \u0026 Design (2017)", - "https://www.freecodecamp.org/news/how-recursion-works-explained-with-flowcharts-and-a-video-de61f40cb7f9/", - "https://www.techiedelight.com/reverse-a-string-using-recursion/" - ], - "lesson_objectives": [ - { - "description": "Implement functions to solve a specific problem", - "proficiency_level": "B", - "KSATs": [ - "A0061", - "K0007", - "K0009", - "K0012", - "K0738", - "K0050", - "K0010", - "S0052" - ], - "MSBs": [ - { - "description": "Demonstrate the use of function parameters in a pseudocode program", - "proficiency_level": "B", - "KSATs": [ - "K0010" - ] - }, - { - "description": "Explain the use of the return command in a pseudocode program", - "proficiency_level": "B", - "KSATs": [ - "K0007", - "K0012", - "K0738", - "K0050", - "S0052" - ] - }, - { - "description": "Discuss how to create a function in a pseudocode program", - "proficiency_level": "B", - "KSATs": [ - "K0009" - ] - } - ] - }, - { - "description": "Outline the requirements for a recursive function", - "proficiency_level": "B", - "KSATs": [ - "K0737", - "S0049" - ], - "MSBs": [] - }, - { - "description": "Interpret the scope of a declared variable", - "proficiency_level": "B", - "KSATs": [ - "K0011" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Build a recursive function to solve a problem", - "KSATs": [ - "S0049" - ] - }, - { - "description": "Develop pseudocode functions that solve a problem without returning a value", - "KSATs": [ - "S0050" - ] - }, - { - "description": "Develop pseudocode functions that solve a problem by returning a single value", - "KSATs": [ - "S0052" - ] - }, - { - "description": "Build pseudocode functions that receives input parameters", - "KSATs": [ - "S0048" - ] - } - ], - "module_id": "IDF_pseudocode", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Functions", - "created_on": "2020-06-16" -}, -{ - "_id": { - "$oid": "5eecc9e6121919f64ea4ed89" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf9" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af4" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ccb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cc9" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ccd" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cec" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df4" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d98" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d96" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d9c" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d9f" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32da4" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Operators_expressions", - "subject": "Operator_expressions", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [ - { - "description": "Explain how to utilize Operators in C.", - "item_proficiency": "B", - "KSATs": [ - "K0764", - "K0714", - "K0715", - "K0716", - "K0735" - ], - "MSBs": [ - { - "description": "Explain the purpose and use of the increment and decrement operators.", - "item_proficiency": "B", - "KSATs": [ - "K0764" - ] - }, - { - "description": "Identify and understand logical operators.", - "item_proficiency": "B", - "KSATs": [ - "K0714" - ] - }, - { - "description": "Identify and understand relational operators.", - "item_proficiency": "B", - "KSATs": [ - "K0715" - ] - }, - { - "description": "Identify and understand arithmetic operators (PEMDAS)", - "item_proficiency": "B", - "KSATs": [ - "K0716" - ] - }, - { - "description": "Identify and understand assignment operators.", - "item_proficiency": "B", - "KSATs": [ - "K0735" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Utilize post and pre increment/decrement operators.", - "item_proficiency": "3", - "KSATs": [ - "S0108", - "S0033" - ] - }, - { - "description": "Utilize operators in a mathematical equation.", - "item_proficiency": "3", - "KSATs": [ - "S0029", - "S0033" - ] - }, - { - "description": "Utilize operators in a boolean equation.", - "item_proficiency": "3", - "KSATs": [ - "S0031", - "S0032", - "S0033" - ] - } - ], - "module_id": "BD_C_Operators", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Operators_expressions/", - "created_on": "2020-06-19" -}, -{ - "_id": { - "$oid": "5eecc9e6121919f64ea4ed8b" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32de0" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf8" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e03" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/string-io.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e09" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/Buffer_Overflow.html?highlight=buffer#buffer-overflow-attacks" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b31" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/Buffer_Overflow.html?highlight=buffer#buffer-overflow-attacks" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "IO_Part_1", - "subject": "IO_part_1", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [ - { - "description": "Utilize stdio.h functions in C.", - "proficiency_level": "B", - "KSATs": [] - }, - { - "description": "Utilize appropriate methods for getting input via command line arguments", - "proficiency_level": "B", - "KSATs": [ - "K0765", - "S0109" - ] - }, - { - "description": "Use proper methods to prevent issues associated with buffer overflow exploits", - "proficiency_level": "B", - "KSATs": [ - "S0147", - "S0148", - "K0191" - ] - }, - { - "description": "Explain how to implement macro guards with the preprocessor.", - "proficiency_level": "B", - "KSATs": [ - "K0095" - ], - "MSBs": [] - } - ], - "performance_objectives": [], - "module_id": "IDF_IO_part_1", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/IO_part_1/", - "created_on": "2020-06-19" -}, -{ - "_id": { - "$oid": "5eecc9e6121919f64ea4ed8c" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ae6" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32de8" - }, - "item_proficiency": "3", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aeb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aeb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b04" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d3b" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d31" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32de2" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e19" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cf5" - }, - "item_proficiency": " ", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a49" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a9d" - }, - "item_proficiency": "C", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" - } - ], - "course": "IDF", - "module": "C-Programming", - "topic": "Preprocessor", - "subject": "Preprocessor", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [], - "lesson_objectives": [ - { - "description": "Explain how the preprocessor is used.", - "proficiency_level": "B", - "KSATs": [ - "K0762", - "K0105" - ], - "MSBs": [ - { - "description": "Explain the purpose of the pre-processor.", - "proficiency_level": "B", - "KSATs": [ - "K0105" - ] - }, - { - "description": "Explain the key components of pre-processor statements.", - "proficiency_level": "B", - "KSATs": [ - "K0762" - ] - } - ] - }, - { - "description": "Explain how to use common libraries in C.", - "proficiency_level": "B", - "KSATs": [ - "K0827", - "K0822", - "K0762" - ], - "MSBs": [ - { - "description": "Explain how to use the C Standard Library.", - "proficiency_level": "B", - "KSATs": [ - "K0827" - ] - }, - { - "description": "Explain how to use the SSL library.", - "proficiency_level": "B", - "KSATs": [ - "K0822" - ] - } - ] - }, - { - "description": "Explain how to implement macro guards with the preprocessor.", - "proficiency_level": "B", - "KSATs": [ - "K0095" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Apply preprocessor directives to develop portable programs.", - "proficiency_level": "3", - "KSATs": [ - "S0104" - ] - }, - { - "description": "Apply the Standard Library.", - "proficiency_level": "3", - "KSATs": [ - "S0160" - ] - }, - { - "description": "Produce and apply a static library.", - "proficiency_level": "2", - "KSATs": [ - "S0111" - ] - } - ], - "module_id": "IDF_Preprocessor", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Preprocessor/", - "created_on": "2020-06-19" -}, -{ - "_id": { - "$oid": "5f0603958cd8a4dfbb50b1f0" - }, - "network": "COMMERCIAL", - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a9a" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/01_Introduction.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ca7" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/01_Introduction.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd1" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/01_Introduction.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ccc" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ccf" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/05_branching.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cce" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd8" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd0" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd5" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/05_branching.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d89" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/04_creating_a_repo.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d8a" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/05_branching.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d8b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d8e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d8f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/04_creating_a_repo.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c8f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c9f" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/slides/#/8" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32f0b" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/slides/#/8" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a77" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/git_configuration_files.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a76" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/git_configuration_files.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a76" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32f0b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd3" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd7" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d76" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32a2a" - }, - "item_proficiency": "2", - "url": "https://docs.gitlab.com/ee/user/project/issues/" - } - ], - "course": "IDF", - "module": "introduction-to-git", - "topic": "introduction-to-git", - "subject": "introduction-to-git", - "lecture_time": 45, - "perf_demo_time": 60, - "references": [ - "https://git-scm.com/docs", - "https://git-scm.com/docs/gittutorial", - "https://git-scm.com/book/en/v2/Appendix-C%3A-Git-Commands-Basic-Snapshotting", - "https://www.atlassian.com/git/tutorials/what-is-git", - "https://www.atlassian.com/git/tutorials", - "https://docs.gitlab.com/ee/README.html", - "https://docs.gitlab.com/ee/ci/yaml/README.html", - "https://docs.gitlab.com/ee/ci/pipelines/index.html", - "https://docs.gitlab.com/ee/ci/yaml/README.html#stages", - "https://docs.gitlab.com/ee/ci/introduction/index.html", - "http://gitforwindows.org/", - "https://medium.com/@lulu.ilmaknun.q/kompilasi-meme-git-e2fe49c6e33e", - "https://oer.gitlab.io/oer-courses/vm-oer/03-Git-Introduction.html#/slide-vcs-review", - "https://tom.preston-werner.com/2009/05/19/the-git-parable.html", - "https://learngitbranching.js.org/", - "https://try.github.io/levels/1/challenges/1", - "http://rogerdudler.github.io/git-guide/", - "https://www.tutorialspoint.com/git/index.htm" - ], - "lesson_objectives": [ - { - "description": "Identify purpose for and types of version control including git", - "proficiency_level": "B", - "KSATs": [ - "K0001", - "K0720", - "K0645" - ], - "MSBs": [] - }, - { - "description": "Articulate the basic process for using git", - "proficiency_level": "B", - "KSATs": [ - "K0001", - "K0720", - "K0721", - "K0722", - "K0723", - "K0724", - "K0726" - ], - "MSBs": [] - }, - { - "description": "Identify how gitlab integrates to the CI/CD pipeline", - "proficiency_level": "B", - "KSATs": [ - "K0720", - "K0721", - "K0722", - "K0723", - "K0724", - "K0725", - "K0726", - "K0728", - "K0729", - "K0731", - "K0732", - "K0890" - ], - "MSBs": [] - }, - { - "description": "Identify work-role / environment specific git processes", - "proficiency_level": "B", - "KSATs": [ - "K0680", - "K0720", - "K0721", - "K0722", - "K0723", - "K0724", - "K0725", - "K0726" - ], - "MSBs": [] - }, - { - "description": "Identify more advanced git and gitlab functions", - "proficiency_level": "B", - "KSATs": [ - "K0001", - "K0721", - "K0725", - "S0018", - "S0021" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Demonstrate proficiency with fundamental git commands", - "KSATs": [ - "S0022", - "S0019", - "S0020", - "T0013" - ] - }, - { - "description": "Implement more advanced git commands and functionality", - "KSATs": [ - "S0018", - "S0019", - "S0020", - "S0021", - "A0695", - "A0694" - ] - } - ], - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/", - "created_on": "2020-07-08" -}, -{ - "_id": { - "$oid": "5f4fda868761b9e492f27858" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d75" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/howtoaskquestions/Howtoaskquestions.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b64" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d74" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b5d" - }, - "item_proficiency": "B", - "url": "https://www.romanpichler.com/blog/the-product-backlog-refinement-steps" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ee9" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32eeb" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ef8" - }, - "item_proficiency": "1", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c7b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c79" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c7a" - }, - "item_proficiency": "B", - "url": "https://www.romanpichler.com/blog/the-product-backlog-refinement-steps" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c7d" - }, - "item_proficiency": "B", - "url": "https://www.scrum.org/resources/what-is-a-daily-scrum" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c7e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c82" - }, - "item_proficiency": "B", - "url": "https://www.simform.com/functional-testing-types/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32c84" - }, - "item_proficiency": "B", - "url": "https://www.mountaingoatsoftware.com/agile/user-stories" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b66" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/" - } - ], - "course": "IDF", - "module": "agile", - "topic": "agile", - "subject": "Agile Development", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "http://www.catb.org/jargon/html/R/RTFM.html", - "https://digital.ai/resources/agile-101/what-is-scrum", - "https://stackoverflow.com/help/how-to-ask", - "https://www.mountaingoatsoftware.com/agile/user-stories", - "https://medium.com/@Intersog/how-being-agile-is-different-from-doing-agile-9098e8b679f1", - "https://www.simform.com/functional-testing-types/", - "https://www.agilemanifesto.org", - "https://www.scrum.org/resources/what-is-a-daily-scrum", - "https://www.agilealliance.org/agile101/", - "https://en.wikipedia.org/wiki/Eternal_September", - "https://www.romanpichler.com/blog/the-product-backlog-refinement-steps", - "https://www.mountaingoatsoftware.com/agile" - ], - "lesson_objectives": [ - { - "description": "Recall how to ask a question the right way", - "proficiency_level": "B", - "KSATs": [ - "K0891" - ], - "MSBs": [ - { - "description": "Identify troubleshooting steps to be taken before asking a question", - "proficiency_level": "B", - "KSATs": [ - "K0891" - ] - }, - { - "description": "Determine when one is ready to ask a question", - "proficiency_level": "B", - "KSATs": [ - "K0891" - ] - }, - { - "description": "Recall the proper location to ask a question based on the problem", - "proficiency_level": "B", - "KSATs": [ - "K0891" - ] - }, - { - "description": "Design meaningful questions using the necessary elements", - "proficiency_level": "C", - "KSATs": [ - "K0891" - ] - } - ] - }, - { - "description": "Identify steps to create or refine a product backlog item", - "KSATs": [ - "K0260" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Describe Agile Development Concept", - "KSATs": [ - "K0261" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Identify the four Agile values.", - "KSATs": [ - "K0889" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Identify the Agile development roles", - "KSATs": [ - "K0620" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Describe Scrum Terms and Methodology", - "KSATs": [ - "K0620" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Explain the scrum event distinction and process order", - "KSATs": [ - "K0621" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Explain the process of product backlog grooming", - "KSATs": [ - "K0622" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Demonstrate the daily scrum standup", - "KSATs": [ - "K0623" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Summarize Scrum Advantages to Rapid Capability Development", - "KSATs": [ - "K0624" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Explain the Size and Complexity of Functional Test Items", - "KSATs": [ - "K0626" - ], - "proficiency_level": "B", - "MSBs": [] - }, - { - "description": "Explain User Story Development", - "KSATs": [ - "K0627" - ], - "proficiency_level": "B", - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Discuss appropriate question asking strategies", - "KSATs": [ - "K0891" - ] - }, - { - "description": " Interpret customer requirements and evaluate resource and system constraints to create solution design specifications.", - "KSATs": [ - "T0005" - ] - }, - { - "description": "Reference capability repositories and other sources to identify existing capabilities which fully/partially meet customer requirements (with or without modification).", - "KSATs": [ - "T0006" - ] - }, - { - "description": "Collaborate with stakeholders to identify and/or develop appropriate cyberspace solutions.", - "KSATs": [ - "T0007" - ] - }, - { - "description": "Model the roles in a scrum daily standup", - "KSATs": [ - "K0627" - ] - } - ], - "module_id": "IDF_AGILE", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/", - "created_on": "2020-09-02" -}, -{ - "_id": { - "$oid": "5f5fd63f682b1d0b80f70514" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32aa5" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32abf" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac0" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac1" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" - } - ], - "course": "IDF", - "module": "python", - "topic": "Advanced", - "subject": "Design Patterns", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://www.geeksforgeeks.org/python-design-patterns/" - ], - "lesson_objectives": [ - { - "description": "Describe the terms and fundamentals associated with object-oriented programming using Python.", - "proficiency_level": "B", - "KSATs": [ - "K0030" - ], - "MSBs": [ - { - "description": "Describe the behavior of a singleton design pattern.", - "proficiency_level": "A", - "KSATs": [ - "K0042" - ] - }, - { - "description": "Describe the behavior of an adapter design pattern.", - "proficiency_level": "A", - "KSATs": [ - "K0043" - ] - }, - { - "description": "Describe the behavior of a bridge design pattern.", - "proficiency_level": "A", - "KSATs": [ - "K0044" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "", - "KSATs": [] - } - ], - "module_id": "IDF_PYTHON", - "network": "Commercial", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Python/Advanced", - "created_on": "2020-09-14" -}, -{ - "_id": { - "$oid": "5f5fd63f682b1d0b80f70515" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d92" - }, - "item_proficiency": "", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/virtualenv.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cd9" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/virtualenv.html" - } - ], - "course": "IDF", - "module": "python", - "topic": "Advanced", - "subject": "Python Virtual Environment", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://python-docs.readthedocs.io/en/latest/dev/virtualenvs.html" - ], - "lesson_objectives": [ - { - "description": "Set up and replicate a Python Virtual Environment.", - "KSATs": [ - "S0028" - ], - "MSBs": [ - { - "description": "Understand the purpose and benefits of Python Virtual Environments.", - "proficiency_level": "B", - "KSATs": [ - "K0734" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "", - "KSATs": [] - } - ], - "module_id": "IDF_PYTHON", - "network": "Commercial", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Python/Advanced", - "created_on": "2020-09-14" -}, -{ - "_id": { - "$oid": "5f5fd63f682b1d0b80f70516" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d90" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cb1" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" - } - ], - "course": "IDF", - "module": "Debugging", - "topic": "Debugging", - "subject": "Debugging", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://code.visualstudio.com/docs/editor/debugging" - ], - "lesson_objectives": [ - { - "description": "Identify common debugging Tools", - "KSATs": [ - "K0648" - ], - "MSBs": [] - } - ], - "performance_objectives": [ - { - "description": "Debug a Python script.", - "KSATs": [ - "S0017" - ] - } - ], - "module_id": "IDF_DEBUGGING", - "network": "Commercial", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Debugging/", - "created_on": "2020-09-14" -}, -{ - "_id": { - "$oid": "5f5fdac24c9e0cc1b10ed911" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b6e" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b75" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b54" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d26" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d2b" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dea" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ded" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d30" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32e14" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b10" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b22" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d2d" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32df9" - }, - "item_proficiency": "2", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b29" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b23" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32d32" - }, - "item_proficiency": "A", - "url": "https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/getting-started-with-windbg" - } - ], - "course": "IDF", - "module": "assembly", - "topic": "ASM_SystemCalls", - "subject": "System Calls and Interrupts", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "Nebbett, G. (2000). Windows NT/2000 native API reference. Sams Publishing", - "https://asmtutor.com/#lesson22", - "https://www.cs.uaf.edu/2016/fall/cs301/lecture/11_04_syscall.html", - "https://wiki.osdev.org/Virtual_8086_Mode", - "https://riptutorial.com/x86/example/12672/real-mode", - "https://wiki.osdev.org/Real_Mode", - "https://en.wikibooks.org/wiki/X86_Assembly/Interfacing_with_Linux#Via_interrupt", - "https://asmtutor.com/#lesson1", - "https://www.tutorialspoint.com/assembly_programming/assembly_basic_syntax.htm", - "https://www.codeproject.com/Articles/45788/The-Real-Protected-Long-mode-assembly-tutorial-for", - "https://www.tutorialspoint.com/assembly_programming/assembly_system_calls.htm", - "http://faculty.nps.edu/cseagle/assembly/sys_call.html", - "https://www.tutorialspoint.com/assembly_programming/assembly_file_management.htm", - "https://en.wikibooks.org/wiki/X86_Assembly/Interfacing_with_Linux", - "https://wiki.osdev.org/System_Management_Mode", - "https://wiki.osdev.org/Protected_Mode", - "https://software.intel.com/content/www/us/en/develop/articles/intel-sdm.html", - "http://www.c-jump.com/CIS77/ASM/Memory/lecture.html", - "https://www.researchgate.net/publication/241643659_Using_CPU_System_Management_Mode_to_Circumvent_Operating_System_Security_Functions", - "https://resources.infosecinstitute.com/calling-ntdll-functions-directly/#gref", - "https://wiki.osdev.org/Security#Rings", - "https://j00ru.vexillium.org/syscalls/nt/64/", - "https://stackoverflow.com/questions/29440225/in-linux-x86-64-are-syscalls-and-int-0x80-related", - "https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/" - ], - "lesson_objectives": [ - { - "description": "Understand the purpose of system calls and interrupts", - "proficiency_level": "B", - "KSATs": [ - "K0241", - "K0242", - "K0243", - "K0814", - "K0816", - "K0818", - "S0120", - "S0122" - ], - "MSBs": [ - { - "description": "Implement system calls and interrupts", - "proficiency_level": "2", - "KSATs": [ - "S0120", - "S0122" - ] - } - ] - }, - { - "description": "Understand and access different processor modes in Assembly", - "proficiency_level": "B", - "KSATs": [ - "K0152", - "K0821", - "S0132" - ], - "MSBs": [ - { - "description": "Write Assembly code for different processor modes", - "proficiency_level": "2", - "KSATs": [ - "S0132" - ] - } - ] - }, - { - "description": "Access files in Assembly", - "proficiency_level": "B", - "KSATs": [ - "K0818", - "S0124" - ], - "MSBs": [ - { - "description": "Implement file handling in Assembly", - "proficiency_level": "2", - "KSATs": [ - "S0124" - ] - } - ] - }, - { - "description": "Explain Assembly debugging using WinDBG", - "proficiency_level": "B", - "KSATs": [ - "K0820" - ], - "MSBs": [] - } - ], - "performance_objectives": [], - "module_id": "IDF_ASM_system_calls", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/ASM_SystemCalls/", - "created_on": "2020-09-14" -}, -{ - "_id": { - "$oid": "5f6371eb9217e7d87d3d776c" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b33" - }, - "item_proficiency": "A", - "url": "https://cryptopals.com/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b36" - }, - "item_proficiency": "B", - "url": "https://cryptopals.com/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cbd" - }, - "item_proficiency": "A", - "url": "https://cryptopals.com/" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32cbe" - }, - "item_proficiency": "A", - "url": "https://cryptopals.com/" - } - ], - "course": "IDF", - "module": "cryptography", - "topic": "cryptography", - "subject": "Cryptography", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://cryptopals.com/" - ], - "lesson_objectives": [ - { - "description": "Demonstrate understanding of cryptography basics", - "proficiency_level": "B", - "KSATs": [ - "K0197", - "K0198", - "K0704", - "K0705" - ], - "MSBs": [ - { - "description": "Describe characteristics of a secure cryptographic hash", - "proficiency_level": "B", - "KSATs": [ - "K0198" - ] - }, - { - "description": "Describe characteristics of low-level cryptography", - "proficiency_level": "A", - "KSATs": [ - "K0197" - ] - }, - { - "description": "Describe common pitfalls surrounding the implementation of cryptography.", - "proficiency_level": "A", - "KSATs": [ - "K0704" - ] - }, - { - "description": "Demonstrate understanding of cryptographic primitives", - "proficiency_level": "A", - "KSATs": [ - "K0705" - ] - } - ] - } - ], - "performance_objectives": [], - "module_id": "CCD_CRYPTO", - "network": "Commercial", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/crypto", - "created_on": "2020-09-17" -}, -{ - "_id": { - "$oid": "5f77916b1dea7aa50d210460" - }, - "KSATs": [ - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad1" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Lists_Pointer_Structures.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ad0" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Lists_Pointer_Structures.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac6" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Singly_Linked_List.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ace" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Doubly_Linked_List.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32dc7" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Stacks_Lesson.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32b3a" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Stacks_Lesson.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32af2" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Stacks_Lesson.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ceb" - }, - "item_proficiency": "A", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Queue_Lesson.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32ac2" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Trees_Lesson.html" - }, - { - "ksat_id": { - "$oid": "5f457f1e1ea90ba9adb32acb" - }, - "item_proficiency": "B", - "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Trees_Lesson.html" - } - ], - "course": "IDF", - "module": "python", - "topic": "Data Structures", - "subject": "Data Structures", - "lecture_time": 0, - "perf_demo_time": 0, - "references": [ - "https://www.geeksforgeeks.org/linked-list-set-1-introduction/", - "https://realpython.com/linked-lists-python/", - "https://www.geeksforgeeks.org/stack-in-python/", - "https://realpython.com/how-to-implement-python-stack/", - "https://www.geeksforgeeks.org/queue-in-python/", - "https://www.tutorialspoint.com/python_data_structure/python_binary_tree.htm", - "https://www.openbookproject.net/thinkcs/python/english2e/ch21.html", - "https://www.geeksforgeeks.org/binary-tree-data-structure/" - ], - "lesson_objectives": [ - { - "description": "Identify and implement advanced data structures in Python", - "proficiency_level": "B", - "KSATs": [ - "K0015", - "K0057", - "K0058", - "K0060", - "S0078", - "K0120", - "K0203", - "K0751", - "K0772", - "K0752", - "K0045", - "K0055" - ], - "MSBs": [ - { - "description": "Identify types and uses of linked lists in Python ", - "proficiency_level": "B", - "KSATs": [ - "K0015", - "K0057" - ] - }, - { - "description": "Identify queue and stack structures in Python", - "proficiency_level": "B", - "KSATs": [ - "S0078", - "K0203", - "K0751" - ] - }, - { - "description": "Identify the use cases for tree structures in Python", - "proficiency_level": "B", - "KSATs": [ - "S0078", - "K0045", - "K0055" - ] - } - ] - } - ], - "performance_objectives": [ - { - "description": "Implement linked lists in Python ", - "proficiency_level": "2", - "KSATs": [ - "K0015", - "K0057" - ] - }, - { - "description": "Use stack functions in Python ", - "proficiency_level": "2", - "KSATs": [ - "S0078", - "K0203", - "K0751" - ] - }, - { - "description": "Implement binary tree traversal in Python", - "proficiency_level": "2", - "KSATs": [ - "S0078", - "K0045", - "K0055" - ] - } - ], - "module_id": "BD_PY_DS_LSTS_STACKS_TREES", - "network": "COMMERCIAL", - "work-roles": [ - "CCD" - ], - "map_for": "training", - "topic_path": "mdbook/src/Data_Structures/", - "created_on": "2020-10-02" -}] +[{ + "_id": { + "$oid": "5ee9250a761cf87371cf30a1" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c20" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/ch4-overloading-and-templates.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c1f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/ch4-overloading-and-templates.html" + } + ], + "course": "IDF", + "module": "cpp-programming", + "topic": "ch4-overloading-and-templates", + "subject": "cpp_overload", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [], + "performance_objectives": [], + "module_id": "IDF_CPP_OVRLD", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/ch4-overloading-and-templates/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30a2" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a5b" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c1e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c1b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c1c" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c26" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/object-oriented-programming-c++.html" + } + ], + "course": "IDF", + "module": "cpp-programming", + "topic": "object-oriented-programming-c++", + "subject": "cpp_oop", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [], + "performance_objectives": [], + "module_id": "IDF_CPP_OOP", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/object-oriented-programming-c++/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30a3" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a5e" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/cpp-programming/c++-standard-template-library.html" + } + ], + "course": "IDF", + "module": "cpp-programming", + "topic": "c++-standard-template-library", + "subject": "cpp_stl", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [], + "performance_objectives": [], + "module_id": "IDF_CPP_STL", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/c++-standard-template-library/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30a4" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db8" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd2" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aee" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aea" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aed" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32de4" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e02" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ddf" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Pointers_Arrays/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Pointers_Arrays", + "subject": "Memory Operators", + "lecture_time": 45, + "perf_demo_time": 60, + "references": [ + "https://www.tutorialspoint.com/cprogramming/c_pointers.htm", + "https://en.wikipedia.org/wiki/Magic_number_%28programming%29", + "https://en.wikipedia.org/wiki/Hexspeak" + ], + "lesson_objectives": [ + { + "description": "Contextualize key memory concepts in relation to C", + "proficiency_level": "B", + "KSATs": [ + "K0103", + "K0210" + ] + }, + { + "description": "Differentiate referencing and dereferencing memory in C", + "proficiency_level": "B", + "KSATs": [ + "K0103", + "K0210" + ], + "MSBs": [ + { + "description": "Interpret '*' and '\u0026' symbols in C", + "proficiency_level": "B", + "KSATs": [ + "K0103" + ] + } + ] + }, + { + "description": "Understand memory traversal in C through pointer arithmetic", + "proficiency_level": "B", + "KSATs": [ + "K0761", + "K0104" + ], + "MSBs": [ + { + "description": "Identify the relationship between pointer addresses and arrays in C ", + "proficiency_level": "B", + "KSATs": [ + "K0761", + "K0104" + ] + } + ] + }, + { + "description": "Identify and create multi-dimensional arrays in C", + "proficiency_level": "B", + "KSATs": [ + "K0104" + ], + "MSBs": [] + }, + { + "description": "Identify the purpose of function pointers in C", + "proficiency_level": "B", + "KSATs": [ + "K0760", + "S0098" + ], + "MSBs": [] + }, + { + "description": "Identify the purpose of double pointers in C", + "proficiency_level": "B", + "KSATs": [ + "K0103" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Utilize post and pre increment/decrement operators.", + "item_proficiency": "3", + "KSATs": [ + "S0108", + "S0033" + ] + }, + { + "description": "Utilize operators in a mathematical equation.", + "item_proficiency": "3", + "KSATs": [ + "S0029", + "S0033" + ] + }, + { + "description": "Utilize operators in a boolean equation.", + "item_proficiency": "3", + "KSATs": [ + "S0031", + "S0032", + "S0033" + ] + } + ], + "module_id": "IDF_Pointer_Arrays", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Pointers_Arrays/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30a6" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dfa" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Control_flow/index" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cee" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Control_flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df2" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Control_flow/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Control_flow", + "subject": "C Control Flow", + "lecture_time": 15, + "perf_demo_time": 30, + "references": [ + "http://www.math.utah.edu/computing/compilers/c/Ritchie-CReferenceManual.pdf", + "https://d1wqtxts1xzle7.cloudfront.net/53354310/Prentice_Hall_-_The_C_Programming_Language-_Brian_W._Kernighan__Dennis_M._Ritchie__2nd_ed.__ISBN_.pdf?1496315528=\u0026response-content-disposition=inline%3B+filename%3DThe_C_programming_Language.pdf\u0026Expires=1599681363\u0026Signature=CFnRn1YR99~hOdLzzxd-PEVUCQhrZB3iBskB-ngN7FADpK5BSASkhtdSRYpjv7irS2Xh7pWUA6Mvv95cjvek2hxE2BaSTIPSy2q2YpdhJaydVoY4RtC215uWVH2PDXsjdzTlpQ7QQolGIqyaTtNXxACj7uhcveNK-cczFAw3r7iHzNRsAr7lFhuCWzSQcbj1HFMSc6VlBGR0zKDSiBL5SW0Rf7BtPH~mrUeRgFeIhVU4eFfYOwlidjlanEpo29eU87WmpZrFQ1GwKGqf7Zw6f0uv5cgg6yQq-KXChLZjFmwmjTpSja8N5qHgNbEzjuQpQTxnlEWEhxiAKBX-MRd7pQ__\u0026Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA", + "https://www.tutorialspoint.com/cprogramming/switch_statement_in_c.htm", + "http://web.engr.oregonstate.edu/~rookert/cs162/ecampus-video/CS161/template/chapter_4/ifelse.html" + ], + "lesson_objectives": [ + { + "description": "Identify the purpose of 'switch' in C.", + "proficiency_level": "B", + "KSATs": [ + "K0755" + ], + "MSBs": [] + }, + { + "description": "Differentiate common loop types in C.", + "item_proficiency": "B", + "KSATs": [ + "K0102", + "K0107", + "S0081" + ], + "MSBs": [] + }, + { + "description": "Identify if-else syntax in C", + "KSATs": [ + "K0754" + ], + "proficiency_level": "B", + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Implement the 'switch' statement in C to convert arithmetic bases", + "proficiency_level": "3", + "KSATs": [ + "S0082", + "K0755" + ], + "MSBs": [ + { + "description": "Convert user input to different numeric bases.", + "proficiency_level": "2", + "KSATs": [ + "S0079", + "S0160", + "K0096", + "" + ] + } + ] + }, + { + "description": "Implement the 'switch' statement in C to execute simple written formulas", + "proficiency_level": "3", + "KSATs": [ + "A0018", + "S0034", + "S0082", + "K0755" + ], + "MSBs": [ + { + "description": "Parse strings to arithmetic functions", + "proficiency_level": "2", + "KSATs": [ + "S0029", + "S0079", + "S0113", + "S0160", + "K0096" + ] + } + ] + }, + { + "description": "Implement common loop types in C.", + "item_proficiency": "2", + "KSATs": [ + "K0102", + "K0107", + "S0081" + ], + "MSBs": [ + { + "description": "Leverage loops to iterate through arrays in C", + "proficiency_level": "2", + "KSATs": [ + "S0035", + "S0079", + "S0081", + "S0160" + ] + } + ] + }, + { + "description": "Use the C syntax for if-else to craft solutions to a problem", + "proficiency_level": "3", + "KSATs": [ + "S0082", + "K0754" + ], + "MSBs": [ + { + "description": "Check value in char array using if statement in C.", + "proficiency_level": "3", + "KSATs": [ + "K0007", + "S0082", + "K0754" + ] + }, + { + "description": "Use 'if' in relation to user input in C.", + "proficiency_level": "3", + "KSATs": [ + "S0082", + "K0754", + "S0079", + "K0111" + ] + }, + { + "description": "Use if-else to implement bitwise instructions in C.", + "proficiency_level": "3", + "KSATs": [ + "S0082", + "S0030", + "K0754", + "K0111" + ] + }, + { + "description": "Check and manipulate int values using if-else statements in C.", + "proficiency_level": "3", + "KSATs": [ + "S0034", + "S0082", + "K0754" + ] + }, + { + "description": "Use greater and less than in C.", + "proficiency_level": "3", + "KSATs": [ + "S0082", + "K0754" + ] + } + ] + } + ], + "module_id": "IDF_C_Switch", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Control_flow/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30aa" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aef" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b37" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b21" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b14" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b24" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b18" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b17" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b2c" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b19" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b1a" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b1b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b1c" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b1d" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e15" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e00" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e01" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Multi_Threading/Intro_to_Threads.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Multi_Threading", + "subject": "Intro to Threads", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [ + { + "description": "Explain how to implement a thread safely in multi-threading programs.", + "item_proficiency": "B", + "KSATs": [ + "K0173", + "K0184", + "K0185" + ], + "MSBs": [ + { + "description": "Understand how to implement a pthread in multi-threading programs.", + "proficiency_level": "3", + "KSATs": [ + "K0174" + ] + }, + { + "description": "Understand how to implement a fork in multi-threading programs.", + "proficiency_level": "3", + "KSATs": [ + "K0175" + ] + }, + { + "description": "Understand how to join and detach a thread in a multi-threading programs.", + "proficiency_level": "3", + "KSATs": [ + "K0176", + "K0179" + ] + }, + { + "description": "Understand how to exit a thread in multi-threading programs.", + "proficiency_level": "3", + "KSATs": [ + "K0178" + ] + } + ] + }, + { + "description": "Explain the safe utilization of common or shared resources within a multithreaded program.", + "item_proficiency": "B", + "KSATs": [ + "K0180", + "K0181", + "K0182", + "K0813" + ], + "MSBs": [ + { + "description": "Explain the use of mutex in multi-threading programs.", + "proficiency_level": "B", + "KSATs": [ + "K0180" + ] + }, + { + "description": "Explain the use of semaphore in multi-threading programs.", + "proficiency_level": "B", + "KSATs": [ + "K0181" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Demonstrate the creation and utilization of a multithreaded program.", + "item_proficiency": "2", + "KSATs": [ + "S0144", + "S0145", + "S0146" + ], + "MSBs": [ + { + "description": "Demonstrate the use of threads in multi-threading programs.", + "proficiency_level": "2", + "KSATs": [ + "S0144" + ] + }, + { + "description": "Explain the use of semaphore in multi-threading programs.", + "proficiency_level": "2", + "KSATs": [ + "S0145" + ] + }, + { + "description": "Explain the use of mutex in multi-threading programs.", + "proficiency_level": "2", + "KSATs": [ + "S0146" + ] + } + ] + } + ], + "module_id": "BD_C_Multithreading", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Multi_Threading/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30ae" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae7" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e0e" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b32" + }, + "item_proficiency": "3", + "url": "https://www.geeksforgeeks.org/pure-functions/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a9b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aaf" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae8" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dde" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b1f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b1e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a3c" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cde" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cdd" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db6" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Functions/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Functions", + "subject": "Functions", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [ + { + "description": "Explain how to create and use header files.", + "item_proficiency": "B", + "KSATs": [ + "K0101" + ], + "MSBs": [ + { + "description": "Explain how to properly create a header file using the correct file extension.", + "proficiency_level": "B", + "KSATs": [ + "K0101" + ] + }, + { + "description": "Explain how to properly utilize a system and local header file.", + "proficiency_level": "B", + "KSATs": [ + "K0101" + ] + } + ] + }, + { + "description": "Explain how to use the main() function.", + "item_proficiency": "B", + "KSATs": [ + "K0093" + ], + "MSBs": [] + }, + { + "description": "Explain how to properly utilize the return statement.", + "proficiency_level": "B", + "KSATs": [ + "K0007", + "K0012" + ], + "MSBs": [] + }, + { + "description": "Explain how to properly utilize parameters in a function.", + "proficiency_level": "B", + "KSATs": [ + "K0010" + ], + "MSBs": [ + { + "description": "Explain how to use a Function Prototype", + "proficiency_level": "B", + "KSATs": [ + "K0010" + ] + }, + { + "description": "Explain how to utilize a Function Definition to establish a functions body of statements", + "proficiency_level": "B", + "KSATs": [ + "K0010" + ] + } + ] + }, + { + "description": "Summarize how to create and implement functions", + "item_proficiency": "B", + "KSATs": [ + "K0009" + ], + "MSBs": [ + { + "description": "Explain why to write a function.", + "proficiency_level": "B", + "KSATs": [ + "K0009" + ] + }, + { + "description": "Explain how to write a function.", + "proficiency_level": "B", + "KSATs": [ + "K0009" + ] + } + ] + }, + { + "description": "Identify the scope of a declared variable.", + "item_proficiency": "B", + "KSATs": [ + "K0011" + ], + "MSBs": [ + { + "description": "Describe what a storage class specifier does.", + "proficiency_level": "B", + "KSATs": [ + "K0011" + ] + } + ] + }, + { + "description": "Explain the constructs of a recursive function using C.", + "item_proficiency": "B", + "KSATs": [ + "K0737" + ] + } + ], + "performance_objectives": [ + { + "description": "Demonstrate the proper creation and use of a header files in C.", + "proficiency_level": "3", + "KSATs": [ + "S0158" + ] + }, + { + "description": "Demonstrate the proper utilization of parameters in a function.", + "proficiency_level": "3", + "KSATs": [ + "S0048" + ], + "MSBs": [ + { + "description": "Explain the differences between pass by value and pass by reference for a function.", + "proficiency_level": "B", + "KSATs": [ + "K0010" + ] + } + ] + }, + { + "description": "Create and implement functions to meet a requirement.", + "proficiency_level": "3", + "KSATs": [ + "A0061" + ] + }, + { + "description": "Demonstrate the implementation of a recursive function.", + "proficiency_level": "3", + "KSATs": [ + "S0049" + ] + } + ], + "module_id": "IDF_Functions", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Functions/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30af" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dda" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/C_compiler/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b06" + }, + "item_proficiency": "B", + "url": "https://upload.wikimedia.org/wikipedia/commons/1/1b/Portable_Executable_32_bit_Structure_in_SVG_fixed.svg" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b09" + }, + "item_proficiency": "B", + "url": "https://upload.wikimedia.org/wikipedia/commons/e/e4/ELF_Executable_and_Linkable_Format_diagram_by_Ange_Albertini.png" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b0b" + }, + "item_proficiency": "B", + "url": "https://resources.infosecinstitute.com/complete-tour-of-pe-and-elf-structure/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b0a" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/C_compiler/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df3" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/C_compiler/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "C_compiler", + "subject": "C_compiler", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gcc/" + ], + "lesson_objectives": [ + { + "description": "Differentiate between a Portable Executable (PE) File and a Executable and Linkable Format (ELF)", + "proficiency_level": "B", + "KSATs": [ + "K0142", + "K0210", + "K0141" + ], + "MSBs": [ + { + "description": "Explain the purpose of a Portable Executable File", + "proficiency_level": "B", + "KSATs": [ + "K0141" + ] + }, + { + "description": "Explain the purpose of an Executable and Linkable Format (ELF) file.", + "proficiency_level": "B", + "KSATs": [ + "K0141" + ] + } + ] + }, + { + "description": "Contrast libraries and executables", + "proficiency_level": "B", + "KSATs": [ + "K0144" + ], + "MSBs": [ + { + "description": "Explain the purpose of a library in C", + "proficiency_level": "B", + "KSATs": [ + "K0144" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Build a statically linked program", + "proficiency_level": "2", + "KSATs": [ + "S0112", + "S0084" + ], + "MSBs": [ + { + "description": "Explain the purpose of static linking", + "proficiency_level": "2", + "KSATs": [ + "S0084", + "S0112" + ] + }, + { + "description": "Identify the steps required to link a program in C", + "proficiency_level": "3", + "KSATs": [ + "S0084", + "S0112" + ] + } + ] + } + ], + "module_id": "IDF_C_compiler", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/C_compiler/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30b0" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cdc" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32eea" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e0d" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/gcc.html?highlight=man,pa#man-pages" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d34" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/gcc.html?highlight=man,pa#man-pages" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b07" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c8e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/Definitions.html?highlight=Integrated,Development,Environment#definitions" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d33" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/Documentation.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e0b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Introduction/Documentation.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Introduction", + "subject": "Definitions", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [ + { + "description": "Explain how set up an environment to use the C language.", + "item_proficiency": "B", + "KSATs": [ + "K0689" + ], + "MSBs": [ + { + "description": "Explain how to setup C programming environment on Linux and Windows.", + "proficiency_level": "B", + "KSATs": [ + "K0689" + ] + }, + { + "description": "Explain the basics of the different text editors and development environments.", + "proficiency_level": "B", + "KSATs": [ + "K0689" + ] + } + ] + }, + { + "description": "Explain the usage of key components of the C programming language.", + "item_proficiency": "B", + "KSATs": [ + "K0689" + ], + "MSBs": [ + { + "description": "Describe basic programming Definitions.", + "proficiency_level": "B", + "KSATs": [ + "K0689" + ] + }, + { + "description": "Describe general and specific features to the C programming language.", + "proficiency_level": "B", + "KSATs": [ + "K0689" + ] + } + ] + }, + { + "description": "Explain the usage of man pages in linux to find information about C components.", + "item_proficiency": "B", + "KSATs": [ + "K0825" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Using key basic components of C, demonstrate how to analyze, modify, develop, debug and document basic program in the C programming language.", + "item_proficiency": "3", + "KSATs": [ + "T0009" + ] + }, + { + "description": "Demonstrate the utilization of man pages to find function details and utilize function.", + "item_proficiency": "3", + "KSATs": [ + "S0155" + ] + } + ], + "module_id": "BD_C_Definitions", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Introduction/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30b2" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af7" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b00" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af8" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32afa" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df3" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e0f" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a9c" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/structs.html?highlight=style#coding-style-guide" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32acd" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ace" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc9" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dcb" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd1" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dbc" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dbb" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db9" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dba" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dbd" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dbf" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/linked_lists.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Structs", + "subject": "Structs", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://www.tutorialspoint.com/cprogramming/c_structures.htm", + "https://www.geeksforgeeks.org/structures-c/", + "https://www.geeksforgeeks.org/enumeration-enum-c/", + "https://www.tutorialspoint.com/enum-in-c", + "https://www.tutorialspoint.com/cprogramming/c_typedef.htm", + "https://www.geeksforgeeks.org/typedef-versus-define-c/", + "https://www.geeksforgeeks.org/linked-list-set-1-introduction/", + "https://www.learn-c.org/en/Linked_lists", + "https://www.tutorialspoint.com/data_structures_algorithms/linked_list_program_in_c.htm", + "https://www.geeksforgeeks.org/doubly-linked-list/", + "https://www.tutorialspoint.com/data_structures_algorithms/doubly_linked_list_program_in_c.htm", + "https://www.geeksforgeeks.org/circular-singly-linked-list-insertion/", + "https://www.tutorialspoint.com/data_structures_algorithms/circular_linked_list_program_in_c.htm" + ], + "lesson_objectives": [ + { + "description": "Identify the syntax and purpose of structs in C", + "KSATs": [ + "K0124", + "K0126", + "K0127", + "K0004", + "S0156" + ], + "proficiency_level": "B", + "MSBs": [ + { + "description": "Identify the syntax and purpose of structs in C", + "proficiency_level": "B", + "KSATs": [ + "K0124", + "S0156" + ] + }, + { + "description": "Identify the syntax and use of linked lists in C", + "proficiency_level": "B", + "KSATs": [ + "K0056", + "K0057", + "K0058", + "K0060" + ] + }, + { + "description": "Identify the syntax and use of TypeDef in C", + "proficiency_level": "B", + "KSATs": [ + "K0127", + "K0689" + ] + } + ] + }, + { + "description": "Identify the syntax and types of linked lists in C", + "KSATs": [ + "K0060", + "K0058", + "K0057", + "K0056", + "S0070", + "S0069", + "S0068", + "S0067", + "S0066", + "S0065", + "S0057", + "S0056", + "S0055" + ], + "proficiency_level": "B", + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Implement structs in C", + "KSATs": [ + "S0156", + "S0112", + "K0124" + ], + "proficiency_level": "2", + "MSBs": [] + }, + { + "description": "Implement linked lists in C", + "KSATs": [ + "S0055", + "S0056", + "S0057", + "S0065", + "S0066", + "S0067", + "S0068", + "S0069", + "S0070", + "K0056", + "K0057", + "K0058", + "K0060" + ], + "proficiency_level": "2", + "MSBs": [] + } + ], + "module_id": "IDF_Structs", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Structs/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30b3" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae9" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d9b" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d9d" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32afc" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da0" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Arrays_strings/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Array_Strings", + "subject": "Arrays", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://www.cs.bu.edu/teaching/cpp/string/array-vs-ptr/", + "https://www.codingame.com/playgrounds/14213/how-to-play-with-strings-in-c/array-of-c-string", + "https://www.geeksforgeeks.org/whats-difference-between-char-s-and-char-s-in-c/", + "https://www.tutorialspoint.com/cprogramming/c_strings.htm" + ], + "lesson_objectives": [ + { + "description": "Understand Array (including String) syntax in C", + "proficiency_level": "B", + "KSATs": [ + "K0096", + "K0128", + "S0034", + "S0035" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Implement Arrays and Strings as Arrays in C", + "KSATs": [ + "S0036", + "K0128", + "K0096", + "S0034", + "S0035" + ], + "proficiency_level": "2", + "MSBs": [] + } + ], + "module_id": "IDF_Arrays_Strings", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Arrays_strings/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30b4" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae9" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Variables/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aec" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Variables/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e11" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Variables/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Variables", + "subject": "Data Types", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [ + { + "description": "Explain how to declare and implement data types in C.", + "item_proficiency": "B", + "KSATs": [ + "K0096" + ], + "MSBs": [] + }, + { + "description": "Explain how to utilize type casting to convert data types in C.", + "item_proficiency": "B", + "KSATs": [ + "K0106" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Demonstrate the utilization of type casting to convert a variable to a different data type.", + "item_proficiency": "3", + "KSATs": [ + "S0159" + ] + } + ], + "module_id": "IDF_Data_Types", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Variables/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30b6" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b07" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd7" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd5" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d99" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b8d" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c1a" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Debugging/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "C-Debugging", + "subject": "Debugging", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html", + "https://u.osu.edu/cstutorials/2018/09/28/how-to-debug-c-program-using-gdb-in-6-simple-steps/", + "https://www.geeksforgeeks.org/gdb-step-by-step-introduction/", + "https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugging-using-windbg", + "https://code.visualstudio.com/docs/introvideos/debugging" + ], + "lesson_objectives": [ + { + "description": "Identify strategies for debugging in C", + "proficiency_level": "B", + "KSATs": [ + "K0140", + "K0321", + "K0505", + "S0016", + "K0095" + ] + } + ], + "performance_objectives": [ + { + "description": "Debug a C program", + "proficiency_level": "2", + "KSATs": [ + "S0016", + "K0140", + "K0321", + "K0505", + "K0095", + "S0079", + "S0089" + ] + } + ], + "module_id": "IDF_Debugging", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Debugging/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30b7" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Bitwise_operators/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d96" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Bitwise_operators/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Bitwise_operators", + "subject": "Bitwise_operators", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [ + { + "description": "Identify and understand bitwise operators.", + "item_proficiency": "B", + "KSATs": [ + "K0111" + ], + "MSBs": [ + { + "description": "Explain the us of the bitwise (AND, OR, XOR, NOT) operators.", + "item_proficiency": "B", + "KSATs": [ + "K0111" + ] + }, + { + "description": "Explain the us of the bitwise Shift operator.", + "item_proficiency": "B", + "KSATs": [ + "K0111" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Demonstrate the utilization of bitwise operators to manipulate binary values.", + "item_proficiency": "2", + "KSATs": [ + "S0030" + ] + } + ], + "module_id": "IDF_C_Bitwise", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Bitwise_operators/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30b8" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc9" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dcb" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd1" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db7" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dcc" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd0" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dce" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc8" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dcf" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dcd" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dbc" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dbb" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db9" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dba" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dbd" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dbf" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dbe" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc5" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc0" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc1" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc2" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc3" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc6" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc7" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32acb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32acd" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ace" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32acf" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae5" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ced" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ceb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a3d" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a3a" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a7f" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cc0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dca" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Data_Structures/Graphs/slides/#/2" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ef0" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Structs/struct_format.html?highlight=structs#format" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Data_Structures", + "subject": "Data_Structures", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [], + "performance_objectives": [], + "module_id": "IDF_Data_Structures", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Data_Structures/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30b9" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da6" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a2d" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da9" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da8" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da7" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aad" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html?highlight=dry#recommendations" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a41" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cdf" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce5" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce6" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce7" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce9" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cea" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32daa" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_2/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "IO_part_2", + "subject": "IO_part_2", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://www.geeksforgeeks.org/basics-file-handling-c/", + "https://www.tutorialspoint.com/cprogramming/c_file_io.htm", + "https://www.cs.utah.edu/~germain/PPS/Topics/C_Language/file_IO.html" + ], + "lesson_objectives": [ + { + "description": "Identify functions and syntax for file IO in C", + "KSATs": [ + "S0042", + "S0043", + "S0044", + "S0046", + "S0045", + "A0179", + "A0412", + "K0005", + "K0746", + "K0747" + ], + "proficiency_level": "B", + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Read and write files in C", + "KSATs": [ + "S0042", + "S0043", + "S0044", + "S0046", + "S0045", + "A0412", + "K0005", + "K0746", + "K0747" + ], + "proficiency_level": "2", + "MSBs": [] + } + ], + "module_id": "IDF_IO_part_2", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/IO_part_2/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30bb" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af5" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Error_handling/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df8" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Error_handling/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df7" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Error_handling/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b2d" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Error_handling/Math_functions.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b2a" + }, + "item_proficiency": "B", + "url": "http://spc.cs.ucdavis.edu/index.php/situations/off-by-one-error" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b2e" + }, + "item_proficiency": "B", + "url": "https://www.gnu.org/software/gnulib/manual/html_node/Safe-Allocation-Macros.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Error_handling", + "subject": "Error_handling", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://www.tutorialspoint.com/c_standard_library/errorno_h.htm", + "https://www.geeksforgeeks.org/error-handling-c-programs/", + "https://www.tutorialspoint.com/c_standard_library/c_macro_assert.htm", + "https://www.geeksforgeeks.org/assertions-cc/" + ], + "lesson_objectives": [ + { + "description": " Understand motivation for and basic implementation of error handling in C", + "KSATs": [ + "K0123", + "K0189", + "K0190", + "K0192", + "S0110", + "S0113" + ], + "proficiency_level": "B", + "MSBs": [ + { + "description": "Understand the basic sources of error generation in C programs", + "proficiency_level": "B", + "KSATs": [ + "K0123", + "K0189", + "K0190", + "K0192" + ] + }, + { + "description": "Identify methods for sanitizing input ", + "proficiency_level": "2", + "KSATs": [ + "S0110", + "S0113" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Sanitize inputs and implement basic error handling ", + "KSATs": [ + "K0123", + "K0189", + "K0190", + "K0192", + "S0110", + "S0113" + ], + "proficiency_level": "2", + "MSBs": [] + } + ], + "module_id": "IDF_Error_handling", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Error_handling/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30bc" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af9" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a39" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32de1" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32de5" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e07" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d35" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd5" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Memory_Management/performance_labs/Valgrind_tool.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Memory_Management", + "subject": "Memory_mgmt", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://www.geeksforgeeks.org/dynamic-memory-allocation-in-c-using-malloc-calloc-free-and-realloc/", + "https://www.geeksforgeeks.org/difference-between-malloc-and-calloc-with-examples/", + "http://cs.ecs.baylor.edu/~donahoo/tools/valgrind/", + "https://stackoverflow.com/questions/5134891/how-do-i-use-valgrind-to-find-memory-leaks", + "https://www.geeksforgeeks.org/memory-layout-of-c-program/" + ], + "lesson_objectives": [ + { + "description": "Identify the fundamentals of memory management in C", + "KSATs": [ + "K0119", + "K0122", + "K0121", + "K0120", + "K0758", + "K0823", + "S0151", + "S0089", + "A0082" + ], + "proficiency_level": "B", + "MSBs": [ + { + "description": "Identify how to use memory on the heap in C", + "proficiency_level": "B", + "KSATs": [ + "K0121", + "K0757", + "K0758", + "S0090", + "S0091" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Implement memory management in C", + "KSATs": [ + "S0090", + "S0091", + "S0151", + "K0823", + "K0758", + "K0122", + "K0121", + "K0119", + "A0082" + ], + "proficiency_level": "2", + "MSBs": [ + { + "description": "Allocate and deallocate memory on the heap in C", + "proficiency_level": "2", + "KSATs": [ + "K0121", + "K0757", + "K0758", + "S0090", + "S0091" + ] + } + ] + } + ], + "module_id": "IDF_Memory_mgmt", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Memory_Management/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30c5" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad3" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad5" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad6" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad8" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad7" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32adc" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ada" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad9" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ade" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32add" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32adf" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/index.html" + } + ], + "course": "IDF", + "module": "network-programming", + "topic": "intro-to-sockets", + "subject": "Intro_to_Sockets", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://docs.python.org/3/library/socket.html" + ], + "lesson_objectives": [ + { + "description": "Understand the structure and use of sockets programming in Python", + "proficiency_level": "C", + "KSATs": [ + "K0063", + "K0064", + "K0066", + "K0068", + "K0081", + "A0631" + ] + } + ], + "performance_objectives": [ + { + "description": "Implement the Python functions from the Socket Library", + "KSATs": [ + "K0063", + "K0064", + "K0081", + "K0068" + ] + } + ], + "module_id": "IDF_intro_to_Sockets", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/intro-to-sockets/", + "created_on": "2020-06-16", + "updated_on": "2020-10-27" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30c6" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c98" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cb7" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cba" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cb9" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cbb" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cbf" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + } + ], + "course": "IDF", + "module": "network-programming", + "topic": "advanced-functionality", + "subject": "advanced_functionality", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [], + "performance_objectives": [], + "module_id": "IDF_advanced_functionality", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/advanced-functionality/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30c8" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dec" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ddd" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32deb" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a46" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32deb" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a46" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af5" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a5a" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b25" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b25" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/advanced-functionality/index.html" + } + ], + "subject": "serialization", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://docs.python.org/2/library/socket.html?highlight=pton#socket.error", + "https://docs.python.org/2/library/socket.html?highlight=pton#socket.socket.setblocking", + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/struct.html", + "https://docs.python.org/2/howto/unicode.html", + "https://docs.python.org/3/library/heapq.html", + "https://docs.python.org/3/library/bisect.html", + "https://docs.python.org/3/library/collections.html", + "https://docs.python.org/2/library/socket.html", + "http://man7.org/linux/man-pages/man2/setsockopt.2.html", + "https://linux.die.net/man/2/getsockopt", + "https://docs.python.org/2/library/socketserver.html", + "https://pymotw.com/2/logging/index.html#module-logging", + "https://docs.python.org/2/library/thread.html" + ], + "lesson_objectives": [ + { + "description": "Understand the intersection of advanced topics in Python Network Programming.", + "KSATs": [ + "K0091", + "K0677", + "K0696", + "K0697", + "K0698", + "K0703", + "K0063", + "K0154", + "K0173", + "S0144", + "A0564" + ], + "MSBs": [ + { + "description": "Recognize approaches to error handling and error prevention in Network Programming", + "KSATs": [ + "K0123", + "S0110" + ] + } + ] + }, + { + "description": "Understand how to account for endianness between differing systems.", + "KSATs": [ + "K0091" + ], + "MSBs": [] + }, + { + "description": "Understand implications of threading in network programming.", + "KSATs": [ + "K0154", + "K0173", + "A0564", + "S0144" + ], + "MSBs": [] + } + ], + "performance_objectives": [], + "module_id": "Socketserver", + "network": "COMMERCIAL", + "course": "IDF", + "module": "network-programming", + "topic": "Sockets", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/advanced-functionality/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30c9" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad5" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad6" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad8" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae1" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae0" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae3" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae2" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae5" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c70" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c72" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c71" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c73" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c75" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c74" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c76" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c77" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32adb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c63" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32de3" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a30" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b08" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/bsd-socket-api.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ddc" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-sockets/bsd-socket-api.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a3f" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/intro-to-networking/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a33" + }, + "item_proficiency": "2", + "url": "https://www.tutorialspoint.com/python_network_programming/python_dns_look_up.htm" + } + ], + "course": "IDF", + "module": "network-programming", + "topic": "intro-to-networking", + "subject": "intro-to-networking", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://www.geeksforgeeks.org/basics-computer-networking/", + "https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml", + "https://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-en-4/ch-ports.html", + "https://www.cisco.com/c/en/us/td/docs/security/asa/asa98/configuration/general/asa-98-general-config/ref-ports.pdf", + "https://www.geeksforgeeks.org/introduction-to-wireshark/", + "https://www.andrew.cmu.edu/course/14-740-s18/applications/labs/lab0.pdf", + "http://cs.brown.edu/courses/csci1680/f19/content/wireshark1.pdf", + "http://www.steves-internet-guide.com/tcpip-ports-sockets/" + ], + "lesson_objectives": [ + { + "description": "Understand different types of ethernet configurations.", + "KSATs": [ + "K0086" + ], + "MSBs": [] + }, + { + "description": "Describe common network devices", + "KSATs": [ + "K0089" + ], + "MSBs": [] + }, + { + "description": "Describe the Address Resolution Protocol (ARP)", + "KSATs": [ + "K0611" + ], + "MSBs": [ + { + "description": " Describe physical and logical network infrastructure", + "proficiency_level": "B", + "KSATs": [ + "K0697" + ] + }, + { + "description": "Describe the purpose of switches.", + "proficiency_level": "B", + "KSATs": [ + "K0697" + ] + }, + { + "description": "Describe the purpose of hubs.", + "proficiency_level": "B", + "KSATs": [ + "K0697" + ] + }, + { + "description": "Describe the purpose of routers.", + "proficiency_level": "B", + "KSATs": [ + "K0697" + ] + }, + { + "description": "Describe the purpose of firewalls.", + "proficiency_level": "B", + "KSATs": [ + "K0697" + ] + } + ] + }, + { + "description": "Describe the purpose of OSI Layer 2", + "KSATs": [ + "K0073" + ], + "MSBs": [] + }, + { + "description": "Understand how an IPv4 address is constructed.", + "KSATs": [ + "K0081" + ], + "MSBs": [] + }, + { + "description": "Describe the purpose of OSI Layer 3", + "KSATs": [ + "K0071" + ], + "MSBs": [] + }, + { + "description": "Understand how an IPv6 address is constructed. ", + "KSATs": [ + "K0082" + ], + "MSBs": [] + }, + { + "description": "Understand the behavior of Network address translation (NAT)", + "KSATs": [ + "K0087" + ], + "MSBs": [] + }, + { + "description": "Understand how to apply CIDR notation to an IP address.", + "KSATs": [ + "K0088" + ], + "MSBs": [] + }, + { + "description": "Understand constructs of the Transmission Control Protocol (TCP)", + "KSATs": [ + "K0064" + ], + "MSBs": [] + }, + { + "description": "Understand constructs of the User Datagram Protocol (UDP)", + "KSATs": [ + "K0065" + ], + "MSBs": [] + }, + { + "description": "Describe the purpose of OSI Layer 7", + "KSATs": [ + "K0075" + ], + "MSBs": [] + }, + { + "description": "Describe the Hypertext Transfer Protocol/Secure (HTTP/HTTPS)", + "KSATs": [ + "K0612" + ], + "MSBs": [] + }, + { + "description": "Understand the process of the Domain Name System (DNS)", + "KSATs": [ + "K0613" + ], + "MSBs": [] + }, + { + "description": "Describe the process of the Simple Mail Transfer Protocol (SMTP)", + "KSATs": [ + "K0614" + ], + "MSBs": [] + }, + { + "description": "Describe the process of the Internal Control Message Protocol (ICMP)", + "KSATs": [ + "K0615" + ], + "MSBs": [] + }, + { + "description": "Describe the process of the Dynamic Host Configuration Protocol (DHCP)", + "KSATs": [ + "K00615" + ], + "MSBs": [] + }, + { + "description": "Explain concepts of networking protocols", + "KSATs": [ + "K0696" + ], + "MSBs": [ + { + "description": "Describe the process of IP", + "KSATs": [ + "K0696" + ] + }, + { + "description": "Describe the process of HTTP/HTTPS", + "KSATs": [ + "K0696" + ] + }, + { + "description": "Describe the process of DNS", + "KSATs": [ + "K0696" + ] + }, + { + "description": "Describe the process of SMTP", + "KSATs": [ + "K0696" + ] + }, + { + "description": "Describe the process of ICMP", + "KSATs": [ + "K0696" + ] + }, + { + "description": "Describe the process of DHCP", + "KSATs": [ + "K0696" + ] + } + ] + }, + { + "description": "Describe the Open Systems Interconnect (OSI) Model", + "KSATs": [ + "K0066" + ], + "MSBs": [] + }, + { + "description": "Describe the process of ports in network programming", + "KSATs": [ + "K0610" + ], + "MSBs": [] + }, + { + "description": "Describe the process of protocols in network programming", + "KSATs": [ + "K0610" + ], + "MSBs": [] + }, + { + "description": "Describe the purpose of Reading For Comments (RFC)", + "KSATs": [ + "K0617" + ], + "MSBs": [] + }, + { + "description": "Describe the purpose of wireshark", + "KSATs": [ + "K0759" + ], + "MSBs": [ + { + "description": "Describe the process of packet capture(PCAP) based intrusion detection (IDS) analysis", + "KSATs": [ + "K0594" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Describe the properties IPv4 Addressing", + "KSATs": [ + "A0631" + ] + }, + { + "description": "Describe the properties IPv6 Addressing", + "KSATs": [ + "A0632" + ] + }, + { + "description": "Describe the process of packet captures", + "KSATs": [ + "A0604" + ] + }, + { + "description": "Apply the process of packet capture(PCAP) File analysis", + "KSATs": [ + "A0605", + "A0116" + ] + }, + { + "description": "Apply the properties of capture Filters", + "KSATs": [ + "A0606" + ] + }, + { + "description": "Describe the process of trace connections", + "KSATs": [ + "A0607" + ] + }, + { + "description": "Utilize wireshark to analyze client/server program network traffic", + "KSATs": [ + "S0095" + ] + } + ], + "module_id": "IDF_Networking_Concepts", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/intro-to-networking/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30ca" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a36" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/osi-layer-2/lab-2-1.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dfb" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/network-programming/osi-layer-2/lab-2-1.html" + } + ], + "course": "IDF", + "module": "network-programming", + "topic": "Python_Networking", + "subject": "Python Client Server", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [], + "performance_objectives": [ + { + "description": "Create client server applications in Python", + "KSATs": [ + "A0117", + "S0096" + ], + "MSBs": [ + { + "description": "Use different ports in Python network programming", + "KSATs": [ + "K0610" + ] + } + ] + } + ], + "module_id": "Python Sockets", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Python_Networking/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30cb" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cef" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32afe" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aff" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b05" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b02" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b03" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a3a" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a3d" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac5" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac7" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac8" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac9" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32acc" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aca" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b04" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b01" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cb5" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + } + ], + "course": "IDF", + "module": "algorithms", + "topic": "Intro-to-algorithms", + "subject": "Intro to Algorithms", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [], + "performance_objectives": [], + "module_id": "BD_Algorithms_BigO", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30d0" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa8" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cdb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d93" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cb8" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/additional_libraries_modules.html?highlight=serial#paramiko-pip-and-the-hitchhikers-guide" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd6" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/additional_libraries_modules.html?highlight=json#json" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a5c" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a5a" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b25" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b27" + }, + "item_proficiency": "B", + "url": "https://medium.com/@gauravkumarindia/synchronization-and-race-conditions-with-multi-threading-in-python-2d35930bb61e" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b28" + }, + "item_proficiency": "B", + "url": "https://codewithoutrules.com/2017/08/16/concurrency-python/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d36" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e12" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a28" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c81" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa5" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32abf" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac0" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac1" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d92" + }, + "item_proficiency": "", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/virtualenv.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd9" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/virtualenv.html" + } + ], + "course": "IDF", + "module": "python", + "topic": "Advanced", + "subject": "Advanced Python", + "lecture_time": 45, + "perf_demo_time": 90, + "references": [ + "https://docs.python.org/3/howto/regex.html", + "https://realpython.com/intro-to-python-threading/", + "https://pythonpedia.com/en/tutorial/9050/ctypes", + "https://python-docs.readthedocs.io/en/latest/dev/virtualenvs.html", + "https://www.w3schools.com/python/python_regex.asp", + "https://realpython.com/python-metaclasses/", + "https://docs.python.org/3/library/index.html", + "https://www.geeksforgeeks.org/python-design-patterns/", + "https://realpython.com/python-testing/", + "https://docs.python.org/3/library/ctypes.html", + "https://docs.python.org/3/library/unittest.html", + "https://docs.python.org/3/library/threading.html" + ], + "lesson_objectives": [ + { + "description": "Employ C-Types.", + "proficiency_level": "B", + "KSATs": [], + "MSBs": [ + { + "description": "Describe the purpose of C-Types.", + "proficiency_level": "B", + "KSATs": [ + "K0029" + ] + }, + { + "description": "Differentiate between ctypes.CDLL and ctypes.PyDLL.", + "proficiency_level": "B", + "KSATs": [ + "K0029" + ] + }, + { + "description": "Describe the load library function.", + "proficiency_level": "B", + "KSATs": [ + "K0029" + ] + }, + { + "description": "Describe the of purpose of structures.", + "proficiency_level": "B", + "KSATs": [ + "K0029" + ] + } + ] + }, + { + "description": "Employ advanced Python libraries.", + "proficiency_level": "C", + "KSATs": [ + "K0024" + ], + "MSBs": [ + { + "description": "Describe the purpose of sys library.", + "proficiency_level": "B", + "KSATs": [ + "K0024" + ] + }, + { + "description": "Describe the purpose of os library.", + "proficiency_level": "B", + "KSATs": [ + "K0024" + ] + }, + { + "description": "Describe the purpose of subprocess library.", + "proficiency_level": "B", + "KSATs": [ + "K0024" + ] + }, + { + "description": "Given a scenario, select the best library to interact with the system.", + "proficiency_level": "C", + "KSATs": [ + "K0024" + ] + } + ] + }, + { + "description": "Discuss the purpose of the hashlib library.", + "KSATs": [], + "MSBs": [] + }, + { + "description": "Describe the purpose of the JSON library.", + "proficiency_level": "B", + "KSATs": [ + "K0699" + ], + "MSBs": [] + }, + { + "description": "Describe the purpose of PIP (Python Package Installer).", + "proficiency_level": "B", + "KSATs": [ + "K0733" + ], + "MSBs": [] + }, + { + "description": "Understand metaclasses.", + "proficiency_level": "B", + "KSATs": [], + "MSBs": [ + { + "description": "Describe the purpose of metaclasses.", + "proficiency_level": "B", + "KSATs": [] + }, + { + "description": "Describe the benefits of metaclasses.", + "proficiency_level": "B", + "KSATs": [] + }, + { + "description": "Describe the purpose of the super() method.", + "proficiency_level": "B", + "KSATs": [] + }, + { + "description": "Describe the purpose of the new() method.", + "proficiency_level": "B", + "KSATs": [] + } + ] + }, + { + "description": "Describe multi-threading.", + "proficiency_level": "B", + "KSATs": [], + "MSBs": [ + { + "description": "Describe the purpose of multi-threading.", + "proficiency_level": "B", + "KSATs": [] + }, + { + "description": "Describe the benefits of multi-threading.", + "proficiency_level": "B", + "KSATs": [] + }, + { + "description": "Identify the Python library methods used for threading.", + "proficiency_level": "A", + "KSATs": [] + }, + { + "description": "Identify how to lock a thread in Python", + "proficiency_level": "B", + "KSATs": [] + } + ] + }, + { + "description": "Employ the Regular Expression (re) library.", + "proficiency_level": "C", + "KSATs": [ + "K0828" + ], + "MSBs": [ + { + "description": "Describe regular expressions", + "proficiency_level": "B", + "KSATs": [ + "K0828" + ] + }, + { + "description": "Differentiate between Python re module methods.", + "proficiency_level": "B", + "KSATs": [ + "K0828" + ] + }, + { + "description": "Given a pattern, write the appropriate regular expression to match it.", + "proficiency_level": "C", + "KSATs": [ + "K0828" + ] + }, + { + "description": "Given a regular expression, predict the strings that will match.", + "proficiency_level": "C", + "KSATs": [ + "K0828" + ] + } + ] + }, + { + "description": "Discuss the purpose of unit testing.", + "KSATs": [ + "K0625" + ], + "MSBs": [] + }, + { + "description": "Discuss the unittest library.", + "KSATs": [ + "K0625" + ], + "MSBs": [] + }, + { + "description": "Discuss the doctest library.", + "KSATs": [ + "K0625" + ], + "MSBs": [] + }, + { + "description": "Describe the terms and fundamentals associated with object-oriented programming using Python.", + "proficiency_level": "B", + "KSATs": [ + "K0030" + ], + "MSBs": [ + { + "description": "Describe the behavior of a singleton design pattern.", + "proficiency_level": "A", + "KSATs": [ + "K0042" + ] + }, + { + "description": "Describe the behavior of an adapter design pattern.", + "proficiency_level": "A", + "KSATs": [ + "K0043" + ] + }, + { + "description": "Describe the behavior of a bridge design pattern.", + "proficiency_level": "A", + "KSATs": [ + "K0044" + ] + } + ] + }, + { + "description": "Set up and replicate a Python Virtual Environment.", + "KSATs": [ + "S0028" + ], + "MSBs": [ + { + "description": "Understand the purpose and benefits of Python Virtual Environments.", + "proficiency_level": "B", + "KSATs": [ + "K0734" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Create a structure to pass to an imported CDLL.", + "KSATs": [] + }, + { + "description": "Import a C library (.DLL/.SO) to utilize a C compiled function.", + "KSATs": [] + }, + { + "description": "Create a Python script that interacts with system processes.", + "KSATs": [ + "S0026" + ] + }, + { + "description": "Create a Python script that interacts with operating system functionality.", + "KSATs": [ + "S0026" + ] + }, + { + "description": "Create a Python script that interacts with system-level information.", + "KSATs": [ + "S0026" + ] + }, + { + "description": "Given a set of requirements, implement a metaclass.", + "KSATs": [ + "A0563" + ] + }, + { + "description": "Utilize the Thread library to implement a simple multithreaded program.", + "KSATs": [ + "A0564" + ] + }, + { + "description": "Use the Python 're' library to match a specified pattern.", + "KSATs": [ + "S0161" + ] + }, + { + "description": "Design a unit test", + "KSATs": [ + "A0077" + ] + }, + { + "description": "Implement a unit test.", + "KSATs": [ + "A0077" + ] + }, + { + "description": "Utilize unit test results to guide program debugging.", + "KSATs": [ + "A0077" + ] + } + ], + "module_id": "BD_PY_ADVNCD_CTYPE", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/advanced/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30d6" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c3b" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cb3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a9e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a9f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32caa" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/python_features/index.html" + } + ], + "course": "IDF", + "module": "python", + "topic": "python_features", + "subject": "running_python", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://docs.python.org/3/", + "https://docs.python.org/2.7/library/index.html", + "https://wiki.python.org/moin/Python2orPython3?action=recall\u0026rev=96", + "https://docs.python.org/3.7/library/index.html", + "https://docs.python.org/2.7/", + "https://realpython.com/run-python-scripts/", + "https://www.pythonforbeginners.com/basics/python-docstrings/", + "https://www.guru99.com/python-2-vs-python-3.html", + "https://www.python.org/dev/peps/pep-0008/" + ], + "lesson_objectives": [ + { + "description": "Describe how to use Python from the command line", + "KSATs": [ + "K0514" + ], + "MSBs": [], + "proficiency_level": "A" + }, + { + "description": "Explain the purpose and usage of elements and components of the Python programming language", + "KSATs": [ + "K0690" + ], + "MSBs": [], + "proficiency_level": "B" + }, + { + "description": "Identify code written for Python 2 or Python 3", + "proficiency_level": "B", + "KSATs": [ + "K0023" + ], + "MSBs": [] + }, + { + "description": "Describe execution of Python from the command line", + "proficiency_level": "B", + "KSATs": [ + "K0514" + ], + "MSBs": [] + }, + { + "description": "Use Python Documentation (PyDocs)", + "proficiency_level": "B", + "KSATs": [ + "K0022" + ], + "MSBs": [] + }, + { + "description": "Apply Python standards", + "proficiency_level": "B", + "KSATs": [ + "K0021" + ], + "MSBs": [ + { + "description": "Interpret Python Enhancement Protocol 8 (PEP8) standards", + "proficiency_level": "B", + "KSATs": [ + "K0021" + ] + }, + { + "description": "Employ documentation of Python code", + "proficiency_level": "B", + "KSATs": [ + "K0021" + ] + }, + { + "description": "Describe the Python Library", + "proficiency_level": "B", + "KSATs": [ + "K0024" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Launch Python from the command line", + "KSATs": [] + } + ], + "module_id": "BD_PY_FEATRS_RUN", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/python_features/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30d9" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab7" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d95" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cc6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d97" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aba" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab5" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab9" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32abd" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cc3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ccd" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d98" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d96" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Types/index.html" + } + ], + "course": "IDF", + "module": "python", + "topic": "Data_Types", + "subject": "tuples", + "lecture_time": 30, + "perf_demo_time": 0, + "references": [ + "https://www.w3schools.com/python/python_dictionaries.asp", + "https://www.w3schools.com/python/python_tuples.asp", + "https://docs.python.org/3/tutorial/datastructures.html", + "https://www.tutorialspoint.com/python/python_variable_types.htm", + "https://www.tutorialspoint.com/python3/python_strings.htm", + "https://realpython.com/python-dicts/", + "https://docs.python.org/3/library/string.html", + "https://www.w3schools.com/python/python_lists.asp", + "https://docs.python.org/3/library/stdtypes.html", + "https://docs.python.org/3/library/numbers.html" + ], + "lesson_objectives": [ + { + "description": "Describe tuples", + "proficiency_level": "B", + "KSATs": [ + "K0016" + ], + "MSBs": [ + { + "description": "Describe the purpose of tuples", + "proficiency_level": "B", + "KSATs": [ + "K0016" + ] + }, + { + "description": "Describe the properties of tuples", + "proficiency_level": "B", + "KSATs": [ + "K0016" + ] + } + ] + }, + { + "description": "Discuss the use of the range() function in Python3", + "KSATs": [], + "MSBs": [] + }, + { + "description": "Describe a string", + "proficiency_level": "B", + "KSATs": [ + "K0711" + ], + "MSBs": [ + { + "description": "Distinguish between the default string encoding in Python2 vs Python3", + "proficiency_level": "B", + "KSATs": [ + "K0711" + ] + }, + { + "description": "Describe the options for string variable assignment", + "proficiency_level": "B", + "KSATs": [ + "K0711" + ] + }, + { + "description": "Identify string prefixes", + "proficiency_level": "B", + "KSATs": [ + "K0711" + ] + } + ] + }, + { + "description": "Describe basic string methods", + "proficiency_level": "B", + "KSATs": [ + "K0711" + ], + "MSBs": [] + }, + { + "description": "Comprehend dictionaries in Python", + "proficiency_level": "C", + "KSATs": [ + "K0014" + ], + "MSBs": [ + { + "description": "Describe the syntax to create a dictionary", + "proficiency_level": "B", + "KSATs": [ + "K0014" + ] + }, + { + "description": "Describe the syntax to access items in a dictionary", + "proficiency_level": "B", + "KSATs": [ + "K0014" + ] + }, + { + "description": "Describe the syntax to add, update and delete items in a dictionary", + "proficiency_level": "B", + "KSATs": [ + "K0014" + ] + }, + { + "description": "Describe the syntax to create and access multi-dimensional dictionaries", + "proficiency_level": "B", + "KSATs": [ + "K0014" + ] + } + ] + }, + { + "description": "Comprehend sets Python", + "proficiency_level": "A", + "KSATs": [ + "K0017" + ], + "MSBs": [ + { + "description": "Describe the syntax to create a set", + "proficiency_level": "B", + "KSATs": [ + "K0017" + ] + }, + { + "description": "Describe the syntax to access items in a set", + "proficiency_level": "B", + "KSATs": [ + "K0017" + ] + }, + { + "description": "Describe the syntax to add and delete items in a set", + "proficiency_level": "B", + "KSATs": [ + "K0017" + ] + } + ] + }, + { + "description": "Comprehend frozensets in Python", + "proficiency_level": "A", + "KSATs": [ + "K0017" + ], + "MSBs": [] + }, + { + "description": "Differentiate operations that can be done to a set but not a frozenset in Python", + "proficiency_level": "A", + "KSATs": [ + "K0017" + ], + "MSBs": [] + }, + { + "description": "Employ variables in Python", + "proficiency_level": "C", + "KSATs": [], + "MSBs": [ + { + "description": "Describe the purpose of variables", + "proficiency_level": "B", + "KSATs": [] + }, + { + "description": "Describe the syntax to determine data type of a variable", + "proficiency_level": "B", + "KSATs": [] + }, + { + "description": "Describe the syntax to assign a variable", + "proficiency_level": "B", + "KSATs": [] + } + ] + }, + { + "description": "Apply the concept of mutability", + "proficiency_level": "B", + "KSATs": [ + "K0018", + "K0019" + ], + "MSBs": [ + { + "description": "Describe mutability", + "proficiency_level": "B", + "KSATs": [ + "K0018", + "K0019" + ] + }, + { + "description": "Identify the mutability of specific data types in Python", + "proficiency_level": "B", + "KSATs": [ + "K0015", + "K0016" + ] + } + ] + }, + { + "description": "Distinguish between different number prefixes", + "proficiency_level": "B", + "KSATs": [ + "K0008" + ], + "MSBs": [] + }, + { + "description": "Distinguish between different number types", + "proficiency_level": "B", + "KSATs": [ + "K0008" + ], + "MSBs": [] + }, + { + "description": "Describe the Boolean data type", + "proficiency_level": "B", + "KSATs": [ + "K0008" + ], + "MSBs": [] + }, + { + "description": "Employ arithmetic operators", + "proficiency_level": "C", + "KSATs": [ + "K0716" + ], + "MSBs": [ + { + "description": "Differentiate arithmetic operators", + "proficiency_level": "C", + "KSATs": [ + "K0716" + ] + }, + { + "description": "Given a scenario predict the resulting type of a math operation with different operand types", + "proficiency_level": "C", + "KSATs": [ + "K0716" + ] + }, + { + "description": "Differentiate bitwise operators", + "proficiency_level": "B", + "KSATs": [ + "K0111" + ] + }, + { + "description": "Describe the order of operations", + "proficiency_level": "B", + "KSATs": [ + "K0716" + ] + } + ] + }, + { + "description": "Employ type conversion", + "proficiency_level": "C", + "KSATs": [ + "K0712" + ], + "MSBs": [] + }, + { + "description": "Comprehend lists in Python", + "proficiency_level": "B", + "KSATs": [ + "K0015" + ], + "MSBs": [ + { + "description": "Describe the syntax to slice a list", + "proficiency_level": "B", + "KSATs": [ + "K0015" + ] + }, + { + "description": "Describe the syntax to retrieve/modify/delete an element of a list", + "proficiency_level": "B", + "KSATs": [ + "K0015" + ] + }, + { + "description": "Describe the syntax to combine a list", + "proficiency_level": "B", + "KSATs": [ + "K0015" + ] + }, + { + "description": "Comprehend multidimensional lists", + "proficiency_level": "B", + "KSATs": [ + "K0015" + ] + } + ] + }, + { + "description": "Comprehend map, filter and reduce in Python", + "proficiency_level": "B", + "KSATs": [], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Store specified data in a tuple.", + "KSATs": [ + "S0024" + ] + }, + { + "description": "Create a program using strings and string methods", + "KSATs": [ + "S0023" + ] + }, + { + "description": "Utilize string methods to manipulate strings", + "KSATs": [ + "S0023" + ] + }, + { + "description": "Store user input as a string", + "KSATs": [ + "S0023" + ] + }, + { + "description": "Use the Python interpreter to identify the data type", + "KSATs": [ + "S0023" + ] + }, + { + "description": "Use arithmetic operators to modify Python program functionality", + "KSATs": [ + "S0029" + ] + }, + { + "description": "Use bitwise operators to modify Python program functionality", + "KSATs": [ + "S0030" + ] + }, + { + "description": "Use type conversion to modify Python program functionality", + "KSATs": [ + "S0023" + ] + }, + { + "description": "Use Python to create, access and manipulate a list", + "KSATs": [ + "S0024" + ] + }, + { + "description": "Use Python to create, access and manipulate a Multi-dimensional list", + "KSATs": [ + "S0024" + ] + } + ], + "module_id": "BD_PY_DTYPES_TUP", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Data_Types/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30df" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac7" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b01" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b02" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b03" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b05" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32afe" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aff" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a3d" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Algorithms" + } + ], + "course": "IDF", + "module": "python", + "topic": "Algorithms", + "subject": "Algorithms", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://github.com/TheAlgorithms/Python/tree/master/searches", + "https://www.tutorialspoint.com/python_data_structure/python_big_o_notation.htm", + "https://github.com/TheAlgorithms/Python/tree/master/data_structures", + "https://stackabuse.com/sorting-algorithms-in-python/", + "https://github.com/TheAlgorithms/Python/tree/master/sorts", + "https://www.tutorialspoint.com/python_data_structure/python_sorting_algorithms.htm", + "https://realpython.com/sorting-algorithms-python/" + ], + "lesson_objectives": [ + { + "description": "Understand and implement common algorithm types using Python", + "proficiency_level": "B", + "KSATs": [ + "K0045", + "K0046", + "K0047", + "K0049", + "K0133", + "K0134", + "K0135", + "K0136", + "K0137" + ], + "MSBs": [] + }, + { + "description": "Identify how big O notation describes algorithm efficiency", + "proficiency_level": "1", + "KSATs": [ + "A0093", + "K0132" + ], + "MSBs": [] + }, + { + "description": "Identify the uses and efficiency of common sorting algorithms", + "proficiency_level": "B", + "KSATs": [ + "K0133", + "K0134", + "K0136", + "K0137", + "A0093" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Implement search and sort algorithms in Python", + "KSATs": [ + "A0087", + "A0093" + ] + }, + { + "description": "Recognize the implications of big O notation", + "KSATs": [ + "A0093", + "K0132" + ] + }, + { + "description": "Implement common sorting algorithms in Python", + "KSATs": [ + "K0133", + "K0134", + "K0136", + "K0137", + "A0093" + ] + } + ], + "module_id": "BD_PY_ALGO", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Algorithms/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30e7" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dfa" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cc4" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d9e" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da1" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da3" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da2" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da5" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab4" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab2" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab8" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32abc" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32abe" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a3b" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce8" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ce4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df2" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d9f" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da4" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cc9" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cec" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Flow_Control/index.html" + } + ], + "course": "IDF", + "module": "python", + "topic": "flow_control", + "subject": "break_continue", + "lecture_time": 15, + "perf_demo_time": 60, + "references": [ + "https://www.tutorialspoint.com/python/python_basic_operators.htm", + "https://www.w3schools.com/python/python_for_loops.asp", + "https://docs.python.org/3/library/operator.html", + "https://wiki.python.org/moin/WhileLoop", + "https://www.tutorialspoint.com/python3/python_files_io.htm", + "https://www.w3schools.com/python/python_while_loops.asp", + "https://wiki.python.org/moin/ForLoop", + "https://realpython.com/python-conditional-statements/", + "https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops", + "https://docs.python.org/3/library/io.html" + ], + "lesson_objectives": [ + { + "description": "Comprehend if, elif, else statements in Python", + "proficiency_level": "B", + "KSATs": [ + "K0713" + ], + "MSBs": [ + { + "description": "Describe if, elif, else syntax", + "proficiency_level": "B", + "KSATs": [ + "K0713" + ] + }, + { + "description": "Given Python Code, predict the behavior of code involving if, elif, else syntax.", + "proficiency_level": "B", + "KSATs": [ + "K0713" + ] + } + ] + }, + { + "description": "Comprehend While loops in Python", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ], + "MSBs": [ + { + "description": "Describe While loop syntax", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ] + }, + { + "description": "Describe using the while loop to repeat code execution.", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ] + }, + { + "description": "Given Python Code, predict the outcome of a while loop.", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ] + } + ] + }, + { + "description": "Comprehend For loops in Python", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ], + "MSBs": [ + { + "description": "Describe For loop syntax", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ] + }, + { + "description": "Describe using the For loop to iterate through different data type elements.", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ] + }, + { + "description": "Given Python Code, predict the outcome of a For loop.", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ] + } + ] + }, + { + "description": "Comprehend Python operators", + "proficiency_level": "B", + "KSATs": [ + "K0715", + "K0735" + ], + "MSBs": [ + { + "description": "Describe the purpose of membership operators", + "proficiency_level": "B", + "KSATs": [ + "K0715" + ] + }, + { + "description": "Describe the purpose of identity operators", + "proficiency_level": "B", + "KSATs": [ + "K0715" + ] + }, + { + "description": "Describe the purpose of boolean operators", + "proficiency_level": "B", + "KSATs": [ + "K0715" + ] + }, + { + "description": "Describe the purpose of assignment operators", + "proficiency_level": "B", + "KSATs": [ + "K0735" + ] + } + ] + }, + { + "description": "Given a scenario, select the appropriate relational operator for the solution.", + "proficiency_level": "C", + "KSATs": [ + "K0715", + "K0735" + ], + "MSBs": [] + }, + { + "description": "Given a code snippet containing operators, predict the outcome of the code.", + "proficiency_level": "C", + "KSATs": [ + "K0715", + "K0735" + ], + "MSBs": [] + }, + { + "description": "Comprehend the purpose of the Break statement", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ], + "MSBs": [] + }, + { + "description": "Comprehend the purpose of the Continue statement", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ], + "MSBs": [] + }, + { + "description": "Given a code snippet, predict the behavior of a loop that contains a break/continue statement.", + "proficiency_level": "B", + "KSATs": [ + "K0107" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Control the execution of a program with conditional if, elif, else statements.", + "KSATs": [ + "S0082" + ] + }, + { + "description": "Use a while loop to repeat code execution a specified number of times", + "KSATs": [ + "S0081" + ] + }, + { + "description": "Iterate through Python object elements with a For loop", + "KSATs": [ + "S0081" + ] + }, + { + "description": "Utilize assignment operators as part of a Python code solution.", + "KSATs": [ + "S0033" + ] + }, + { + "description": "Utilize boolean operators as part of a Python code solution.", + "KSATs": [ + "S0032" + ] + }, + { + "description": "Utilize membership operators as part of a Python code solution.", + "KSATs": [ + "S0032" + ] + }, + { + "description": "Utilize identity operators as part of a Python code solution.", + "KSATs": [ + "S0032" + ] + }, + { + "description": "Utilize break or continue statements to control code behavior in loops.", + "KSATs": [ + "S0081" + ] + } + ], + "module_id": "BD_PY_FLCON_BREAK", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Flow_Control/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30ea" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32abb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a57" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d93" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a9d" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cdb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d91" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa7" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa9" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aae" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab4" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab2" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32abc" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a7c" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ca3" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ee1" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aab" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aac" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab8" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd7" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd4" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cc2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b34" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa5" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aaa" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/oop/index.html" + } + ], + "course": "IDF", + "module": "python", + "topic": "oop", + "subject": "user_classes", + "lecture_time": 60, + "perf_demo_time": 120, + "references": [ + "https://realpython.com/python3-object-oriented-programming/", + "https://docs.python.org/3/library/exceptions.html", + "https://docs.python.org/3/tutorial/modules.html", + "https://wiki.python.org/moin/HandlingExceptions", + "https://www.w3schools.com/python/python_classes.asp", + "https://pip.pypa.io/en/stable/quickstart/", + "https://docs.python.org/3/tutorial/classes.html", + "https://docs.python.org/3/tutorial/modules.html#packages" + ], + "lesson_objectives": [ + { + "description": "Understand how to import modules and module components in Python.", + "proficiency_level": "C", + "KSATs": [ + "K0013" + ], + "MSBs": [ + { + "description": "Employ the Python standard library to solve a problem.", + "KSATs": [ + "K0024" + ], + "proficiency_level": "C" + } + ] + }, + { + "description": "Describe how to utilize PIP to install a Python package.", + "proficiency_level": "B", + "KSATs": [ + "K0733" + ], + "MSBs": [] + }, + { + "description": "Comprehend Python objects", + "KSATs": [ + "K0033" + ], + "MSBs": [ + { + "description": "Comprehend Python classes", + "KSATs": [ + "K0032" + ] + }, + { + "description": "Differentiate between Python objects and classes", + "KSATs": [ + "K0034" + ] + } + ] + }, + { + "description": "Explain the Python keyword super", + "KSATs": [ + "K0037" + ], + "MSBs": [] + }, + { + "description": "Explain Python object initialization", + "KSATs": [ + "K0038" + ], + "MSBs": [] + }, + { + "description": "Explain Python object attributes", + "KSATs": [ + "K0040" + ], + "MSBs": [] + }, + { + "description": "Describe polymorphism in Python", + "KSATs": [ + "K0031" + ], + "MSBs": [] + }, + { + "description": "Describe inheritance in Python", + "KSATs": [ + "K0036" + ], + "MSBs": [] + }, + { + "description": "Describe getter and setter functions in Python", + "KSATs": [ + "K0039" + ], + "MSBs": [] + }, + { + "description": "Understand how to implement input validation in Python.", + "KSATs": [ + "K0195" + ], + "MSBs": [] + }, + { + "description": "Understand how to implement exception handling in Python.", + "KSATs": [ + "K0710" + ], + "MSBs": [] + }, + { + "description": "Describe the terms and fundamentals associated with object-orientated programming using Python.", + "proficiency_level": "C", + "KSATs": [ + "K0030" + ], + "MSBs": [ + { + "description": "Describe the advantages of object-orientated programming in Python.", + "proficiency_level": "A", + "KSATs": [ + "K0035" + ] + } + ] + }, + { + "description": "Discuss Common Principles of object-oriented programming.", + "KSATs": [], + "MSBs": [] + }, + { + "description": "Discuss Code Styling Considerations of object-orientated programming.", + "KSATs": [], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Create, reuse and import modules in Python.", + "KSATs": [ + "A0561" + ] + }, + { + "description": "Utilize modules in the Python standard library.", + "KSATs": [ + "S0026" + ] + }, + { + "description": "Install and utilize a Python package via PIP.", + "KSATs": [ + "S0027" + ] + }, + { + "description": "Write a class in Python", + "KSATs": [ + "A0726" + ] + }, + { + "description": "Instantiate a Python object", + "KSATs": [ + "A0727" + ] + }, + { + "description": "Write a class constructor", + "KSATs": [ + "A0729" + ] + }, + { + "description": "Write object-oriented programs", + "KSATs": [ + "A0725" + ] + }, + { + "description": "Implement object inheritance.", + "KSATs": [ + "A0728" + ] + }, + { + "description": "Expand class functionality using getter and setter functions.", + "KSATs": [ + "A0725" + ] + }, + { + "description": "Use class methods to modify instantiated class objects.", + "KSATs": [ + "A0725" + ] + }, + { + "description": "Write a program to demonstrate input validation in Python.", + "KSATs": [ + "S0079" + ] + }, + { + "description": "Write a program to demonstrate exception handling in Python.", + "KSATs": [ + "S0080" + ] + } + ], + "module_id": "BD_PY_OOP_USRCLS", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/oop/", + "created_on": "2020-06-16", + "updated_on": "2020-08-18" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30f1" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aaf" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db6" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a9b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dad" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db4" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd3" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a3c" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cda" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db5" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc4" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/functions/index.html" + } + ], + "course": "IDF", + "module": "python", + "topic": "functions", + "subject": "user_functions", + "lecture_time": 100, + "perf_demo_time": 120, + "references": [ + "https://pythonspot.com/recursion/", + "https://realpython.com/python-thinking-recursively/", + "https://www.digitalocean.com/community/tutorials/how-to-define-functions-in-python-3", + "https://www.programiz.com/python-programming/generator", + "https://www.w3schools.com/PYTHON/python_scope.asp", + "https://realpython.com/python-lambda/", + "https://www.w3schools.com/python/python_lambda.asp", + "https://www.w3schools.com/python/python_iterators.asp", + "https://www.programiz.com/python-programming/closure", + "https://pythonbasics.org/scope/" + ], + "lesson_objectives": [ + { + "description": "Understand the scope of a declared variable in Python.", + "proficiency_level": "B", + "KSATs": [ + "K0011" + ], + "MSBs": [] + }, + { + "description": "Describe the purpose and use of iterators in Python", + "proficiency_level": "B", + "KSATs": [ + "K0026" + ], + "MSBs": [] + }, + { + "description": "Describe the purpose and use of generators in Python", + "proficiency_level": "B", + "KSATs": [ + "K0027" + ], + "MSBs": [] + }, + { + "description": "Understand how functions are created and implemented in Python.", + "proficiency_level": "B", + "KSATs": [ + "K0009" + ], + "MSBs": [ + { + "description": "Understand the purpose of the return statement in Python.", + "proficiency_level": "B", + "KSATs": [ + "K0007" + ] + }, + { + "description": "Understand the purpose of parameters for a function in Python.", + "proficiency_level": "B", + "KSATs": [ + "K0010" + ] + }, + { + "description": "Understand how return values are used in a function in Python.", + "proficiency_level": "B", + "KSATs": [ + "K0012" + ] + }, + { + "description": "Understand how to implement a function that returns multiple values in Python.", + "proficiency_level": "B", + "KSATs": [ + "K0736" + ] + } + ] + }, + { + "description": "Describe the purpose and use of lambda functions in Python.", + "proficiency_level": "B", + "KSATs": [ + "K0028" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Write a program to parse command line arguments in Python.", + "KSATs": [ + "S0014" + ] + }, + { + "description": "Write a program to return multiples values in Python.", + "KSATs": [ + "S0047" + ] + }, + { + "description": "Write a program to receive input parameters in Python.", + "KSATs": [ + "S0048" + ] + }, + { + "description": "Create and implement functions to meet a requirement in Python.", + "KSATs": [ + "A0061", + "S0052", + "S0050", + "A0061" + ] + } + ], + "module_id": "BD_PY_FUNC_USRFUNC", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/functions/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30f3" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b38" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b41" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b45" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32baf" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df5" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b39" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b4c" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b49" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b3b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b3d" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b3e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b3f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b40" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b42" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b48" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b4a" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b4b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b5a" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b4f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b50" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b51" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cfa" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cfb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cfe" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e1d" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Debugging_ASM_pt1.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b3c" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/negative_bitwise.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b46" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Data_Types.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d2f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Data_Types.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b47" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d24" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b53" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dfc" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b86" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/Intro_to_ASM/Adv_types.html" + } + ], + "course": "IDF", + "module": "assembly", + "topic": "Intro_to_ASM", + "subject": "Computer_basics", + "lecture_time": 90, + "perf_demo_time": 60, + "references": [ + "https://www.csee.umbc.edu/courses/undergraduate/313/spring05/burt_katz/lectures/Lect10/structuresInAsm.html", + "https://www.gnu-pascal.de/gpc/Endianness.html", + "https://www.tutorialspoint.com/assembly_programming/assembly_registers.htm", + "https://en.wikibooks.org/wiki/X86_Assembly/X86_Architecture", + "http://www.c-jump.com/CIS77/ASM/DataTypes/lecture.html", + "https://unix.stackexchange.com/questions/297982/how-to-step-into-step-over-and-step-out-with-gdb", + "https://www.tutorialspoint.com/assembly_programming/assembly_variables.htm", + "https://courses.cs.washington.edu/courses/cse351/13su/lectures/12-structs.pdf", + "https://www.geeksforgeeks.org/assembly-language-program-find-largest-number-array/", + "https://stackoverflow.com/questions/43562980/swapping-two-int-pointers-in-assembly-x86" + ], + "lesson_objectives": [ + { + "description": "Review computer fundamentals necessary to contextualize Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0201", + "K0202", + "K0219", + "K0315" + ], + "MSBs": [ + { + "description": "Describe the specifics of x86 architecture.", + "proficiency_level": "B", + "KSATs": [ + "K0201" + ] + }, + { + "description": "Describe the specifics of x86_64 architecture.", + "proficiency_level": "B", + "KSATs": [ + "K0202" + ] + }, + { + "description": "Differentiate data sizes and their prefixes in computer soft- and hard-ware", + "proficiency_level": "B", + "KSATs": [ + "K0219" + ] + } + ] + }, + { + "description": "Understand underlying structure and methodology for working with Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0207", + "K0209", + "K0210", + "K0213", + "K0214", + "K0215", + "K0216", + "K0217", + "K0223", + "K0224", + "K0225", + "K0226" + ], + "MSBs": [ + { + "description": "Identify an operand as part of an instruction in Assembly", + "proficiency_level": "B", + "KSATs": [ + "K0207" + ] + }, + { + "description": "Understand the purpose of an assembler", + "proficiency_level": "B", + "KSATs": [ + "K0209" + ] + }, + { + "description": "Understand the implications of the term 'endianness' to data", + "proficiency_level": "B", + "KSATs": [ + "K0210" + ] + }, + { + "description": "Identify and describe 64 bit registers", + "proficiency_level": "B", + "KSATs": [ + "K0213" + ] + }, + { + "description": "Identify and describe 32 bit registers", + "proficiency_level": "B", + "KSATs": [ + "K0214" + ] + }, + { + "description": "Identify and describe the lower 16 bit registers", + "proficiency_level": "B", + "KSATs": [ + "K0215" + ] + }, + { + "description": "Identify and describe the 'high' 8-bit registers", + "proficiency_level": "B", + "KSATs": [ + "K0216" + ] + }, + { + "description": "Identify and describe the 'low' 8-bit registers", + "proficiency_level": "B", + "KSATs": [ + "K0217" + ] + }, + { + "description": "With required resources, describe the purpose and use of the NASM assembler", + "proficiency_level": "B", + "KSATs": [ + "K0223" + ] + }, + { + "description": "Understand the implementation of opcodes in Assembly", + "proficiency_level": "B", + "KSATs": [ + "K0224" + ] + }, + { + "description": "Understand how the assembler works", + "proficiency_level": "B", + "KSATs": [ + "K0225" + ] + }, + { + "description": "Identify differences across assemblers", + "proficiency_level": "B", + "KSATs": [ + "K0226" + ] + } + ] + }, + { + "description": "Differentiate data types and registers in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0213", + "K0214", + "K0215", + "K0216", + "K0217", + "K0763", + "K0769", + "S0125", + "S0130", + "S0134" + ], + "MSBs": [ + { + "description": "Identify the purpose of movzx in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0769" + ] + }, + { + "description": "Identify the purpose of xchg in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0771" + ] + }, + { + "description": "Identify unique characteristics of registers in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0213", + "K0214", + "K0215", + "K0216", + "K0217" + ] + }, + { + "description": "Identify different data types in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0763" + ] + } + ] + }, + { + "description": "Describe Advanced Data Type use in Assembly", + "proficiency_level": "B", + "KSATs": [ + "K0221", + "K0222" + ], + "MSBs": [ + { + "description": "Understand the purpose of 'structure' in Assembly'", + "proficiency_level": "B", + "KSATs": [ + "K0222", + "K0308", + "S0114" + ] + }, + { + "description": "Understand iteration of consecutive memory addresses in Assembly, i.e, how to iterate through an array", + "proficiency_level": "B", + "KSATs": [ + "K0221" + ] + } + ] + } + ], + "map_for": "training", + "performance_objectives": [ + { + "description": "Write programs to move, replace, and swap values in registers using Assembly.", + "KSATs": [ + "S0143", + "S0125", + "K0767", + "K0771" + ] + }, + { + "description": "Write programs partially copying data - leveraging and adapting across registers of different sizes.", + "KSATs": [ + "S0134", + "S0143", + "S0125", + "K0769", + "K0771" + ] + }, + { + "description": "Identify and access different registers appropriately in Assembly.", + "proficiency_level": "2", + "KSATs": [ + "S0134", + "K0213", + "K0214", + "K0215", + "K0216", + "K0217" + ], + "MSBs": [ + { + "description": "Use movzx across register types as appropriate in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0769", + "S0125" + ] + }, + { + "description": "Recognize limitations of xchg and implement as appropriate in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0771", + "S0125" + ] + } + ] + } + ], + "module_id": "IDF_ASM_CMP_Basic", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "topic_path": "mdbook/src/Intro_to_ASM/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30f6" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b73" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d02" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d03" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d01" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d19" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d0f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d1f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d1d" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d27" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d29" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b68" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b6b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b65" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d2a" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b69" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d18" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d22" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d23" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d16" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Strings_Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cfa" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Strings_Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e2f" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Strings_Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b44" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Strings_Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b57" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32de7" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Control_Flow.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b53" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Control_Flow.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df0" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Control_Flow.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b56" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b5e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b61" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b62" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d28" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d2c" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df6" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b58" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Control_Flow/Calls.html" + } + ], + "course": "IDF", + "module": "assembly", + "topic": "ASM_Control_flow", + "subject": "Control_Flow", + "lecture_time": 15, + "perf_demo_time": 45, + "references": [ + "https://www.amd.com/system/files/TechDocs/24594.pdf", + "https://eli.thegreenplace.net/2011/09/06/stack-frame-layout-on-x86-64/", + "https://security.stackexchange.com/questions/129499/what-does-eip-stand-for", + "https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-1-manual.pdf", + "https://wiki.osdev.org/X86-64_Instruction_Encoding#Legacy_Prefixes", + "https://en.wikipedia.org/wiki/FLAGS_register", + "https://www.quora.com/What-is-POPF-I-can-understand-PUSHF-cause-it-simply-push-flags-but-what-is-POPF-How-does-computer-know-what-is-flag-to-pop-1", + "http://www.c-jump.com/CIS77/ASM/Instructions/I77_0070_eflags_bits.htm", + "https://nasm.us/doc/nasmdoc3.html", + "https://compas.cs.stonybrook.edu/~nhonarmand/courses/sp17/cse506/ref/assembly.html", + "https://datacadamia.com/computer/cpu/register/eflags", + "https://www.tutorialspoint.com/assembly_programming/assembly_scas_instruction.htm", + "https://www.tutorialspoint.com/assembly_programming/assembly_registers.htm", + "https://en.wikipedia.org/wiki/X86_calling_conventions", + "https://en.wikibooks.org/wiki/X86_Assembly/Control_Flow", + "https://revers.engineering/applied-re-accelerated-assembly-p1/", + "https://wiki.skullsecurity.org/index.php?title=Registers#eip", + "https://www.felixcloutier.com/x86/scas:scasb:scasw:scasd" + ], + "lesson_objectives": [ + { + "description": "Understand and utilize flags in Assembly to solve relevant problems.", + "proficiency_level": "B", + "KSATs": [ + "K0237", + "K0238", + "K0239", + "K0774", + "K0775", + "S0125", + "S0138" + ], + "MSBs": [ + { + "description": "Set flags via arithmetic and manually in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0237", + "K0238", + "K0239", + "K0774", + "K0775", + "S0125", + "S0138" + ] + } + ] + }, + { + "description": "Understand and utilize flags in Assembly to solve relevant problems.", + "proficiency_level": "B", + "KSATs": [ + "K0237", + "K0238", + "K0239", + "K0774", + "K0775", + "S0125", + "S0138" + ], + "MSBs": [ + { + "description": "Set flags via arithmetic and manually in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0237", + "K0238", + "K0239", + "K0774", + "K0775", + "S0125", + "S0138" + ] + } + ] + }, + { + "description": "Identify, differentiate, and leverage string functions in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0798", + "K0799", + "K0800", + "K0801", + "K0802", + "S0129" + ], + "MSBs": [ + { + "description": "Understand the purpose of the scas instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0798" + ] + }, + { + "description": "Understand the purpose of the stos instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0799" + ] + }, + { + "description": "Understand the purpose of the lods instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0800" + ] + }, + { + "description": "Understand the purpose of the movs instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0801" + ] + }, + { + "description": "Understand the purpose of the cmps instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0802" + ] + } + ] + }, + { + "description": "Differentiate and implement conditional and unconditional control flow in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0794", + "K0795", + "K0796", + "K0797", + "K0811", + "K0812", + "S0117", + "S0118", + "S0128", + "S0129" + ], + "MSBs": [ + { + "description": "Understand the purpose of the cmp instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0794" + ] + }, + { + "description": "Understand the purpose of the test instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0795" + ] + }, + { + "description": "Understand the purpose of the jcc and other conditional jump instructions.", + "proficiency_level": "B", + "KSATs": [ + "K0796" + ] + }, + { + "description": "Understand the purpose of the loop instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0797" + ] + }, + { + "description": "Understand the purpose of the cmp instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0794" + ] + } + ] + }, + { + "description": "Differentiate function call syntaxes and accompanying registers across OSes and architectures", + "proficiency_level": "B", + "KSATs": [ + "K0233", + "K0253", + "K0254", + "K0255", + "K0232", + "K0236", + "K0813", + "K0815", + "S0119", + "S0121", + "S0134" + ], + "MSBs": [ + { + "description": "Differentiate register use by architecture and OS", + "proficiency_level": "B", + "KSATs": [ + "K0254", + "K0255" + ] + }, + { + "description": "Identify the function and use of name mangling by OS", + "proficiency_level": "B", + "KSATs": [ + "K0236" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Utilize common string instructions in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "S0129" + ] + }, + { + "description": "Leverage conditional branching to solve problems in Assembly.", + "proficiency_level": "D", + "KSATs": [ + "S0128", + "S0123", + "K0252", + "K0796", + "K0218" + ], + "MSBs": [ + { + "description": "Understand the purpose of the jcc and other conditional jump instructions.", + "proficiency_level": "D", + "KSATs": [ + "K0796" + ] + }, + { + "description": "Utilize common conditional instructions.", + "proficiency_level": "D", + "KSATs": [ + "S0128" + ] + }, + { + "description": "Dereference and iterate through memory in Assembly.", + "proficiency_level": "2", + "KSATs": [ + "S0123", + "K0252" + ] + } + ] + }, + { + "description": "In Assembly, access predefined external utility functions.", + "KSATs": [ + "S0121", + "S0177" + ] + }, + { + "description": "In Assembly, use name mangling to create implement functions.", + "KSATs": [ + "S0119" + ] + } + ], + "module_id": "IDF_ASM_control_flow", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/ASM_Control_Flow/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf30fb" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b3a" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b4d" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b43" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b63" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d01" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b4e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b60" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b55" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d2e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e0c" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b44" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/The_Stack.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf7" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d05" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cfa" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d0d" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d0f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d15" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d25" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32de6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/negative_bitwise.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b8d" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/negative_bitwise.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cb1" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_Basic_Operations/negative_bitwise.html" + } + ], + "course": "IDF", + "module": "assembly", + "topic": "ASM_basic_ops", + "subject": "ASM Basic Ops", + "lecture_time": 60, + "perf_demo_time": 60, + "references": [ + "https://stackoverflow.com/questions/46790666/how-is-stack-memory-allocated-when-using-push-or-sub-x86-instructions", + "https://c9x.me/x86/html/file_module_x86_id_72.html", + "https://eli.thegreenplace.net/2011/09/06/stack-frame-layout-on-x86-64/", + "https://www.amd.com/system/files/TechDocs/24594.pdf", + "https://blog.holbertonschool.com/hack-virtual-memory-stack-registers-assembly-code/", + "https://www.felixcloutier.com/x86/div", + "http://www.cs.tau.ac.il/~maon/teaching/2014-2015/seminar/seminar1415a-lec6-runtime.pdf", + "https://www.cs.uaf.edu/2012/fall/cs301/lecture/09_21_stack.html", + "https://learn.adacore.com/labs/bug-free-coding/chapters/stack.html", + "https://www.tutorialspoint.com/assembly_programming/assembly_arithmetic_instructions.htm", + "https://www.tutorialspoint.com/operating_system/os_processes.htm" + ], + "lesson_objectives": [ + { + "description": "Recognize methods in Assembly for using the stack", + "proficiency_level": "B", + "KSATs": [ + "K0817", + "S0123" + ], + "MSBs": [ + { + "description": "Understand how to use the stack", + "proficiency_level": "B", + "KSATs": [ + "K0203", + "K0230", + "K0235" + ] + }, + { + "description": "push and pop to the stack in Assembly", + "proficiency_level": "B", + "KSATs": [ + "K0203", + "K0235", + "K0220" + ] + } + ] + }, + { + "description": "Identify, differentiate, and leverage arithmetic functions in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "S0126", + "K0778", + "K0779", + "K0780", + "K0781", + "K0782", + "K0783" + ], + "MSBs": [ + { + "description": "Identify how to add and subtract in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0778", + "K0779" + ] + }, + { + "description": "Articulate the procedures and registers for multiplication and division in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0780", + "K0781" + ] + }, + { + "description": "Identify how to increment and decrement registers in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "K0782", + "K0783" + ] + } + ] + }, + { + "description": "Differentiate methods and purposes for bitwise shifts in Assembly.", + "proficiency_level": "B", + "KSATs": [ + "S0115", + "S0139", + "K0211", + "K0784", + "K0785", + "K0786", + "K0787", + "K0788", + "K0789", + "K0790", + "K0791", + "K0809" + ], + "MSBs": [ + { + "description": "Understand the purpose of the scas instruction.", + "proficiency_level": "B", + "KSATs": [ + "K0798" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Apply knowledge of the stack through commands in Assembly", + "proficiency_level": "2", + "KSATs": [ + "K0203", + "K0230", + "K0235", + "S0157" + ] + } + ], + "module_id": "IDF_ASM_basic_ops", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/ASM_Basic_Operations/", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf3105" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a35" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Input_Validation/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af5" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Input_Validation/index.html" + } + ], + "course": "IDF", + "module": "pseudocode", + "topic": "Input_Validation", + "subject": "Pseudocode Input Validation", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "Farrell, Joyce, Programming Logic \u0026 Design (2017)" + ], + "lesson_objectives": [ + { + "description": "Demonstrate the use of input validation in a pseudocode program", + "proficiency_level": "B", + "KSATs": [ + "A0004", + "S0110" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Utilize input validation to prevent errors in pseudocode", + "KSATs": [ + "S0110" + ] + } + ], + "module_id": "IDF_pseudocode", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Input_Validation", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf3106" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e29" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html?highlight=loop#the-loop-structure" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html?highlight=loop#the-loop-structure" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df2" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html?highlight=loop#the-loop-structure" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e27" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html#understanding-the-three-basic-structures" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html#understanding-the-three-basic-structures" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dfa" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html#understanding-the-three-basic-structures" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d43" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d3d" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ca2" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Overview.html" + } + ], + "course": "IDF", + "module": "pseudocode", + "topic": "Checkpoints", + "subject": "Pseudocode Structures", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "Farrell, Joyce, Programming Logic \u0026 Design (2017)" + ], + "lesson_objectives": [ + { + "description": "Demonstrate the use of loops in a pseudocode program", + "proficiency_level": "B", + "KSATs": [ + "K0107", + "S0172", + "S0081" + ], + "MSBs": [] + }, + { + "description": "Distinguish between the three basic programming structures", + "proficiency_level": "B", + "KSATs": [ + "S0171", + "S0081", + "K0107", + "K0754", + "S0082" + ], + "MSBs": [ + { + "description": "Utilize a sequential structure in a pseudocode program", + "proficiency_level": "2", + "KSATs": [ + "S0171" + ] + }, + { + "description": "Utilize a Looping Structure in a pseudocode program", + "proficiency_level": "B", + "KSATs": [ + "S0081", + "K0107" + ] + }, + { + "description": "Utilize a Conditional Structure in a pseudocode program", + "proficiency_level": "B", + "KSATs": [ + "S0082", + "K0754" + ] + } + ] + }, + { + "description": "Select the appropriate control structure for a pseudocode problem", + "proficiency_level": "B", + "KSATs": [ + "K0835" + ] + }, + { + "description": "Explain the utility of an algorithm written in pseudocode", + "proficiency_level": "B", + "KSATs": [ + "K0834" + ] + } + ], + "performance_objectives": [ + { + "description": "Utilize loops to solve a problem in pseudocode and flowchart format", + "KSATs": [ + "S0082" + ] + }, + { + "description": "Develop a solution to solve a problem using conditional structures.", + "KSATs": [ + "S0082" + ] + }, + { + "description": "Develop a solution to solve a problem conditional looping structures.", + "KSATs": [ + "S0081" + ] + }, + { + "description": "Develop a solution to solve a problem using sequential structures", + "KSATs": [ + "S0081" + ] + } + ], + "module_id": "IDF_pseudocode", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Checkpoints", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf3107" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32afd" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ccb" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cc9" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d9c" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Labs/PseudoLab4.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d9f" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Labs/PseudoLab4.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Structure.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dfa" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Labs/PseudoLab4.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a4b" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Labs/PseudoLab4.html" + } + ], + "course": "IDF", + "module": "pseudocode", + "topic": "Decisions", + "subject": "Pseudocode Decisions", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "Farrell, Joyce, Programming Logic \u0026 Design (2017)" + ], + "lesson_objectives": [ + { + "description": "Demonstrate the use of logic in conditional statements", + "proficiency_level": "C", + "KSATs": [ + "K0714", + "K0715", + "S0031", + "S0032" + ], + "MSBs": [ + { + "description": "Explain the use of logical operators", + "proficiency_level": "C", + "KSATs": [ + "K0714", + "K0031" + ] + }, + { + "description": "Explain the use of relational operators", + "proficiency_level": "C", + "KSATs": [ + "K0715", + "K0032" + ] + } + ] + }, + { + "description": "Demonstrate how to construct conditional statement blocks in both pseudocode and flowchart form", + "proficiency_level": "B", + "KSATs": [ + "K0754", + "S0082" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Utilize conditional statements to solve a problem in pseudocode", + "KSATs": [ + "S0082", + "A0018" + ] + }, + { + "description": "Use logical operators to build a conditional statement", + "KSATs": [ + "K0031" + ] + }, + { + "description": "Use logical operators to build a conditional statement", + "KSATs": [ + "S0032" + ] + } + ], + "module_id": "IDF_pseudocode", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Decisions", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5ee9250a761cf87371cf3108" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a9b" + }, + "item_proficiency": "B", + "url": "https://gitlab.com/39iosdev/ccd-iqt/idf/pseudocode/-/blob/master/mdbook/src/Labs/PseudoLab5.md" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab3" + }, + "item_proficiency": "B", + "url": "https://gitlab.com/39iosdev/ccd-iqt/idf/pseudocode/-/blob/master/mdbook/src/Labs/labs.md#pseudocode-activity-6" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cdd" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Added_Modules.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ab0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aaf" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cde" + }, + "item_proficiency": "B", + "url": "https://www.freecodecamp.org/news/how-recursion-works-explained-with-flowcharts-and-a-video-de61f40cb7f9/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dd3" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc4" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db5" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Checkpoints/Added_Modules.html#program-3-2" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32db6" + }, + "item_proficiency": "3", + "url": "https://www.techiedelight.com/reverse-a-string-using-recursion/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/pseudocode/Functions" + } + ], + "course": "IDF", + "module": "pseudocode", + "topic": "Pseudocode_Functions", + "subject": "Pseudocode Functions", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "Farrell, Joyce, Programming Logic \u0026 Design (2017)", + "https://www.freecodecamp.org/news/how-recursion-works-explained-with-flowcharts-and-a-video-de61f40cb7f9/", + "https://www.techiedelight.com/reverse-a-string-using-recursion/" + ], + "lesson_objectives": [ + { + "description": "Implement functions to solve a specific problem", + "proficiency_level": "B", + "KSATs": [ + "A0061", + "K0007", + "K0009", + "K0012", + "K0738", + "K0050", + "K0010", + "S0052" + ], + "MSBs": [ + { + "description": "Demonstrate the use of function parameters in a pseudocode program", + "proficiency_level": "B", + "KSATs": [ + "K0010" + ] + }, + { + "description": "Explain the use of the return command in a pseudocode program", + "proficiency_level": "B", + "KSATs": [ + "K0007", + "K0012", + "K0738", + "K0050", + "S0052" + ] + }, + { + "description": "Discuss how to create a function in a pseudocode program", + "proficiency_level": "B", + "KSATs": [ + "K0009" + ] + } + ] + }, + { + "description": "Outline the requirements for a recursive function", + "proficiency_level": "B", + "KSATs": [ + "K0737", + "S0049" + ], + "MSBs": [] + }, + { + "description": "Interpret the scope of a declared variable", + "proficiency_level": "B", + "KSATs": [ + "K0011" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Build a recursive function to solve a problem", + "KSATs": [ + "S0049" + ] + }, + { + "description": "Develop pseudocode functions that solve a problem without returning a value", + "KSATs": [ + "S0050" + ] + }, + { + "description": "Develop pseudocode functions that solve a problem by returning a single value", + "KSATs": [ + "S0052" + ] + }, + { + "description": "Build pseudocode functions that receives input parameters", + "KSATs": [ + "S0048" + ] + } + ], + "module_id": "IDF_pseudocode", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Functions", + "created_on": "2020-06-16" +}, +{ + "_id": { + "$oid": "5eecc9e6121919f64ea4ed89" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf9" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af4" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ccb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cc9" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ccd" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cec" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df4" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d98" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d96" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d9c" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d9f" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32da4" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Operators_expressions/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Operators_expressions", + "subject": "Operator_expressions", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [ + { + "description": "Explain how to utilize Operators in C.", + "item_proficiency": "B", + "KSATs": [ + "K0764", + "K0714", + "K0715", + "K0716", + "K0735" + ], + "MSBs": [ + { + "description": "Explain the purpose and use of the increment and decrement operators.", + "item_proficiency": "B", + "KSATs": [ + "K0764" + ] + }, + { + "description": "Identify and understand logical operators.", + "item_proficiency": "B", + "KSATs": [ + "K0714" + ] + }, + { + "description": "Identify and understand relational operators.", + "item_proficiency": "B", + "KSATs": [ + "K0715" + ] + }, + { + "description": "Identify and understand arithmetic operators (PEMDAS)", + "item_proficiency": "B", + "KSATs": [ + "K0716" + ] + }, + { + "description": "Identify and understand assignment operators.", + "item_proficiency": "B", + "KSATs": [ + "K0735" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Utilize post and pre increment/decrement operators.", + "item_proficiency": "3", + "KSATs": [ + "S0108", + "S0033" + ] + }, + { + "description": "Utilize operators in a mathematical equation.", + "item_proficiency": "3", + "KSATs": [ + "S0029", + "S0033" + ] + }, + { + "description": "Utilize operators in a boolean equation.", + "item_proficiency": "3", + "KSATs": [ + "S0031", + "S0032", + "S0033" + ] + } + ], + "module_id": "BD_C_Operators", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Operators_expressions/", + "created_on": "2020-06-19" +}, +{ + "_id": { + "$oid": "5eecc9e6121919f64ea4ed8b" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32de0" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf8" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e03" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/string-io.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e09" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/Buffer_Overflow.html?highlight=buffer#buffer-overflow-attacks" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b31" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/IO_part_1/Buffer_Overflow.html?highlight=buffer#buffer-overflow-attacks" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "IO_Part_1", + "subject": "IO_part_1", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [ + { + "description": "Utilize stdio.h functions in C.", + "proficiency_level": "B", + "KSATs": [] + }, + { + "description": "Utilize appropriate methods for getting input via command line arguments", + "proficiency_level": "B", + "KSATs": [ + "K0765", + "S0109" + ] + }, + { + "description": "Use proper methods to prevent issues associated with buffer overflow exploits", + "proficiency_level": "B", + "KSATs": [ + "S0147", + "S0148", + "K0191" + ] + }, + { + "description": "Explain how to implement macro guards with the preprocessor.", + "proficiency_level": "B", + "KSATs": [ + "K0095" + ], + "MSBs": [] + } + ], + "performance_objectives": [], + "module_id": "IDF_IO_part_1", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/IO_part_1/", + "created_on": "2020-06-19" +}, +{ + "_id": { + "$oid": "5eecc9e6121919f64ea4ed8c" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ae6" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32de8" + }, + "item_proficiency": "3", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aeb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aeb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b04" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d3b" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d31" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32de2" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e19" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cf5" + }, + "item_proficiency": " ", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a49" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a9d" + }, + "item_proficiency": "C", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/C-Programming/Preprocessor/index.html" + } + ], + "course": "IDF", + "module": "C-Programming", + "topic": "Preprocessor", + "subject": "Preprocessor", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [], + "lesson_objectives": [ + { + "description": "Explain how the preprocessor is used.", + "proficiency_level": "B", + "KSATs": [ + "K0762", + "K0105" + ], + "MSBs": [ + { + "description": "Explain the purpose of the pre-processor.", + "proficiency_level": "B", + "KSATs": [ + "K0105" + ] + }, + { + "description": "Explain the key components of pre-processor statements.", + "proficiency_level": "B", + "KSATs": [ + "K0762" + ] + } + ] + }, + { + "description": "Explain how to use common libraries in C.", + "proficiency_level": "B", + "KSATs": [ + "K0827", + "K0822", + "K0762" + ], + "MSBs": [ + { + "description": "Explain how to use the C Standard Library.", + "proficiency_level": "B", + "KSATs": [ + "K0827" + ] + }, + { + "description": "Explain how to use the SSL library.", + "proficiency_level": "B", + "KSATs": [ + "K0822" + ] + } + ] + }, + { + "description": "Explain how to implement macro guards with the preprocessor.", + "proficiency_level": "B", + "KSATs": [ + "K0095" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Apply preprocessor directives to develop portable programs.", + "proficiency_level": "3", + "KSATs": [ + "S0104" + ] + }, + { + "description": "Apply the Standard Library.", + "proficiency_level": "3", + "KSATs": [ + "S0160" + ] + }, + { + "description": "Produce and apply a static library.", + "proficiency_level": "2", + "KSATs": [ + "S0111" + ] + } + ], + "module_id": "IDF_Preprocessor", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Preprocessor/", + "created_on": "2020-06-19" +}, +{ + "_id": { + "$oid": "5f0603958cd8a4dfbb50b1f0" + }, + "network": "COMMERCIAL", + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a9a" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/01_Introduction.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ca7" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/01_Introduction.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd1" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/01_Introduction.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ccc" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ccf" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/05_branching.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cce" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd8" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd0" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd5" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/05_branching.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d89" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/04_creating_a_repo.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d8a" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/05_branching.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d8b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d8e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d8f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/04_creating_a_repo.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c8f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c9f" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/slides/#/8" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32f0b" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/slides/#/8" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a77" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/git_configuration_files.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a76" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/git_configuration_files.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a76" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32f0b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/06_version_control.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd3" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd7" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d76" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/introduction-to-git/gitlab_cicd_intro.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32a2a" + }, + "item_proficiency": "2", + "url": "https://docs.gitlab.com/ee/user/project/issues/" + } + ], + "course": "IDF", + "module": "introduction-to-git", + "topic": "introduction-to-git", + "subject": "introduction-to-git", + "lecture_time": 45, + "perf_demo_time": 60, + "references": [ + "https://git-scm.com/docs", + "https://git-scm.com/docs/gittutorial", + "https://git-scm.com/book/en/v2/Appendix-C%3A-Git-Commands-Basic-Snapshotting", + "https://www.atlassian.com/git/tutorials/what-is-git", + "https://www.atlassian.com/git/tutorials", + "https://docs.gitlab.com/ee/README.html", + "https://docs.gitlab.com/ee/ci/yaml/README.html", + "https://docs.gitlab.com/ee/ci/pipelines/index.html", + "https://docs.gitlab.com/ee/ci/yaml/README.html#stages", + "https://docs.gitlab.com/ee/ci/introduction/index.html", + "http://gitforwindows.org/", + "https://medium.com/@lulu.ilmaknun.q/kompilasi-meme-git-e2fe49c6e33e", + "https://oer.gitlab.io/oer-courses/vm-oer/03-Git-Introduction.html#/slide-vcs-review", + "https://tom.preston-werner.com/2009/05/19/the-git-parable.html", + "https://learngitbranching.js.org/", + "https://try.github.io/levels/1/challenges/1", + "http://rogerdudler.github.io/git-guide/", + "https://www.tutorialspoint.com/git/index.htm" + ], + "lesson_objectives": [ + { + "description": "Identify purpose for and types of version control including git", + "proficiency_level": "B", + "KSATs": [ + "K0001", + "K0720", + "K0645" + ], + "MSBs": [] + }, + { + "description": "Articulate the basic process for using git", + "proficiency_level": "B", + "KSATs": [ + "K0001", + "K0720", + "K0721", + "K0722", + "K0723", + "K0724", + "K0726" + ], + "MSBs": [] + }, + { + "description": "Identify how gitlab integrates to the CI/CD pipeline", + "proficiency_level": "B", + "KSATs": [ + "K0720", + "K0721", + "K0722", + "K0723", + "K0724", + "K0725", + "K0726", + "K0728", + "K0729", + "K0731", + "K0732", + "K0890" + ], + "MSBs": [] + }, + { + "description": "Identify work-role / environment specific git processes", + "proficiency_level": "B", + "KSATs": [ + "K0680", + "K0720", + "K0721", + "K0722", + "K0723", + "K0724", + "K0725", + "K0726" + ], + "MSBs": [] + }, + { + "description": "Identify more advanced git and gitlab functions", + "proficiency_level": "B", + "KSATs": [ + "K0001", + "K0721", + "K0725", + "S0018", + "S0021" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Demonstrate proficiency with fundamental git commands", + "KSATs": [ + "S0022", + "S0019", + "S0020", + "T0013" + ] + }, + { + "description": "Implement more advanced git commands and functionality", + "KSATs": [ + "S0018", + "S0019", + "S0020", + "S0021", + "A0695", + "A0694" + ] + } + ], + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/", + "created_on": "2020-07-08" +}, +{ + "_id": { + "$oid": "5f4fda868761b9e492f27858" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d75" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/howtoaskquestions/Howtoaskquestions.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b64" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d74" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b5d" + }, + "item_proficiency": "B", + "url": "https://www.romanpichler.com/blog/the-product-backlog-refinement-steps" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ee9" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32eeb" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ef8" + }, + "item_proficiency": "1", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c7b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c79" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c7a" + }, + "item_proficiency": "B", + "url": "https://www.romanpichler.com/blog/the-product-backlog-refinement-steps" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c7d" + }, + "item_proficiency": "B", + "url": "https://www.scrum.org/resources/what-is-a-daily-scrum" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c7e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c82" + }, + "item_proficiency": "B", + "url": "https://www.simform.com/functional-testing-types/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32c84" + }, + "item_proficiency": "B", + "url": "https://www.mountaingoatsoftware.com/agile/user-stories" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b66" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/" + } + ], + "course": "IDF", + "module": "agile", + "topic": "agile", + "subject": "Agile Development", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "http://www.catb.org/jargon/html/R/RTFM.html", + "https://digital.ai/resources/agile-101/what-is-scrum", + "https://stackoverflow.com/help/how-to-ask", + "https://www.mountaingoatsoftware.com/agile/user-stories", + "https://medium.com/@Intersog/how-being-agile-is-different-from-doing-agile-9098e8b679f1", + "https://www.simform.com/functional-testing-types/", + "https://www.agilemanifesto.org", + "https://www.scrum.org/resources/what-is-a-daily-scrum", + "https://www.agilealliance.org/agile101/", + "https://en.wikipedia.org/wiki/Eternal_September", + "https://www.romanpichler.com/blog/the-product-backlog-refinement-steps", + "https://www.mountaingoatsoftware.com/agile" + ], + "lesson_objectives": [ + { + "description": "Recall how to ask a question the right way", + "proficiency_level": "B", + "KSATs": [ + "K0891" + ], + "MSBs": [ + { + "description": "Identify troubleshooting steps to be taken before asking a question", + "proficiency_level": "B", + "KSATs": [ + "K0891" + ] + }, + { + "description": "Determine when one is ready to ask a question", + "proficiency_level": "B", + "KSATs": [ + "K0891" + ] + }, + { + "description": "Recall the proper location to ask a question based on the problem", + "proficiency_level": "B", + "KSATs": [ + "K0891" + ] + }, + { + "description": "Design meaningful questions using the necessary elements", + "proficiency_level": "C", + "KSATs": [ + "K0891" + ] + } + ] + }, + { + "description": "Identify steps to create or refine a product backlog item", + "KSATs": [ + "K0260" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Describe Agile Development Concept", + "KSATs": [ + "K0261" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Identify the four Agile values.", + "KSATs": [ + "K0889" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Identify the Agile development roles", + "KSATs": [ + "K0620" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Describe Scrum Terms and Methodology", + "KSATs": [ + "K0620" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Explain the scrum event distinction and process order", + "KSATs": [ + "K0621" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Explain the process of product backlog grooming", + "KSATs": [ + "K0622" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Demonstrate the daily scrum standup", + "KSATs": [ + "K0623" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Summarize Scrum Advantages to Rapid Capability Development", + "KSATs": [ + "K0624" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Explain the Size and Complexity of Functional Test Items", + "KSATs": [ + "K0626" + ], + "proficiency_level": "B", + "MSBs": [] + }, + { + "description": "Explain User Story Development", + "KSATs": [ + "K0627" + ], + "proficiency_level": "B", + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Discuss appropriate question asking strategies", + "KSATs": [ + "K0891" + ] + }, + { + "description": " Interpret customer requirements and evaluate resource and system constraints to create solution design specifications.", + "KSATs": [ + "T0005" + ] + }, + { + "description": "Reference capability repositories and other sources to identify existing capabilities which fully/partially meet customer requirements (with or without modification).", + "KSATs": [ + "T0006" + ] + }, + { + "description": "Collaborate with stakeholders to identify and/or develop appropriate cyberspace solutions.", + "KSATs": [ + "T0007" + ] + }, + { + "description": "Model the roles in a scrum daily standup", + "KSATs": [ + "K0627" + ] + } + ], + "module_id": "IDF_AGILE", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/", + "created_on": "2020-09-02" +}, +{ + "_id": { + "$oid": "5f5fd63f682b1d0b80f70514" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32aa5" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32abf" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac0" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac1" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/designpatterns.html" + } + ], + "course": "IDF", + "module": "python", + "topic": "Advanced", + "subject": "Design Patterns", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://www.geeksforgeeks.org/python-design-patterns/" + ], + "lesson_objectives": [ + { + "description": "Describe the terms and fundamentals associated with object-oriented programming using Python.", + "proficiency_level": "B", + "KSATs": [ + "K0030" + ], + "MSBs": [ + { + "description": "Describe the behavior of a singleton design pattern.", + "proficiency_level": "A", + "KSATs": [ + "K0042" + ] + }, + { + "description": "Describe the behavior of an adapter design pattern.", + "proficiency_level": "A", + "KSATs": [ + "K0043" + ] + }, + { + "description": "Describe the behavior of a bridge design pattern.", + "proficiency_level": "A", + "KSATs": [ + "K0044" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "", + "KSATs": [] + } + ], + "module_id": "IDF_PYTHON", + "network": "Commercial", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Python/Advanced", + "created_on": "2020-09-14" +}, +{ + "_id": { + "$oid": "5f5fd63f682b1d0b80f70515" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d92" + }, + "item_proficiency": "", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/virtualenv.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cd9" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/advanced/virtualenv.html" + } + ], + "course": "IDF", + "module": "python", + "topic": "Advanced", + "subject": "Python Virtual Environment", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://python-docs.readthedocs.io/en/latest/dev/virtualenvs.html" + ], + "lesson_objectives": [ + { + "description": "Set up and replicate a Python Virtual Environment.", + "KSATs": [ + "S0028" + ], + "MSBs": [ + { + "description": "Understand the purpose and benefits of Python Virtual Environments.", + "proficiency_level": "B", + "KSATs": [ + "K0734" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "", + "KSATs": [] + } + ], + "module_id": "IDF_PYTHON", + "network": "Commercial", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Python/Advanced", + "created_on": "2020-09-14" +}, +{ + "_id": { + "$oid": "5f5fd63f682b1d0b80f70516" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d90" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cb1" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/agile/Agile/Overview.html" + } + ], + "course": "IDF", + "module": "Debugging", + "topic": "Debugging", + "subject": "Debugging", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://code.visualstudio.com/docs/editor/debugging" + ], + "lesson_objectives": [ + { + "description": "Identify common debugging Tools", + "KSATs": [ + "K0648" + ], + "MSBs": [] + } + ], + "performance_objectives": [ + { + "description": "Debug a Python script.", + "KSATs": [ + "S0017" + ] + } + ], + "module_id": "IDF_DEBUGGING", + "network": "Commercial", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Debugging/", + "created_on": "2020-09-14" +}, +{ + "_id": { + "$oid": "5f5fdac24c9e0cc1b10ed911" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b6e" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b75" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b54" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d26" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d2b" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dea" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ded" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d30" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32e14" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b10" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b22" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d2d" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32df9" + }, + "item_proficiency": "2", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b29" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b23" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/assembly/ASM_SystemCalls/SystemCalls.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32d32" + }, + "item_proficiency": "A", + "url": "https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/getting-started-with-windbg" + } + ], + "course": "IDF", + "module": "assembly", + "topic": "ASM_SystemCalls", + "subject": "System Calls and Interrupts", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "Nebbett, G. (2000). Windows NT/2000 native API reference. Sams Publishing", + "https://asmtutor.com/#lesson22", + "https://www.cs.uaf.edu/2016/fall/cs301/lecture/11_04_syscall.html", + "https://wiki.osdev.org/Virtual_8086_Mode", + "https://riptutorial.com/x86/example/12672/real-mode", + "https://wiki.osdev.org/Real_Mode", + "https://en.wikibooks.org/wiki/X86_Assembly/Interfacing_with_Linux#Via_interrupt", + "https://asmtutor.com/#lesson1", + "https://www.tutorialspoint.com/assembly_programming/assembly_basic_syntax.htm", + "https://www.codeproject.com/Articles/45788/The-Real-Protected-Long-mode-assembly-tutorial-for", + "https://www.tutorialspoint.com/assembly_programming/assembly_system_calls.htm", + "http://faculty.nps.edu/cseagle/assembly/sys_call.html", + "https://www.tutorialspoint.com/assembly_programming/assembly_file_management.htm", + "https://en.wikibooks.org/wiki/X86_Assembly/Interfacing_with_Linux", + "https://wiki.osdev.org/System_Management_Mode", + "https://wiki.osdev.org/Protected_Mode", + "https://software.intel.com/content/www/us/en/develop/articles/intel-sdm.html", + "http://www.c-jump.com/CIS77/ASM/Memory/lecture.html", + "https://www.researchgate.net/publication/241643659_Using_CPU_System_Management_Mode_to_Circumvent_Operating_System_Security_Functions", + "https://resources.infosecinstitute.com/calling-ntdll-functions-directly/#gref", + "https://wiki.osdev.org/Security#Rings", + "https://j00ru.vexillium.org/syscalls/nt/64/", + "https://stackoverflow.com/questions/29440225/in-linux-x86-64-are-syscalls-and-int-0x80-related", + "https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/" + ], + "lesson_objectives": [ + { + "description": "Understand the purpose of system calls and interrupts", + "proficiency_level": "B", + "KSATs": [ + "K0241", + "K0242", + "K0243", + "K0814", + "K0816", + "K0818", + "S0120", + "S0122" + ], + "MSBs": [ + { + "description": "Implement system calls and interrupts", + "proficiency_level": "2", + "KSATs": [ + "S0120", + "S0122" + ] + } + ] + }, + { + "description": "Understand and access different processor modes in Assembly", + "proficiency_level": "B", + "KSATs": [ + "K0152", + "K0821", + "S0132" + ], + "MSBs": [ + { + "description": "Write Assembly code for different processor modes", + "proficiency_level": "2", + "KSATs": [ + "S0132" + ] + } + ] + }, + { + "description": "Access files in Assembly", + "proficiency_level": "B", + "KSATs": [ + "K0818", + "S0124" + ], + "MSBs": [ + { + "description": "Implement file handling in Assembly", + "proficiency_level": "2", + "KSATs": [ + "S0124" + ] + } + ] + }, + { + "description": "Explain Assembly debugging using WinDBG", + "proficiency_level": "B", + "KSATs": [ + "K0820" + ], + "MSBs": [] + } + ], + "performance_objectives": [], + "module_id": "IDF_ASM_system_calls", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/ASM_SystemCalls/", + "created_on": "2020-09-14" +}, +{ + "_id": { + "$oid": "5f6371eb9217e7d87d3d776c" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b33" + }, + "item_proficiency": "A", + "url": "https://cryptopals.com/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b36" + }, + "item_proficiency": "B", + "url": "https://cryptopals.com/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cbd" + }, + "item_proficiency": "A", + "url": "https://cryptopals.com/" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32cbe" + }, + "item_proficiency": "A", + "url": "https://cryptopals.com/" + } + ], + "course": "IDF", + "module": "cryptography", + "topic": "cryptography", + "subject": "Cryptography", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://cryptopals.com/" + ], + "lesson_objectives": [ + { + "description": "Demonstrate understanding of cryptography basics", + "proficiency_level": "B", + "KSATs": [ + "K0197", + "K0198", + "K0704", + "K0705" + ], + "MSBs": [ + { + "description": "Describe characteristics of a secure cryptographic hash", + "proficiency_level": "B", + "KSATs": [ + "K0198" + ] + }, + { + "description": "Describe characteristics of low-level cryptography", + "proficiency_level": "A", + "KSATs": [ + "K0197" + ] + }, + { + "description": "Describe common pitfalls surrounding the implementation of cryptography.", + "proficiency_level": "A", + "KSATs": [ + "K0704" + ] + }, + { + "description": "Demonstrate understanding of cryptographic primitives", + "proficiency_level": "A", + "KSATs": [ + "K0705" + ] + } + ] + } + ], + "performance_objectives": [], + "module_id": "CCD_CRYPTO", + "network": "Commercial", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/crypto", + "created_on": "2020-09-17" +}, +{ + "_id": { + "$oid": "5f77916b1dea7aa50d210460" + }, + "KSATs": [ + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad1" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Lists_Pointer_Structures.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ad0" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Lists_Pointer_Structures.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac6" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Singly_Linked_List.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ace" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Doubly_Linked_List.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32dc7" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Stacks_Lesson.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32b3a" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Stacks_Lesson.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32af2" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Stacks_Lesson.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ceb" + }, + "item_proficiency": "A", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Queue_Lesson.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32ac2" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Trees_Lesson.html" + }, + { + "ksat_id": { + "$oid": "5f457f1e1ea90ba9adb32acb" + }, + "item_proficiency": "B", + "url": "https://39iosdev.gitlab.io/ccd-iqt/idf/python/Data_Structures/Trees_Lesson.html" + } + ], + "course": "IDF", + "module": "python", + "topic": "Data Structures", + "subject": "Data Structures", + "lecture_time": 0, + "perf_demo_time": 0, + "references": [ + "https://www.geeksforgeeks.org/linked-list-set-1-introduction/", + "https://realpython.com/linked-lists-python/", + "https://www.geeksforgeeks.org/stack-in-python/", + "https://realpython.com/how-to-implement-python-stack/", + "https://www.geeksforgeeks.org/queue-in-python/", + "https://www.tutorialspoint.com/python_data_structure/python_binary_tree.htm", + "https://www.openbookproject.net/thinkcs/python/english2e/ch21.html", + "https://www.geeksforgeeks.org/binary-tree-data-structure/" + ], + "lesson_objectives": [ + { + "description": "Identify and implement advanced data structures in Python", + "proficiency_level": "B", + "KSATs": [ + "K0015", + "K0057", + "K0058", + "K0060", + "S0078", + "K0120", + "K0203", + "K0751", + "K0772", + "K0752", + "K0045", + "K0055" + ], + "MSBs": [ + { + "description": "Identify types and uses of linked lists in Python ", + "proficiency_level": "B", + "KSATs": [ + "K0015", + "K0057" + ] + }, + { + "description": "Identify queue and stack structures in Python", + "proficiency_level": "B", + "KSATs": [ + "S0078", + "K0203", + "K0751" + ] + }, + { + "description": "Identify the use cases for tree structures in Python", + "proficiency_level": "B", + "KSATs": [ + "S0078", + "K0045", + "K0055" + ] + } + ] + } + ], + "performance_objectives": [ + { + "description": "Implement linked lists in Python ", + "proficiency_level": "2", + "KSATs": [ + "K0015", + "K0057" + ] + }, + { + "description": "Use stack functions in Python ", + "proficiency_level": "2", + "KSATs": [ + "S0078", + "K0203", + "K0751" + ] + }, + { + "description": "Implement binary tree traversal in Python", + "proficiency_level": "2", + "KSATs": [ + "S0078", + "K0045", + "K0055" + ] + } + ], + "module_id": "BD_PY_DS_LSTS_STACKS_TREES", + "network": "COMMERCIAL", + "work-roles": [ + "CCD" + ], + "map_for": "training", + "topic_path": "mdbook/src/Data_Structures/", + "created_on": "2020-10-02" +}] \ No newline at end of file -- GitLab