I want you to create a course for our learning platform. I want it to be interactive. You will first start by gathering basic course info, with relevant questions like “What is the course about?”, “Describe the course”, “Who are your target audience” and so on, feel free to add any questionnaire which you deem fit to gather basic info. Keep in mind to ask one question a time to gather this information. 

Our courses are not time bound but goal bound. A student can complete all goals in a week or a month or so on based on his bandwidth, so we will keep the courses goal focussed. 

Once you have the basic info, your first step will be to create Curriculum. In our context the curriculum has number of goals. And each goal has

- Content (Say theory on the goal)
 - Sub Topics
- Practice Problems
- Assessment questions
- Project

A goal can have one or more topic, feel free to group them logically and get a confirmation.

The most important thing is, the entire course has to have a single underlying thread of one or more real world problem statement, which you keep referring to in the content to explain a term or concept and give practice questions on the same problem statement and create project cards again on the same problem statement. Say for example you were to write about Java and you pick a real world problem statement of Cafe Management. Now anything that you do has to be around this.

Now once the curriculum is finalised you will give me list of ideas for the real world problem statement. I will choose one or more to help you build the content around it.

Once you have got confirmation on curriculum and real world problem statement, summarise the entire thing in the form of a markdown table first. For the practice problems and assessment questions you don’t need to show numbers, rather show if the goal will have them or not.

Get a confirmation. Once summarised, now create similar table with the status like todo, done etc. Make sure you publish this status after every goal or when ever I ask with keyword “status”.

Once everything is set, start by writing the content using the templates shared, before that keep in mind some of the general instructions that is applicable across

General instructions.

- Write as though a college professor is teaching students at MIT or Stanford.
- Ensure the content is readable, engaging, consistent, findable, and translatable and of high quality always.
- Use real-world metaphors and examples to explain concepts.
- Provide detailed explanations, and do not rush through concepts.

Templates

- Content
 1. Begin with the chapter name, making sure it is relevant to the concepts being taught.
 2. Write a detailed introduction .
 3. Divide the content into sections, each covering a specific topic or subtopic within the chapter.
 
 For each section:
 
 - Provide a title that summarizes the topic being discussed.
 - Write a detailed description that explains the topic using real-world examples.
 - Include relevant code snippets to demonstrate the topic in practice.
 - When introducing new keywords or concepts, provide a relatable metaphor and assure the students that they don't have to understand it completely right away but should be aware of it.
 4. Ensure that the content follows these five characteristics:
 - Readable: Make sure the text is easy to understand and well-structured.
 - Engaging: Keep the content interesting and relatable to maintain the students' attention.
 - Consistent: Use a consistent tone and style throughout the chapter.
 - Findable: Organize the content so that students can easily locate specific topics.
 - Translatable: Use clear and concise language that can be easily translated if necessary.
 5. Write the content from the perspective of a college professor teaching at a prestigious university like MIT or Stanford.
- Practices
 1. Generate practice problems based on the content covered in the course.
 2. Provide one practice problem at a time by default. If more problems are needed, use the keyword "more" or specify a number (e.g., "2 more", "3 more").
 3. Ensure that the practice problems build on top of previous goals and only involve concepts covered up to that point in the course.
 4. For each practice problem, provide a problem statement, input, output, and example implementation code.
 5. For each problem statement, also list the topics covered by the problem, based on the goals covered so far.
 6. Use the real world problem statement as a context for creating practice problems whenever possible.
 7. Ensure that the output of the problems is provided with examples, instead of vague statements.
- Assessments:
 1. Generate quiz questions based on the chapter content.
 2. Provide one question at a time by default. If more questions are needed, use the keyword "more" or specify a number (e.g., "2 more", "3 more").
 3. Include code snippets in the questions when appropriate for testing the students' understanding.
 4. Provide the correct answer along with a description or explanation for each question.
 5. Randomize the correct answer option for each question, instead of always placing it in option A.
 6. Assign a complexity level to each question: Easy, Medium, or Hard.
 7. Maintain a complexity distribution of 40% Easy, 40% Medium, and 20% Hard for the questions within each chapter.
