IU:TestPage

From IU
Revision as of 11:17, 5 December 2022 by R.sirgalina (talk | contribs)
Jump to navigation Jump to search

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

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.
  2. P7. Activities and Teaching Methods by Sections
  3. Mark what techniques and methods are used in each section (1 is used, 0 is not used).
  4. Table A1: Teaching and Learning Methods within each section
  5. Table A2: Activities within each section

Section 2

Section 3

Section 4

Section 5

Section 6

Section 7