Difference between revisions of "IU:TestPage"

From IU
Jump to navigation Jump to search
Tag: Manual revert
Line 1: Line 1:
   
  +
= Business Development, Sales and Marketing in IT Industry =
= Advanced Linux =
 
* '''Course name''': Advanced Linux
+
* '''Course name''': Business Development, Sales and Marketing in IT Industry
* '''Code discipline''': xxxxx
+
* '''Code discipline''': S22
* '''Subject area''':
+
* '''Subject area''': all around marketing and sales in IT industry.
   
 
== Short Description ==
 
== Short Description ==
  +
This course contains two important for successful company parts: marketing and sales.
This course covers the following concepts: The fundamental principles for `booting`; Linux Kernel: understanding, programming, debugging, contributing; Device drivers; Power management; Graphical stack overview; Userspace: understating and interaction with Kernel, debugging userspace application and libraries.
 
  +
These are the parts that are linked with each other - it is very difficult to sell without marketing support and it is very difficult to achieve results with marketing efforts only.
  +
Marketing part, starting from defining things like developing marketing strategy for the companies, finally offers practical tools of digital marketing. We will explore new digital reality and its impact on IT business. We will learn success stories of real businesses and how companies are adapting to the new changing landscape.
  +
The second part of the course covers important things for every company's success – the sales process. Understand how to attract customers in negotiations, how to “get to yes” getting great deals, how to control the sales funnel – you will get the understanding how it works and try it in practice.
   
 
== Prerequisites ==
 
== Prerequisites ==
Line 14: Line 17:
   
 
=== Prerequisite topics ===
 
=== Prerequisite topics ===
  +
* Basic IT industry knowledge
 
   
 
== Course Topics ==
 
== Course Topics ==
Line 22: Line 25:
 
! Section !! Topics within the section
 
! Section !! Topics within the section
 
|-
 
|-
  +
| Marketing Strategy ||
| X86/Arm assembler introduction ||
 
  +
# Types of markets
# Basic assembler: registers, operations
 
  +
# Product-centric marketing
# x86 ABI reference
 
  +
# Customer-centric marketing
# Context switching
 
  +
# Developing Marketing Strategy
# CPU security rings
 
|-
 
| Userspace ||
 
# Executable files overview
 
# ELF format
 
# SO format
 
# POSIX API
 
|-
 
| Userspace debugging (GDB) ||
 
# Debugging techniques overview
 
# GDB (Gnu debugger) usage
 
# Stack trace
 
# Watchpoints/breakpoints
 
|-
 
| Linux Kernel introduction ||
 
# Kernel usage
 
# Supported HW
 
# Building the kernel
 
|-
 
| Booting the Kernel ||
 
# Boot Sequence
 
# Device Tree
 
# U-boot
 
# initrd/initramfs
 
|-
 
| Kernel Modules ||
 
# Linux device and driver m​odel
 
# Virtual Filesystems
 
 
|-
 
|-
| Memory management ||
+
| Marketing tools ||
  +
# Brand&Presentation
# Physical Memory
 
  +
# Analytics
# Virtual Memory
 
  +
# Content
# Memory Allocation
 
  +
# SMM
  +
# Context advertising
  +
# E-mail marketing
 
|-
 
|-
  +
| Sales ||
| Threads, processes and scheduling ||
 
  +
# CRM systems
# Thread
 
  +
# B2B
# Processes
 
# Timers
+
# B2C
  +
# Negotiations
 
|-
 
|-
| Concurrent access to resources ||
+
| Final Project Presentation ||
  +
# Presentation of marketing&sales strategy and tactics for startup
# Mutexes
 
# Spin locks
 
# RW-locks
 
 
|}
 
|}
 
== Intended Learning Outcomes (ILOs) ==
 
== Intended Learning Outcomes (ILOs) ==
   
 
=== What is the main purpose of this course? ===
 
=== What is the main purpose of this course? ===
  +
This course aims to give students the skills of developing a winning marketing strategy for a startup, as well as the skills to implement marketing strategy using real digital-marketing tools and sales tactics for a startup product.
The main purpose of this course is to give the students advanced knowledge of how Linux operation system boots, works and what parts it is consists of.
 
   
 
=== ILOs defined at three levels ===
 
=== ILOs defined at three levels ===
Line 79: Line 57:
 
