Difference between revisions of "IU:TestPage"

From IU
Jump to navigation Jump to search
Line 1: Line 1:
   
  +
= Enterprise programming on Javascript - Advanced =
= Introduction to Career Development =
 
* '''Course name''': Introduction to Career Development
+
* '''Course name''': Enterprise programming on Javascript - Advanced
* '''Code discipline''': R-01
+
* '''Code discipline''': CSE122
* '''Subject area''': Humanities
+
* '''Subject area''': Software Engineering
   
 
== Short Description ==
 
== Short Description ==
  +
This is an advanced course in web development.
The course provides students with an opportunity to learn and develop the necessary skills to engage in career planning and choice.
 
  +
It offers advanced techniques and tools that can be applied within professional enterprise JavaScript development using React and express. During the course, students will learn more about processes in modern enterprise web development; We will take an overview on client-server communication patterns and authorization techniques, learn about advanced application optimization methods, microfrontends, testing. Also, we will take a brief interview on mobile and desktop development with JavaScript and build a full-fledged web application.
During the course students will learn how to write selling CVs and Cover letters, how successfully pass job interviewы, how to sell themselves and how to negotiate for salary. On top of that we will cover personal brand development and career planning. We will go through the Labor Law so that they can stand up for their rights.
 
  +
This course requires base knowledge in HTML, CSS, JS and React.
We will also cover microeconomics and then dive deeper on to micro level and, particularly, how students as engineers can contribute to the business. We will cover corporate culture, manipulation and boundaries violations, so that students could assert their boundaries to others at workplace.
 
By the end of the course, students will have a clear answer to a question what value they can bring to the company, how they differentiate themselves, how they stand out from the crowd.
 
The key concepts are sales, negotiation, personal brand, value proposition, competitive advantage, corporate culture, motivation.
 
We will practice a lot by running mock interviews and salary negotiations.
 
By the end of the course, students will have a written CV, a Cover letter, a personal brand statement, and a profile on hh.ru or Linkedin.
 
   
 
== Prerequisites ==
 
== Prerequisites ==
   
 
=== Prerequisite subjects ===
 
=== Prerequisite subjects ===
* n/a
+
* CSE101
  +
* CSE102
  +
* CSE122 or CSE120
   
 
=== Prerequisite topics ===
 
=== Prerequisite topics ===
  +
* Basic programming skills.
* n/a
 
  +
* OOP, and software design.
  +
* Familiarity with some development framework or technology (web or mobile)
  +
* Javascript
  +
* HTML
  +
* CSS
   
 
== Course Topics ==
 
== Course Topics ==
Line 28: Line 31:
 
! Section !! Topics within the section
 
! Section !! Topics within the section
 
|-
 
|-
  +
| Introduction ||
| Soft skills and Personal Brand ||
 
  +
# Intro to micro frontend modules architecture
# Soft skills and Networking
 
  +
# Group projects
# Self-confidence and Body language
 
  +
# Enterprise tools to maintain project
# Personal Brand
 
# Leadership skills
 
 
|-
 
|-
  +
| Architecture ||
| How to write CV/Resume/Cover letter and pass job interviews ||
 
  +
# Enterprise ready technology
# CV
 
  +
# Monolith versus Micro modules
# Cover letter
 
  +
# Architecture of micro modules based web application
# Types of Job interviews, types of questions in an interview
 
# What business needs, and how engineers can contribute to business
 
# Sales and Negotiation
 
# Negotiation for salary and pay rise
 
 
|-
 
|-
| Work environment ||
+
| UI/UX/react ||
  +
# React
# Corporate culture
 
  +
# UI/UX
# Manipulation and boundaries violation
 
  +
# UI-kit
# Labor law
 
 
|-
 
|-
  +
| Nodejs ||
| Career development paths ||
 
  +
# NodeJS introduction
# What is capitalization and monetization
 
  +
# Dev server
# Career choice. Career paths
 
  +
|-
# How to transform career
 
  +
| Testing App ||
# Slash careers
 
  +
# Unit testing
  +
# Component testing
  +
