AttainU Software Engineering Syllabus
AttainU Software Engineering Syllabus
AttainU Software Engineering Syllabus
Syllabus
Gear Up
Command Line
● File management
● Linux commands
Shallow Dive
Javascript
● Types, operators, statements, objects, functions & classes
● Dom manipulation, HTTP requests & CSS scripting
● jQuery and Lodash
● HTML5 APIs
Web Architecture
● Client-server model
Node
● Introduction to ES6
● The event loop
● Modules & the NPM
● Commonly used Node APIs & modules
Express
● Installation, Express generator, Routing & Static files
● Templates, Middlewares & Database integration
● Authentication & authorization
● Introduction to REST APIs
● REST APIs using Express
Databases
● Introduction to NoSQL databases
● NoSQL vs RDBMS
● MongoDB
○ MongoDB extended JSON
○ Databases & collections
○ Data model & documents
○ Indexes, Aggregations & Transactions
○ Mongoose library
○ Using MongoDB with Express
Javascript
● ES6 - Tools, Destructuring, Arrow functions, Template literals, Classes, Let & Const,
Iterators, Generators & Modules
● Package managers - NPM & Yarn
● Linters - ESlint & JSlint
Data Visualization
● Introduction to visualization
● Introduction to D3
Node
● Node Buffers, Timers & Streams
● Filesystem, TCP & HTTP
● Debugging & Unit Testing
● Character encodings - Unicode
Express
● Installation, Express generator, Routing & Static files
● Templates, Middlewares & Database integration
● Authentication & authorization
● Introduction to REST APIs
● REST APIs using Express
● Search engines (full text)
● Express app deployment
Devops
● Introduction to AWS & Heroku
● Remote login using SSH
● Setting up web server, DB server and HTTPS in Linux
● Basic server security
Databases
● Relation databases vs NoSQL databases
● SQL (using PostgreSQL)
○ Creating and populating a relational database
○ Querying & filtering
○ Grouping & aggregates
○ Subqueries & Joins
○ Index
○ Transactions
○ Introduction to ORM & Sequelize
○ Using Postgresql with Express
Operating Systems
● The role of operating systems
● OS organization - the kernel, device drivers & user space
● Features - Abstraction, multi tasking, security & performance
● Communicating with the Kernel - System calls & privileges
● The process model, context switching & scheduling
● Virtual memory
● I/O fundamentals
Computer Networks
● Reference models
○ Physical layer, data-link layer, network layer, transport layer & the application
layer
○ TCP/IP reference model
○ OSI reference model
● Protocols
○ TCP/IP
○ DNS, FTP, SMTP & POP, HTTP, SCTP
○ IPV4 & IPV6
● Network examples (Internet, 802.100 & 4G mobile networks)
● Linux networking tools
● Network security
Computer Architecture
● Number representation (binary, octa and hexa)
● The CPU
● Memory
● Peripheral systems
● "Small" to "Big" systems and SMP
● Programming languages
○ Assembly and linking
○ Compiled & interpreted programs
○ Concept of dynamic linking
○ Building of a Linux executable
System Design
● OOP & Design patterns
● SOLID, KISS & YAGNI
Capstone Project