==== 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 ...
  +
* Develop naming, presentation, and product offer
* Principles of Operating Systems.
 
  +
* Use digital marketing tools
* Principles of bootloaders (first- /second- stage).
 
  +
* Use CRM
* Linux booting principles.
 
  +
* Sell its product
* Linux Kernel and apps debugging principles.
 
   
 
==== 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 ...
  +
* Skills in developing naming, presentations, product offerings
* Memory management in Kernel and userspace.
 
  +
* Skills of context advertising
* Linux kernel subsustems.
 
  +
* Skills of SMM doing
* Concurrent access to resources.
 
  +
* Skills of content marketing
* HW devices interaction in Linux.
 
  +
* Skills of e-mail marketing
* Interrupt and multithreading execution.
 
* Real- and virtual- filesystems interaction.
 
   
 
==== 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 ...
  +
* Skills how to find the right addressable market for its product
* Kernel drivers design skills.
 
  +
* Skills of web analytics
* Linux Kernel contribution and advanced GIT knowledge.
 
  +
* Skills of CRM using
* C language low-level Kernel programming.
 
  +
* Sales skills to various types of clients
* C/C++ language system programming.
 
* POSIX API usage.
 
* Kernel and userspace debugging (including KGDB/GDB).
 
* x86/ARM assembly programming.
 
 
== Grading ==
 
== Grading ==
   
Line 110: Line 84:
 
! Grade !! Range !! Description of performance
 
! Grade !! Range !! Description of performance
 
|-
 
|-
| A. Excellent || 100-150 || -
+
| A. Excellent || 90-100 || Pass
 
|-
 
|-
| B. Good || 80-100 || -
+
| B. Good || 75-89 || Pass
 
|-
 
|-
| C. Satisfactory || 60-79 || -
+
| C. Satisfactory || 60-74 || Pass
 
|-
 
|-
| D. Poor || 0-59 || -
+
| D. Fail || 0-59 || Fail
 
|}
 
|}
   
Line 125: Line 99:
 
! Activity Type !! Percentage of the overall course grade
 
! Activity Type !! Percentage of the overall course grade
 
|-
 
|-
| Labs/seminar classes || 100
+
| Seminar classes || 40
 
|-
 
|-
| Interim performance assessment || 0
+
| Interim performance assessment on the results of lecture assignments and its presentations || 30
 
|-
 
|-
| Exams || 50
+
| Final presentation || 30
 
|}
 
|}
   
 
=== Recommendations for students on how to succeed in the course ===
 
=== Recommendations for students on how to succeed in the course ===
  +
The student is recommended the following scheme of preparation for classes:<br>Marketing and sales are much more about hypothesis testing and math, than creativity. Therefore, it is so important for students to try the acquired knowledge in real practice, doing small tasks after each lecture.<br>Finally, we will try to assemble a working strategy for a startup from these tasks.<br>Moreover:<br>Participation is important. Showing up is the key to success in this course.<br>Reading the recommended literature is optional, and will give you a deeper understanding of the material.
 
   
 
== Resources, literature and reference materials ==
 
== Resources, literature and reference materials ==
   
 
=== Open access resources ===
 
=== Open access resources ===
  +
* Андрей Кравченко. Неидеальная стратегия для идеальной компании.
* Writing Kernel Module: i2c -
 
* Fundamental Linux Kernel programming by Krishenko V.A., Rayzanova N.U. - /
 
* Linux Operating System by Kuryachiy G.V., Malinskiy K.A. -
 
* Systemd after 10 years, historical and techical review, -
 
* Evolution of Linux Kernel by Novikov E.M., -
 
* Online resources shared by instructor
 
   
 
=== Closed access resources ===
 
=== Closed access resources ===
  +
* Viktor Pelevin. Empire V.
 
  +
* W. Chan Kim, Renee Mauborgne. Blue Ocean Strategy.
  +
* Eric ries. Lean startup.
  +
* Simon Kingsnorth. Digital Marketing Strategy.
   
 
=== Software and tools used within the course ===
 
=== Software and tools used within the course ===
Line 154: Line 126:
 
== Activities and Teaching Methods ==
 
== Activities and Teaching Methods ==
 