# e2e testing
  +
|-
  +
| Security in web ||
  +
# Authorization/Authentication
  +
# JWT token
  +
# CORS
  +
# Web attacks
  +
|-
  +
| Optimization ||
  +
# Web optimization
  +
# React optimization
 
|}
 
|}
 
== Intended Learning Outcomes (ILOs) ==
 
== Intended Learning Outcomes (ILOs) ==
Line 57: Line 69:
 
=== What is the main purpose of this course? ===
 
=== What is the main purpose of this course? ===
 
What is the main goal of this course formulated in one sentence?
 
What is the main goal of this course formulated in one sentence?
The main goal of this course is to help students gain skills to sell themselves during job and negotiate for salary, and have mindset that they need to drive their career
+
The main purpose of this course is to enable a student to go from an idea to an MVP with the focus on delivering value to the customer and building the product in close to enterprise environment.
   
 
=== ILOs defined at three levels ===
 
=== ILOs defined at three levels ===
Line 63: Line 75:
 
==== Level 1: What concepts should a student know/remember/explain? ====
 
==== Level 1: What concepts should a student know/remember/explain? ====
 
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to ...
  +
* Explain web app Architecture
* Understand macroeconomics and economy of organizations on high level and what the main goal of organizations is
 
* Understand concepts of manipulation and boundaries violation
+
* Understand ui/ux design system
  +
* Describe client/server communication
* Know the Labor Law of Russia
 
  +
* Understand importance of testing
* Differentiate between sales and negotiation
 
* Understand how hiring process in organisations
 
* Explain what personal brand is and how to build it
 
* Elaborate on soft skills and why they are important
 
   
 
==== Level 2: What basic practical skills should a student be able to perform? ====
 
==== Level 2: What basic practical skills should a student be able to perform? ====
 
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to ...
  +
* Build web app Architecture
* Focus on soft skills and personal development
 
  +
* Develop Design system
* Define the structure of CVs and Cover letters or Motivation letters
 
  +
* Developer server
* Define the structure of hiring process and job interviews
 
  +
* Write Maintainable Tests
* Develop personal brand
 
* Increase their contribution to business
 
   
 
==== Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios? ====
 
==== Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios? ====
 
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to ...
  +
* Implement modern micro frontend architecture
* Write CVs and Cover letters or Motivation letters
 
  +
* Understand enterprise programming
* Go through job interview, sell themselves and negotiate for salary and land a job
 
* Clearly answer questions by telling the story: Tell me about yourself
 
* Explicitly answer the questions: Why should we hire you? What value can you bring to business?
 
* Plan their careers
 
* Reinforce their personal brand
 
 
== Grading ==
 
== Grading ==
   
Line 95: Line 99:
 
! Grade !! Range !! Description of performance
 
! Grade !! Range !! Description of performance
 
|-
 
|-
| A. Excellent || 85-100 || -
+
| A. Excellent || 90-100 || -
 
|-
 
|-
| B. Good || 70-84 || -
+
| B. Good || 75-89 || -
 
|-
 
|-
| C. Satisfactory || 50-69 || -
+
| C. Satisfactory || 60-74 || -
 
|-
 
|-
| D. Fail || 0-49 || -
+
| D. Fail || 0-59 || -
 
|}
 
|}
   
Line 110: Line 114:
 
! Activity Type !! Percentage of the overall course grade
 
! Activity Type !! Percentage of the overall course grade
 
|-
 
|-
| Final assignment (Exam) || 50
+
| Cource project || 45
 
|-
 
|-
| CV || 15
+
| Oral Exam || 45
 
|-
 
|-
| Cover Letter || 15
+
| Increment Demo || 10
 
|-
 
|-
| Profile on LinkedIn || 10
+
| || 0
|-
 
| Attendance more than 90% of lectures || 5
 
|-
 
| Active engagement, the class vote || 5
 
 
|}
 
|}
   
 
=== Recommendations for students on how to succeed in the course ===
 
=== Recommendations for students on how to succeed in the course ===
  +