- Project:
 1. Begin by selecting a real-world problem that is relevant to the course material and can be solved using the concepts taught throughout the course.
 2. Provide a clear project description and objective. Explain the purpose of the project and the problem it aims to solve.
 3. Create an overview of the entire project, summarizing the main objectives and milestones that the students will work on throughout the course.
 
 For each milestone in the project:
 
 - Clearly describe the tasks and objectives to be achieved.
 - Ensure that the milestone builds upon the concepts and skills acquired in previous course goals.
 - Provide guidance and tips to help students successfully complete the milestone.
 - Include relevant code examples or snippets to demonstrate the implementation of the concepts.
 - Create a project card for each milestone with the following format:
 - Card Name: A brief and descriptive title for the milestone.
 - Card Description: A summary of the milestone's objectives and purpose.
 - Tasks to be Completed: A list of specific tasks or actions that students need to complete for the milestone.
 - Acceptance Criteria: The criteria that must be met for the milestone to be considered complete.
 - Boilerplate Code (optional): Any starter code or templates that students can use as a foundation for their work.
학습 플랫폼용 코스를 만들어 주셨으면 합니다. 대화형이었으면 합니다. 먼저 "코스의 주제는 무엇인가요?", "코스 설명하기", "대상 고객은 누구인가요?" 등과 같은 관련 질문으로 기본 코스 정보를 수집하는 것으로 시작하며, 기본 정보를 수집하는 데 적합하다고 생각되는 설문지를 자유롭게 추가할 수 있습니다. 이 정보를 수집하기 위해 한 번에 한 가지씩 질문하는 것을 잊지 마세요. 저희 코스는 시간 제한이 없지만 목표 제한이 있습니다. 학생의 대역폭에 따라 일주일 또는 한 달 정도에 모든 목표를 완료할 수 있으므로 코스 목표는 목표에 초점을 맞출 것입니다. 기본 정보가 준비되면 첫 번째 단계는 커리큘럼을 만드는 것입니다. 여기서는 커리큘럼에 여러 개의 목표가 있습니다. 그리고 각 목표는 다음과 같습니다.- 콘텐츠(목표에 대한 이론) - 하위 주제- 연습 문제- 평가 질문- 프로젝트목표에는 하나 이상의 주제가 있을 수 있으며, 논리적으로 그룹화하여 자유롭게 확인을 받으십시오.가장 중요한 것은 전체 코스에 하나 이상의 실제 문제 진술이 하나의 기본 스레드로 연결되어 있어야 하며, 콘텐츠에서 계속 참조하여 용어 또는 개념을 설명하고 동일한 문제 진술에 대한 연습 문제를 제공하고 동일한 문제 진술에 대해 다시 프로젝트 카드를 만들어야 한다는 것입니다. 예를 들어 Java에 대해 글을 쓰고 카페 관리에 대한 실제 문제 진술을 선택한다고 가정해 보겠습니다. 이제 여러분이 하는 모든 작업은 이 문제를 중심으로 이루어져야 합니다.이제 커리큘럼이 완성되면 실제 문제 진술에 대한 아이디어 목록을 저에게 제공합니다. 그 중 하나 이상을 선택하여 콘텐츠를 구축하는 데 도움을 드리겠습니다.커리큘럼과 실제 문제 진술에 대한 확인을 받으면 먼저 전체 내용을 마크다운 표 형식으로 요약하세요. 연습 문제 및 평가 질문의 경우 숫자를 표시할 필요 없이 목표에 숫자가 있는지 여부를 표시하세요.확인을 받습니다. 요약이 완료되면 이제 할 일, 완료 등과 같은 상태로 비슷한 표를 만드세요. 모든 목표가 끝날 때마다 또는 제가 "상태" 키워드로 물어볼 때마다 이 상태를 게시하세요.모든 설정이 완료되면 공유된 템플릿을 사용해 콘텐츠를 작성하기 시작하고, 그 전에 전반적으로 적용할 수 있는 몇 가지 일반적인 지침을 염두에 두세요.일반적인 지침.- 대학교수가 MIT나 스탠포드에서 학생들을 가르치는 것처럼 글을 작성하세요.- 콘텐츠가 읽기 쉽고, 매력적이며, 일관성 있고, 찾기 쉽고, 번역 가능하며, 항상 높은 품질을 유지하도록 하세요.- 실제 비유와 예를 사용하여 개념을 설명하세요.- 자세한 설명을 제공하고 개념을 서두르지 마세요.템플릿- 콘텐츠 1. 가르치는 개념과 관련이 있는지 확인하면서 챕터 이름으로 시작합니다. 2. 자세한 소개를 작성합니다. 3. 콘텐츠를 섹션으로 나누고, 각 섹션은 장 내의 특정 주제 또는 하위 주제를 다룹니다.  각 섹션에 대해:  - 논의 중인 주제를 요약하는 제목을 입력합니다. - 실제 예제를 사용하여 주제를 설명하는 자세한 설명을 작성합니다. - 주제를 실제로 보여줄 수 있는 관련 코드 스니펫을 포함합니다. - 새로운 키워드나 개념을 소개할 때는 관련성 있는 비유를 제시하고 학생들이 당장 완전히 이해할 필요는 없지만 알아두면 좋다는 점을 확실히 알려주세요. 4. 콘텐츠가 다음 다섯 가지 특성을 따르는지 확인합니다: - 가독성: 텍스트가 이해하기 쉽고 체계적으로 구성되어 있는지 확인합니다. - 매력적: 학생들의 주의를 끌 수 있도록 흥미롭고 관련성 있는 콘텐츠를 유지합니다. - 일관성: 장 전체에 걸쳐 일관된 어조와 스타일을 사용하세요. - 찾기 쉬움: 학생이 특정 주제를 쉽게 찾을 수 있도록 콘텐츠를 구성합니다. - 번역 가능: 필요한 경우 쉽게 번역할 수 있는 명확하고 간결한 언어를 사용합니다. 5. MIT나 스탠퍼드 같은 명문 대학에서 가르치는 대학교수의 관점에서 콘텐츠를 작성하세요.- 연습 1. 코스에서 다룬 내용을 바탕으로 연습 문제를 생성합니다. 2. 기본적으로 한 번에 하나의 연습 문제만 제공합니다. 더 많은 문제가 필요한 경우 "더" 키워드를 사용하거나 숫자를 지정합니다(예: "2개 더", "3개 더"). 3. 연습 문제는 이전 목표를 기반으로 하고 코스에서 해당 시점까지 다룬 개념만 포함하도록 합니다. 4. 각 연습 문제에 대해 문제 진술, 입력, 출력 및 구현 코드 예제를 제공합니다. 5. 각 문제 진술에 대해 지금까지 다룬 목표에 따라 문제에서 다루는 주제도 나열합니다. 6. 가능하면 실제 문제 진술을 연습 문제 생성의 맥락으로 활용합니다. 7. 모호한 문장이 아닌 예제를 통해 문제의 출력이 제공되는지 확인합니다.- 평가: 1. 각 장의 내용을 바탕으로 퀴즈 문제를 생성합니다. 2. 기본적으로 한 번에 한 문제씩 제공합니다. 더 많은 문제가 필요한 경우 "더" 키워드를 사용하거나 숫자를 지정합니다(예: "2개 더", "3개 더"). 3. 학생의 이해도를 테스트하는 데 적절한 경우 문제에 코드 조각을 포함합니다. 4. 정답을 다음과 같이 제공합니다.