{| class="wikitable"
 
{| class="wikitable"
|+ Activities within each section
+
|+ Teaching and Learning Methods within each section
 
|-
 
|-
! Learning Activities !! Section 1 !! Section 2 !! Section 3 !! Section 4 !! Section 5 !! Section 6 !! Section 7 !! Section 8 !! Section 9
+
! Teaching Techniques !! Section 1 !! Section 2 !! Section 3 !! Section 4
 
|-
 
|-
| Development of individual parts of software product code || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1
+
| Problem-based learning (students learn by solving open-ended problems without a strictly-defined solution) || 1 || 1 || 1 || 1
 
|-
 
|-
| Homework and group projects || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 0
+
| Project-based learning (students work on a project) || 1 || 1 || 1 || 1
 
|-
 
|-
| Midterm evaluation || 1 || 1 || 1 || 1 || 0 || 0 || 0 || 0 || 0
+
| Business game (learn by playing a game that incorporates the principles of the material covered within the course). || 1 || 1 || 1 || 1
 
|-
 
|-
| Testing (written or computer based) || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1
+
| Task-based learning || 1 || 1 || 1 || 1
|-
+
|}
| Discussions || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1 || 1
 
|}
 
== Formative Assessment and Course Activities ==
 
 
=== Ongoing performance assessment ===
 
 
==== Section 1 ====
 
 
{| class="wikitable"
 
{| class="wikitable"
  +
|+ Activities within each section
|+
 
 
|-
 
|-
  +
! Learning Activities !! Section 1 !! Section 2 !! Section 3 !! Section 4
! Activity Type !! Content !! Is Graded?
 
 
|-
 
|-
| Question || ARM architecture is faster than x86, itn’s it? || 1
+
| Lectures || 1 || 1 || 1 || 0
 
|-
 
|-
  +
| Interactive Lectures || 1 || 1 || 1 || 0
| Question || Why does antivirus software works in RING0? || 1
 
|-
 
| Question || What is the main purpose of having interrupts? || 1
 
|-
 
| Question || How-to debug anything inside interrupt context? || 1
 
|-
 
| Question || Show the difference in x86 and ARM CPU registers. || 0
 
|-
 
| Question || Create `basic` atomic operations for ARM in x86 (and vice versa). || 0
 
|-
 
| Question || Implement simple context switching without threads. || 0
 
|}
 
==== Section 2 ====
 
{| class="wikitable"
 
|+
 
|-
 
! Activity Type !! Content !! Is Graded?
 
 
|-
 
|-
  +
| Lab exercises || 1 || 1 || 1 || 0
| Question || Why can’t we just use .EXE and .DLL files on Linux? || 1
 
 
|-
 
|-
  +
| Cases studies || 1 || 1 || 1 || 0
| Question || Do .SO files actually share same memory physical addresses? || 1
 
 
|-
 
|-
  +
| Individual Projects || 1 || 1 || 1 || 1
| Question || POSIX vs WinAPI? Which is better from portability point of view? || 1
 
 
|-
 
|-
  +
| Peer Review || 1 || 1 || 1 || 1
| Question || What is the most secure method for interprocess communication? || 1
 
 
|-
 
|-
  +
| Discussions || 1 || 1 || 1 || 1
| Question || What is the fastest method for interprocess communication? || 1
 
 
|-
 
|-
  +
| Presentations by students || 1 || 1 || 1 || 1
| Question || Create simple app for ELF format parsing. || 0
 
 
|-
 
|-
  +
| Written reports || 1 || 1 || 1 || 1
| Question || Create app that shows dependencies between .so and executable file. || 0
 
 
|-
 
|-
  +
| Simulations and role-plays || 1 || 1 || 1 || 1
| Question || Create two apps communicating with each other. At least 2 methods. Compare the speed. || 0
 
 
|-
 
|-
  +
| Experiments || 0 || 1 || 1 || 0
| Question || Create app with joinable and detachable threads. Check the difference. || 0
 
 
|-
 
|-
  +
| Group projects || 0 || 0 || 0 || 1
| Question || Create app that uses fork() and execve() with controlling child process. || 0
 
 
|}
 
|}
  +
== Formative Assessment and Course Activities ==
==== Section 3 ====
 
  +
  +
=== Ongoing performance assessment ===
  +
  +
==== Section 1 ====
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
Line 224: Line 177:
 
! Activity Type !! Content !! Is Graded?
 