Participation is important. Showing up is the key to success in this course.<br>You will work in teams, so coordinating teamwork will be an important factor for success. This is also reflected in the peer review being a graded item.<br>Review lecture materials before classes.<br>Visit technical meetings to ask questions about previous materials
na
 
   
 
== Resources, literature and reference materials ==
 
== Resources, literature and reference materials ==
   
 
=== Open access resources ===
 
=== Open access resources ===
  +
* ReactJS documentation,
* Ted Talk by Amy Cuddy ‘Your body language may shape who you are’
 
  +
* ReduxJS Toolkit documentation,
* Tone Crabbe, How to thrive in a world of too much
 
  +
* NodeJS documentation,
* Useful presentation phrases
 
* The Commencement address delivered by Steve Jobs at Stanford University, 2005
 
* The Labour Code of the Russian Federation
 
   
 
=== Closed access resources ===
 
=== Closed access resources ===
Line 139: Line 137:
   
 
=== Software and tools used within the course ===
 
=== Software and tools used within the course ===
  +
* Bitbucket
* Provide at least 3 open/freemium access tools
 
* na
+
* Jira
  +
* Miro
  +
* Figma
 
= Teaching Methodology: Methods, techniques, & activities =
 
= Teaching Methodology: Methods, techniques, & activities =
   
 
== Activities and Teaching Methods ==
 
== Activities and Teaching Methods ==
  +
{| class="wikitable"
  +
|+ Teaching and Learning Methods within each section
  +
|-
  +
! Teaching Techniques !! Section 1 !! Section 2 !! Section 3 !! Section 4 !! Section 5 !! Section 6 !! Section 7
  +
|-
  +
| Problem-based learning (students learn by solving open-ended problems without a strictly-defined solution) || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Project-based learning (students work on a project) || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Modular learning (facilitated self-study) || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Differentiated learning (provide tasks and activities at several levels of difficulty to fit students needs and level) || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Contextual learning (activities and tasks are connected to the real world to make it easier for students to relate to them); || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| развивающего обучения (задания и материал "прокачивают" ещё нераскрытые возможности студентов); || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| концентрированного обучения (занятия по одной большой теме логически объединяются); || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| inquiry-based learning || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Just-in-time teaching || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|}
 
{| class="wikitable"
 
{| class="wikitable"
 
|+ Activities within each section
 
|+ Activities within each section
 
|-
 
|-
! Learning Activities !! Section 1 !! Section 2 !! Section 3 !! Section 4
+
! Learning Activities !! Section 1 !! Section 2 !! Section 3 !! Section 4 !! Section 5 !! Section 6 !! Section 7
 
|-
 
|-
| Lectures || 1 || 1 || 1 || 1
+
| Lectures || 1 || 1 || 1 || 1 || 1 || 1 || 1
 
|-
 
|-
| Interactive Lectures || 1 || 1 || 1 || 1
+
| Interactive Lectures || 1 || 1 || 1 || 1 || 1 || 1 || 1
 
|-
 
|-
| Quizzes (written or computer based) || 1 || 1 || 0 || 0
+
| Development of individual parts of software product code || 1 || 1 || 1 || 1 || 1 || 1 || 1
 
|-
 
|-
| Peer Review || 1 || 1 || 1 || 1
+
| Group projects || 1 || 1 || 1 || 1 || 1 || 1 || 1
 
|-
 
|-
| Discussions || 1 || 1 || 1 || 1
+
| Peer Review || 1 || 1 || 1 || 1 || 1 || 1 || 1
 
|-
 
|-
| Simulations and role-plays || 1 || 1 || 1 || 1
+
| Discussions || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Presentations by students || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Simulations and role-plays || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Oral Reports || 1 || 1 || 1 || 1 || 1 || 1 || 1
 
|}
 
|}
 
== Formative Assessment and Course Activities ==
 
== Formative Assessment and Course Activities ==
Line 171: Line 200:
 
! Activity Type !! Content !! Is Graded?
 
! Activity Type !! Content !! Is Graded?
 
|-
 