! Activity Type !! Content !! Is Graded?
 
|-
 
|-
  +
| after lecture assignments || Define target audience and describe type of market for your product. || 1
| Question || What is GDB? What platforms can be debugged using GDB? || 1
 
 
|-
 
|-
  +
| after lecture assignments || Make 3 cusdev with potential/existing customers of your product. || 1
| Question || Do we have any alternatives for GDB? || 1
 
 
|-
 
|-
  +
| after lecture assignments || Develop your marketing strategy and present it in-class. || 1
| Question || What should we have related to the app to debug it in GDB? || 1
 
|-
 
| Question || Name popular GDB front-ends. Check what front-ends for GDB you already use. || 1
 
|-
 
| Question || What alternatives to GHIDRA do we have for different platforms? || 1
 
|-
 
| Question || Debug simple app using GDB with symbols in runtime. Use breakpoints and watchpoints and step by step debugging. || 0
 
|-
 
| Question || Load coredump and debug it in GDB. || 0
 
|-
 
| Question || Fix few variables in binary file using GHIDRA without source code. || 0
 
 
|}
 
|}
==== Section 4 ====
+
==== Section 2 ====
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
Line 246: Line 189:
 
! Activity Type !! Content !! Is Graded?
 
! Activity Type !! Content !! Is Graded?
 
|-
 
|-
  +
| after lecture assignments || Write a marketing article about your product or technology in the informational style manner. || 1
| Question || Monolithic kernel vs Micro-kernel. What is faster and why? || 1
 
 
|-
 
|-
  +
| after lecture assignments || Create a landing page for your product and connect it to Yandex Metrica or Google Analytics. || 1
| Question || How Linux works on HW without IOMMU? || 1
 
 
|-
 
|-
  +
| after lecture assignments || Create a semantic core for your product and determine the current positions on your landing page. Determine key marketing metrics, including conversion rate, on your landing page. || 1
| Question || Tools required for building Linux Kernel. || 1
 
|-
 
| Question || Name few operations systems bases on Linux and name the difference. || 1
 
|-
 
| Question || Contributing to Open Source software and Kernel. What is the difference? || 0
 
|-
 
| Question || Git usage: commits, email-patches. || 0
 
|-
 
| Question || Git usage: rewriting history. || 0
 
|-
 
| Question || Building Linux Kernel for your own PC. || 0
 
|-
 
| Question || Running new Kernel on your machine. || 0
 
|-
 
| Question || Kernel config file location and editing. || 0
 
 
|}
 
|}
==== Section 5 ====
+
==== Section 3 ====
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
Line 272: Line 201:
 
! Activity Type !! Content !! Is Graded?
 
! Activity Type !! Content !! Is Graded?
 
|-
 
|-
| Question || What is the difference between BIOS and UEFI? What we prefer in nowadays? || 1
+
| after lecture assignments || Create the sales funnel of your product and present it in-class. || 1
 
|-
 
|-
| Question || What is the usage for secure boot? What requirements should be met for this? || 1
+
| after lecture assignments || Create the budget for your marketing and sales activities and approve it with management. || 1
 
|-
 
|-
  +
| in-class exercise || “Sell me the pen” exercise. || 1
| Question || Why in x86 we do not have device tree? And why is it required for ARM platforms? || 1
 
|-
 
| Question || What is the purpose of having initramfs? Can we skip that stage? || 1
 
|-
 
| Question || Build U-boot || 0
 
|-
 
| Question || Rebuilding initramfs || 0
 
|-
 
| Question || Changing boot order of your PC. Creating simple systemd service. || 0
 
|}
 
==== Section 6 ====
 
{| class="wikitable"
 
|+
 
|-
 
! Activity Type !! Content !! Is Graded?
 
|-
 
| Question || How kernel module can be compiled and used inside or outside Linux Kernel Image? || 1
 
|-
 
| Question || What is the purpose of System.map file for correct Linux Kernel functionality? || 1
 
|-
 
| Question || What is the real requirement to have virtual filesystems in Linux Kernel? || 1
 
|-
 
| Question || Name few real and virtual filesystems. Briefly describe usage in real life. || 1
 
|-
 
| Question || Develop and deploy simple Kernel Module outside kernel image. Dynamic Loading. || 0
 
|-
 
| Question || Develop and deploy simple Kernel Module inside kernel image. || 0
 
|-
 
| Question || SysFS/ DebugFS / ProcFS/ TmpFS usage || 0
 
|}
 
==== Section 7 ====
 
{| class="wikitable"
 
|+
 
|-
 
! Activity Type !! Content !! Is Graded?
 
|-
 
| Question || Why do we need virtual memory? || 1
 
|-
 
| Question || Why does Linux Kernel maps itself to every process address space? || 1
 
|-
 
| Question || How does page fault handler work? || 1
 
|-
 
| Question || What is segmentation fault and how it handles in Linux Kernel? || 1
 
|-
 
| Question || Create simple allocator (myalloc/myfree). || 0
 
|-
 
| Question || Create benchmark for simple allocator. || 0
 
|}
 
==== Section 8 ====
 
{| class="wikitable"
 
|+
 
|-
 
! Activity Type !! Content !! Is Graded?
 
|-
 
| Question || What is the difference between thread and process? || 1
 
|-
 
| Question || Can process exist without any threads? || 1
 
|-
 
| Question || What scheduling methods does Linux Kernel has? || 1
 
|-
 
| Question || What make `realtime` OS really realtime? || 1
 
|-
 
| Question || What is the difference between cooperative and preemptive multitasking? || 1
 
|-
 
| Question || Implement your own threads inside app. || 0
 
|-
 
| Question || Implement simple scheduler for your threading app. || 0
 
|-
 
| Question || Implement timer for your app without using `real` timers. || 0
 
|}
 
==== Section 9 ====
 
{| class="wikitable"
 
|+
 
|-
 
! Activity Type !! Content !! Is Graded?
 
|-
 
| Question || Why do we need locking structures? || 1
 
|-
 
| Question || Where is mutex preferred on spinlock? || 1
 
|-
 
| Question || Where is spinlock preferred on mutex? || 1
 
|-
 
| Question || Can we just write locking-free code? || 1
 
|-
 
| Question || What is deadlock and how it could be handled? || 1
 
|-
 
| Question || Implement simple locking structures. || 0
 
|-
 
| Question || Implement Wait-die lock. || 0
 
 
|}
 
|}
  +
==== Section 4 ====
  +
 
=== Final assessment ===
 
=== Final assessment ===
 
'''Section 1'''
 
'''Section 1'''
  +
# For the final assessment, students have to prepare a full project of marketing and sales promotion of their IT product and present it on the exam. The project should contain the next parts:
# Describe basic CPU registers and their purpose.
 
  +
# The idea of your product/service.
# Describe x86 ABI.
 
  +
# Define your market.
# What is context switching and how does it work?
 
  +
# Analise what type of market.
# Name all CPU security rings and describe security levels.
 
  +
# Target segment, who should we talk to?
# Interrupts. Interrupt handler.
 
  +
# What is your main message(s)?
  +
# What should we do to achieve the addressable market?
  +
# Brand promotion, knowledge, interest, coverage, sales etc.
  +
# Media design.
  +
# How should we say it? Creative strategy&content.
  +
# Channel (media) strategy.
  +
# How do we reach them? Evidence on a real case.
  +
# Budget.
  +
# Money for promotion.
  +
# How to close deals. Evidence on a real case.
  +
# Measurement.
  +
# How we control the result. Evidence on a real case.
 
'''Section 2'''
 
'''Section 2'''
  +
# Describe ELF executable format.
 
# Describe how Linux processes could be load from ELF file.
 
# Describe .SO library loading and their layout in memory.
 
# Describe methods of interprocess communication (at least 2).
 
# POSIX. Describe network operations.
 
# POSIX. Describe pthread library.
 
# POSIX. Describe time operations.
 
# Describe select(), poll() methods. Name the difference.
 
# POSIX. Describe filesystem operations.
 
 
'''Section 3'''
 
'''Section 3'''
  +
# GDB. Why do we need to have symbols? Can we debug without them?
 
# GDB. Describe debugging techniques only using coredump.
 
# GDB. Describe usage or breakpoints and watchpoints.
 
# GDB/GDB Server. Remote debugging. Describe how to do that.
 
# GDB. Describe multiarch debugging.
 
# GDB. Describe how to debug multithreaded application.
 
# GDB. Stack trace. Describe usage and how-to.
 