|-
  +
| Group Project Work || Make teams<br>Define project idea<br><br> || 0
| Test || 1. Describe the difference between hard skills and soft skills.<br>2. List soft skills<br>3. List communication skills<br>4. What is the key concept about Body Language described by Amy Cuddy? How does our body language govern how we think and feel about ourselves?<br>5. List hygienic and non-hygienic factors as per Herzberg Theory<br>6. Write down your personal brand statement<br>7. List leadership skills || 0
 
  +
|-
  +
| Demo of increment || Present project idea<br> || 1
 
|}
 
|}
 
==== Section 2 ====
 
==== Section 2 ====
Line 179: Line 210:
 
! Activity Type !! Content !! Is Graded?
 
! Activity Type !! Content !! Is Graded?
 
|-
 
|-
  +
| Group Project Work || Startup project<br>Create repository<br>Deploy application<br><br> || 0
| Quiz || What is difference between sales and negotiation?<br>What comes first and why?<br>What is BATNA?<br>Why is BATNA important?<br>What does ‘bargain over position’ mean?<br>Describe the concept of fairness in negotiation<br>What is ZOPA? <br>Why do you need to define ZOPA?<br>What does STAR stand for? <br>Revision: how do we answer to objections and how we answer if we are asked about salary expectations.<br>What are businesses’ key objectives?<br>What value can you bring to business? || 0
 
 
|-
 
|-
  +
| Demo of increment || Present hello world application on production environment<br> || 1
| Quiz || Objections – Answers<br>Salary expectations - Answers || 0
 
 
|}
 
|}
 
==== Section 3 ====
 
==== Section 3 ====
Line 189: Line 220:
 
! Activity Type !! Content !! Is Graded?
 
! Activity Type !! Content !! Is Graded?
 
|-
 
|-
  +
| Group Project Work || Make html/css markup of project features<br><br> || 0
| Quiz || Na || 0
 
  +
|-
  +
| Demo of increment || Present styled application on production environment<br> || 1
  +
  +
 
|}
 
|}
 
==== Section 4 ====
 
==== Section 4 ====
Line 197: Line 232:
 
! Activity Type !! Content !! Is Graded?
 
! Activity Type !! Content !! Is Graded?
 
|-
 
|-
  +
| Group Project Work || Develop server part of application<br>Connect web application with server part<br><br> || 0
| Quiz || Na || 0
 
  +
|-
  +
| Demo of increment || Present communication between web and server applications on production environment<br> || 1
  +
|}
  +
==== Section 5 ====
  +
{| class="wikitable"
  +
|+
  +
|-
  +
! Activity Type !! Content !! Is Graded?
  +
|-
  +
| Group Project Work || Add tests to application with 80% coverage<br><br> || 0
  +
|-
  +
| Demo of increment || Show test coverage<br> || 1
  +
|}
  +
==== Section 6 ====
  +
{| class="wikitable"
  +
|+
  +
|-
  +
! Activity Type !! Content !! Is Graded?
  +
|-
  +
| Group Project Work || Finalize project<br><br> || 0
  +
|-
  +
| Demo of increment || Present application increment on production environment<br> || 1
  +
|}
  +
==== Section 7 ====
  +
{| class="wikitable"
  +
|+
  +
|-
  +
! Activity Type !! Content !! Is Graded?
  +
|-
  +
| Group Project Work || Finalize project<br><br> || 0
  +
|-
  +
| Demo of increment || Present application increment on production environment<br> || 1
 
|}
 
|}
 
=== Final assessment ===
 
=== Final assessment ===
 
'''Section 1'''
 
'''Section 1'''
 
# Can be a final exam, project defense, or some other equivalent of the final exam.
 
# Can be a final exam, project defense, or some other equivalent of the final exam.
# For the final assessment, students go through mock interview. Student are not allowed to take exam if they have not submitted a CV and a Cover Letter.
+
# For the final assessment, students present their project work they have accomplished during the course.
  +
# Then each student accessed to oral exam and himself involvement to the course would evaluated
# Final assessment (Exam):
 