# GHIDRA. Describe usage flow.
 
 
'''Section 4'''
 
'''Section 4'''
  +
# Briefly describe modern OS architecture. (for ex. Linux)
 
# Describe supported HW by Linux Kernel.
 
# Describe contribution process to Linux Kernel.
 
'''Section 5'''
 
# Name popular bootloaders and briefly describe the difference.
 
# Describe all boot sequence starting from pushing START button.
 
# Describe in details the role of initrd/initramfs in booting process.
 
# First userspace process. Describe how it works and why do we need SystemV/system?
 
'''Section 6'''
 
# Describe Linux device and driver model
 
# Real- and Virtual- filesystems. Describe in details.
 
# Name other Linux Kernel subsystems and their usage.
 
'''Section 7'''
 
# Describe how virtual memory maps on physical memory.
 
# Describe in details how TLB works. How TLB increases memory operations?
 
# Describe structure of page table, its location and management from OS.
 
# Describe memory allocation techniques. Describe one of them in details.
 
'''Section 8'''
 
# Describe how threading works.
 
# Describe pthread API usage.
 
# Describe difference between monotomic and realtime clocks.
 
# Describe scheduling strategies. Make a suggestion, which one is preferred for different situations.
 
# Describe difference in memory management between threads and processes.
 
'''Section 9'''
 
# Describe mutex internals.
 
# Describe spin lock internals.
 
# Describe deadlock problem and how it could be handled.
 
# Compare different locking methods and make conclusion of which is faster and why.
 
# Deeply describe wait-die locks.
 
# P.1.2.10 Section 10
 
# Section title: Kernel debugging
 
# Topics covered in this section:
 
# Debugging techniques
 
# DebugFS
 
# Other methods overview (J-Tag etc).
 
# KGDB
 
# What forms of evaluation were used to test students’ performance in this section?
 
# Typical questions for ongoing performance evaluation within this section
 
# Name and briefly describe kernel-debugging techniques.
 
# What debug levels for printk do you know and what is their usage?
 
# What other methods of Kernel debugging techniques do you know?
 
# Why can’t we use regular GDB to debug Linux Kernel?
 
# Typical questions for seminar classes (labs) within this section
 
# Usage of DebugFS for basic debugging
 
# Usage of printk and debug levels.
 
# KGDB usage for Kernel debugging.
 
# Test questions for final assessment in this section
 
# Explain usage of debugFS in modern kernels.
 
# Describe main kernel debugging techniques.
 
# P.1.2.11 Section 11
 
# Section title: HW busses
 
# Topics covered in this section:
 
# GPIO
 
# UART
 
# i2c
 
# spi
 
# pin muxing
 
# DMA
 
# What forms of evaluation were used to test students’ performance in this section?
 
# Typical questions for ongoing performance evaluation within this section
 
# What HW bus type should we prefer for flash memory?
 
# What bus is the fastest?
 
# What should we do if we don’t have enough available pins for our needs?
 
# Can spi devices be connected in parallel? How can we do that?
 
# DMA – overkill technique or our current basic needs? Briefly review advantages and disadvantages of DMA.
 
# Typical questions for seminar classes (labs) within this section
 
# Implement connection to other device using UART. Exchange data.
 
# Note: additional tasks will be given depends on current HW availability.
 
# Test questions for final assessment in this section
 
# Describe i2c bus. Usage of i2c bus.
 
# Describe spi bus. Usage of spi bus.
 
# Describe GPIO subsystem. Usage of GPIO.
 
# Describe pin muxing.
 
# Describe usage of DMA and consider exchange speed with and without DMA.
 
# P.1.2.12 Section 12
 
# Section title: PCI
 
# Topics covered in this section:
 
# PCI Physical parameters
 
# PCI Electrical parameters
 
# PCI Logical model
 
# PCI Configuration
 
# What forms of evaluation were used to test students’ performance in this section?
 
# Typical questions for ongoing performance evaluation within this section
 
# Briefly describe PCI specification.
 
# What is difference between PCI and PCIe?
 
# Name devices that could be connected to PC using PCI bus.
 
# Device tree and PCI. Briefly describe how we can configure them.
 
# Typical questions for seminar classes (labs) within this section
 
# Measure PCI Ex bus speed with different connection types: x1, x2, x4 and x16.
 
# Test questions for final assessment in this section
 
# Describe parameters of PCI bus interface.
 
# Describe usage of PCI bus in modern PC/laptop.
 
# Describe configuration and enumeration of devices on PCI bus.
 
# P.1.2.13 Section 13
 
# Section title: USB
 
# Topics covered in this section:
 
# USB Physical parameters
 
# USB Electrical parameters
 
# USB Logical model
 
# USB Configuration and enumeration
 
# What forms of evaluation were used to test students’ performance in this section?
 
# Typical questions for ongoing performance evaluation within this section
 
# Briefly describe USB specification.
 
# USB/A/B – type C. Describe difference.
 
# What devices could be connected using USB bus?
 
# Why we do not reboot after USB device connection to discover it?
 
# Can we add USB devices to device tree for faster enumeration?
 
# Typical questions for seminar classes (labs) within this section
 
# Implement simple USB device driver for keyboard/flash card/mouse etc.
 
# Test questions for final assessment in this section
 
# Describe parameters of USB interface.
 
# Describe usage of USB in modern PC/laptop.
 
# Describe configuration and enumeration of devices on USB.
 
# P.1.2.14 Section 14
 
# Section title: Graphical Stack overview
 
# Topics covered in this section:
 
# Framebuffer
 
# X11
 
# Wayland
 
# UI interfaces: GTK/Qt
 
# What forms of evaluation were used to test students’ performance in this section?
 
# Typical questions for ongoing performance evaluation within this section
 
# Linux- and Windows- comparison of graphical stack.
 
# Can we access framebuffer when it is double- or triple- buffered?
 
# What part of OS owns framebuffer?
 
# How X11 knows when to redraw on screen info?
 
# Can we use X11 and Wayland together?
 
# Typical questions for seminar classes (labs) within this section
 
# Create app with direct access to framebuffer.
 
# Use X11 forwarding using SSH tunnel.
 
# Create simple GTK/Qt application.
 
# Test questions for final assessment in this section
 
# Describe the usage of framebuffer.
 
# Describe the purpose of X11 system.
 
# Describe the purpose and advantages of Wayland framework.
 
   
 
=== The retake exam ===
 
=== The retake exam ===
 
'''Section 1'''
 
'''Section 1'''
  +
# .3 The retake exam.
 
  +
# For the retake, students have to implement a product and follow the guidelines of the course. 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 2'''
   
Line 537: Line 244:
   
 
'''Section 4'''
 
'''Section 4'''
 
'''Section 5'''
 
 
'''Section 6'''
 
 
'''Section 7'''
 
 
'''Section 8'''
 
 
'''Section 9'''
 

Revision as of 13:37, 21 September 2022

Business Development, Sales and Marketing in IT Industry

  • Course name: Business Development, Sales and Marketing in IT Industry
  • Code discipline: S22
  • Subject area: all around marketing and sales in IT industry.

Short Description

This course contains two important for successful company parts: marketing and sales. These are the parts that are linked with each other - it is very difficult to sell without marketing support and it is very difficult to achieve results with marketing efforts only. Marketing part, starting from defining things like developing marketing strategy for the companies, finally offers practical tools of digital marketing. We will explore new digital reality and its impact on IT business. We will learn success stories of real businesses and how companies are adapting to the new changing landscape. The second part of the course covers important things for every company's success – the sales process. Understand how to attract customers in negotiations, how to “get to yes” getting great deals, how to control the sales funnel – you will get the understanding how it works and try it in practice.

Prerequisites

Prerequisite subjects

Prerequisite topics

  • Basic IT industry knowledge

Course Topics

Course Sections and Topics
Section Topics within the section
Marketing Strategy
  1. Types of markets
  2. Product-centric marketing
  3. Customer-centric marketing
  4. Developing Marketing Strategy
Marketing tools
  1. Brand&Presentation
  2. Analytics
  3. Content
  4. SMM
  5. Context advertising
  6. E-mail marketing
Sales
  1. CRM systems
  2. B2B
  3. B2C
  4. Negotiations
Final Project Presentation
  1. Presentation of marketing&sales strategy and tactics for startup

Intended Learning Outcomes (ILOs)

What is the main purpose of this course?