# To pass a mock interview – 50%
 
# Provide a convincing answer to the question: Tell me about yourself – 10%
 
# Not avoid eye contact, communicate clearly and precisely, look friendly, self-confident – 10%
 
# Communicate clearly their brands, what value they can bring to business giving a clear answer to the question Why should we hire you – 15%
 
# Negotiate for salary – 15
 
 
'''Section 2'''
 
'''Section 2'''
   
Line 214: Line 276:
   
 
'''Section 4'''
 
'''Section 4'''
  +
  +
'''Section 5'''
  +
  +
'''Section 6'''
  +
  +
'''Section 7'''
   
   
 
=== The retake exam ===
 
=== The retake exam ===
 
'''Section 1'''
 
'''Section 1'''
  +
# For the retake, students have to implement a product and follow the guidelines of the course. The complexity of the product can be reduced, if it is one person working on it. The grading criteria for each section are the same as for the final project presentation. There has to be a meeting before the retake itself to plan and agree on the product ideas, and to answer questions.
# The grading criteria are the same as for the final exam
 
 
'''Section 2'''
 
'''Section 2'''
   
Line 224: Line 292:
   
 
'''Section 4'''
 
'''Section 4'''
  +
  +
'''Section 5'''
  +
  +
'''Section 6'''
  +
  +
'''Section 7'''

Revision as of 13:41, 9 February 2023

Enterprise programming on Javascript - Advanced

  • Course name: Enterprise programming on Javascript - Advanced
  • Code discipline: CSE122
  • Subject area: Software Engineering

Short Description

This is an advanced course in web development. It offers advanced techniques and tools that can be applied within professional enterprise JavaScript development using React and express. During the course, students will learn more about processes in modern enterprise web development; We will take an overview on client-server communication patterns and authorization techniques, learn about advanced application optimization methods, microfrontends, testing. Also, we will take a brief interview on mobile and desktop development with JavaScript and build a full-fledged web application. This course requires base knowledge in HTML, CSS, JS and React.

Prerequisites

Prerequisite subjects

  • CSE101
  • CSE102
  • CSE122 or CSE120

Prerequisite topics

  • Basic programming skills.
  • OOP, and software design.
  • Familiarity with some development framework or technology (web or mobile)
  • Javascript
  • HTML
  • CSS

Course Topics

Course Sections and Topics
Section Topics within the section
Introduction
  1. Intro to micro frontend modules architecture
  2. Group projects
  3. Enterprise tools to maintain project
Architecture
  1. Enterprise ready technology
  2. Monolith versus Micro modules
  3. Architecture of micro modules based web application
UI/UX/react
  1. React
  2. UI/UX
  3. UI-kit
Nodejs
  1. NodeJS introduction
  2. Dev server
Testing App
  1. Unit testing
  2. Component testing
  3. e2e testing
Security in web
  1. Authorization/Authentication
  2. JWT token
  3. CORS
  4. Web attacks
Optimization
  1. Web optimization
  2. React optimization

Intended Learning Outcomes (ILOs)

What is the main purpose of this course?

What is the main goal of this course formulated in one sentence? The main purpose of this course is to enable a student to go from an idea to an MVP with the focus on delivering value to the customer and building the product in close to enterprise environment.

ILOs defined at three levels

Level 1: What concepts should a student know/remember/explain?

By the end of the course, the students should be able to ...

  • Explain web app Architecture
  • Understand ui/ux design system
  • Describe client/server communication
  • Understand importance of testing

Level 2: What basic practical skills should a student be able to perform?

By the end of the course, the students should be able to ...

  • Build web app Architecture
  • Develop Design system
  • Developer server
  • Write Maintainable Tests

Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?

By the end of the course, the students should be able to ...

  • Implement modern micro frontend architecture
  • Understand enterprise programming

Grading

Course grading range

Grade Range Description of performance
A. Excellent 90-100 -
B. Good 75-89 -
C. Satisfactory 60-74 -
D. Fail 0-59 -

Course activities and grading breakdown