This course aims to give students the skills of developing a winning marketing strategy for a startup, as well as the skills to implement marketing strategy using real digital-marketing tools and sales tactics for a startup product.

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 ...

  • Develop naming, presentation, and product offer
  • Use digital marketing tools
  • Use CRM
  • Sell its product

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 ...

  • Skills in developing naming, presentations, product offerings
  • Skills of context advertising
  • Skills of SMM doing
  • Skills of content marketing
  • Skills of e-mail marketing

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 ...

  • Skills how to find the right addressable market for its product
  • Skills of web analytics
  • Skills of CRM using
  • Sales skills to various types of clients

Grading

Course grading range

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

Course activities and grading breakdown

Activity Type Percentage of the overall course grade
Seminar classes 40
Interim performance assessment on the results of lecture assignments and its presentations 30
Final presentation 30

Recommendations for students on how to succeed in the course

The student is recommended the following scheme of preparation for classes:
Marketing and sales are much more about hypothesis testing and math, than creativity. Therefore, it is so important for students to try the acquired knowledge in real practice, doing small tasks after each lecture.
Finally, we will try to assemble a working strategy for a startup from these tasks.
Moreover:
Participation is important. Showing up is the key to success in this course.
Reading the recommended literature is optional, and will give you a deeper understanding of the material.

Resources, literature and reference materials

Open access resources

  • Андрей Кравченко. Неидеальная стратегия для идеальной компании.

Closed access resources

  • Viktor Pelevin. Empire V.
  • W. Chan Kim, Renee Mauborgne. Blue Ocean Strategy.
  • Eric ries. Lean startup.
  • Simon Kingsnorth. Digital Marketing Strategy.

Software and tools used within the course

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
Problem-based learning (students learn by solving open-ended problems without a strictly-defined solution) 1 1 1 1
Project-based learning (students work on a project) 1 1 1 1
Business game (learn by playing a game that incorporates the principles of the material covered within the course). 1 1 1 1
Task-based learning 1 1 1 1
Activities within each section
Learning Activities Section 1 Section 2 Section 3 Section 4
Lectures 1 1 1 0
Interactive Lectures 1 1 1 0
Lab exercises 1 1 1 0
Cases studies 1 1 1 0
Individual Projects 1 1 1 1
Peer Review 1 1 1 1
Discussions 1 1 1 1
Presentations by students 1 1 1 1
Written reports 1 1 1 1
Simulations and role-plays 1 1 1 1
Experiments 0 1 1 0
Group projects 0 0 0 1

Formative Assessment and Course Activities

Ongoing performance assessment

Section 1

Activity Type Content Is Graded?
after lecture assignments Define target audience and describe type of market for your product. 1
after lecture assignments Make 3 cusdev with potential/existing customers of your product. 1
after lecture assignments Develop your marketing strategy and present it in-class. 1

Section 2

Activity Type Content Is Graded?
after lecture assignments Write a marketing article about your product or technology in the informational style manner. 1
after lecture assignments Create a landing page for your product and connect it to Yandex Metrica or Google Analytics. 1
after lecture assignments Create a semantic core for your product and determine the current positions on your landing page. Determine key marketing metrics, including conversion rate, on your landing page. 1

Section 3

Activity Type Content Is Graded?
after lecture assignments Create the sales funnel of your product and present it in-class. 1
after lecture assignments Create the budget for your marketing and sales activities and approve it with management. 1
in-class exercise “Sell me the pen” exercise. 1

Section 4

Final assessment

Section 1

  1. For the final assessment, students have to prepare a full project of marketing and sales promotion of their IT product and present it on the exam. The project should contain the next parts:
  2. The idea of your product/service.
  3. Define your market.
  4. Analise what type of market.
  5. Target segment, who should we talk to?
  6. What is your main message(s)?
  7. What should we do to achieve the addressable market?
  8. Brand promotion, knowledge, interest, coverage, sales etc.
  9. Media design.
  10. How should we say it? Creative strategy&content.
  11. Channel (media) strategy.
  12. How do we reach them? Evidence on a real case.
  13. Budget.
  14. Money for promotion.
  15. How to close deals. Evidence on a real case.
  16. Measurement.
  17. How we control the result. Evidence on a real case.

Section 2

Section 3

Section 4


The retake exam

Section 1

  1. .3 The retake exam.
  2. For the retake, students have to implement a product and follow the guidelines of the course. 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