Activity Type Percentage of the overall course grade
Cource project 45
Oral Exam 45
Increment Demo 10
0

Recommendations for students on how to succeed in the course

Participation is important. Showing up is the key to success in this course.
You will work in teams, so coordinating teamwork will be an important factor for success. This is also reflected in the peer review being a graded item.
Review lecture materials before classes.
Visit technical meetings to ask questions about previous materials

Resources, literature and reference materials

Open access resources

  • ReactJS documentation,
  • ReduxJS Toolkit documentation,
  • NodeJS documentation,

Closed access resources

Software and tools used within the course

  • Bitbucket
  • Jira
  • Miro
  • Figma

Teaching Methodology: Methods, techniques, & activities

Activities and Teaching Methods

Teaching and Learning Methods within each section
Teaching Techniques Section 1 Section 2 Section 3 Section 4 Section 5 Section 6 Section 7
Problem-based learning (students learn by solving open-ended problems without a strictly-defined solution) 1 1 1 1 1 1 1
Project-based learning (students work on a project) 1 1 1 1 1 1 1
Modular learning (facilitated self-study) 1 1 1 1 1 1 1
Differentiated learning (provide tasks and activities at several levels of difficulty to fit students needs and level) 1 1 1 1 1 1 1
Contextual learning (activities and tasks are connected to the real world to make it easier for students to relate to them); 1 1 1 1 1 1 1
развивающего обучения (задания и материал "прокачивают" ещё нераскрытые возможности студентов); 1 1 1 1 1 1 1
концентрированного обучения (занятия по одной большой теме логически объединяются); 1 1 1 1 1 1 1
inquiry-based learning 1 1 1 1 1 1 1
Just-in-time teaching 1 1 1 1 1 1 1
Activities within each section
Learning Activities Section 1 Section 2 Section 3 Section 4 Section 5 Section 6 Section 7
Lectures 1 1 1 1 1 1 1
Interactive Lectures 1 1 1 1 1 1 1
Development of individual parts of software product code 1 1 1 1 1 1 1
Group projects 1 1 1 1 1 1 1
Peer Review 1 1 1 1 1 1 1
Discussions 1 1 1 1 1 1 1
Presentations by students 1 1 1 1 1 1 1
Simulations and role-plays 1 1 1 1 1 1 1
Oral Reports 1 1 1 1 1 1 1

Formative Assessment and Course Activities

Ongoing performance assessment

Section 1

Activity Type Content Is Graded?
Group Project Work Make teams
Define project idea

0
Demo of increment Present project idea
1

Section 2

Activity Type Content Is Graded?
Group Project Work Startup project
Create repository
Deploy application

0
Demo of increment Present hello world application on production environment
1

Section 3

Activity Type Content Is Graded?
Group Project Work Make html/css markup of project features

0
Demo of increment Present styled application on production environment
1


Section 4

Activity Type Content Is Graded?
Group Project Work Develop server part of application
Connect web application with server part

0
Demo of increment Present communication between web and server applications on production environment
1

Section 5

Activity Type Content Is Graded?
Group Project Work Add tests to application with 80% coverage

0
Demo of increment Show test coverage
1

Section 6

Activity Type Content Is Graded?
Group Project Work Finalize project

0
Demo of increment Present application increment on production environment
1

Section 7

Activity Type Content Is Graded?
Group Project Work Finalize project

0
Demo of increment Present application increment on production environment
1

Final assessment

Section 1

  1. Can be a final exam, project defense, or some other equivalent of the final exam.
  2. For the final assessment, students present their project work they have accomplished during the course.
  3. Then each student accessed to oral exam and himself involvement to the course would evaluated

Section 2

Section 3

Section 4

Section 5

Section 6

Section 7


The retake exam

Section 1

  1. For the retake, students have to implement a product and follow the guidelines of the course. The complexity of the product can be reduced, if it is one person working on it. The grading criteria for each section are the same as for the final project presentation. There has to be a meeting before the retake itself to plan and agree on the product ideas, and to answer questions.

Section 2

Section 3

Section 4

Section 5

Section 6

Section 7