Syllabus of ALL courses in a Software Engineering Bachelors/Undergrad Degree
Before I started my undergrad in software engineering, I didn’t have the slightest idea of what courses I would be offered. I assumed they would be called something like “Java”, “C++” or “networking”. To my surprise, there was not a single course that contained the name of a programming language.
If you, like me, are curious about what courses we take or are generally interested to know what courses a SE degree offers this article is for you. I have completed my 4 years of Bachelor’s in Software Engineering and I can show you what I went through over the years. In this article I will list what courses that I took and what was the syllabus of each course.
This article will also be helpful for those who are thinking of becoming self taught programmers. Because you’ll-
- know exactly what courses we take
- know about courses/topics you haven’t heard before
- know what courses to avoid so that you can achieve your goals faster
Contents
1st Semester
1.1 Structured Programming
I learned my first programming language “C” in this course. This was one of the most important courses in my 4 years at IIT. It laid the foundation of my programming skills for the years to come.
Course outline
- Fundamentals of C programming
- Introducing C’s Program Control Statements
- Data types, Variables and Expressions
- Exploring Arrays and Strings
- Understanding Pointers and Functions
- Console and File I/O
- Structures and Unions.
1.2 Discrete Mathematics
Course outline
- The Foundations: Logic and Proofs: propositional logic, applications of propositional logic, propositional equivalences, predicates and quantifiers, nested quantifiers, rules of inference, introduction to proofs
- Basic Structures: Sets, Functions, Sequences, Sums, and Matrices
- Number Theory: The division algorithm, divisibility and the euclidean algorithm, prime numbers, congruence, applications of congruence
- Induction and Recursion: Mathematical Induction, Recursive Definitions and Structural Induction, Program Correctness
- Counting: The addition and multiplication rules, The principle of Inclusion-Exclusion, The pigeon-hole principle, permutations, combinations, Generalized Permutations and Combinations, Generating Permutations and Combinations
- Relations and Functions: Symmetry, transitivity, reflexivity, equivalence classes, congruence, closure of relations, partial orderings
- Graphs: Graphs and Graph Models, Graph Terminology and Special Types of Graphs, Representing Graphs and Graph Isomorphism, Connectivity, Euler and Hamilton Paths
- Trees: Introduction to Trees, Tree Traversal, Spanning Trees.
1.3 Probability & Statistics for Engineers-I
Course outline
- Introduction to Statistics: Concept of Data and Variables, Data Collection and Descriptive Statistics, Inferential Statistics, Populations and Samples
- Descriptive Statistics: Frequency Tables and Graphs, Relative Frequency Tables and Graphs, Grouped Data, Histograms, Ogives, Stem and Leaf Plots, Sample Mean, Sample Median, Sample Mode, Sample Variance and Standard Deviation, Sample Percentiles and Box Plots, Chebyshev’s Inequality, Normal Data Sets, Paired Data Set and Sample Correlation Coefficient
- Elements of Probability: Basic Terminology in Probability, Sample Space and Events, Venn Diagrams and Algebra of Events, Axioms of Probability, Conditional Probability, Bayes’ Theorem and Independent Events
- Random Variables and Expectation: Random Variables, Types of Random Variables, Jointly Distributed Random Variables, Expectation, Property of Expected Values, Use of Expected Values in Decision Making, Variance, Covariance and Variance of Sums of Random Variables and Moment Generating Functions
- Special Random Variables: Binomial Random Variables, Poisson Random Variables, Uniform Random Variables, Normal Random Variables, Exponential Variables, Gamma Distribution, Chi-Square Distribution, t-Distribution and F-Distribution
- Distributions of Sampling Statistics: Central Limit Theorem, Sampling Distribution for Normal Population, and Sampling from a Finite Population
- Parameter Estimation: Maximum Likelihood Estimators, Interval Estimates, Estimating the difference in Means of Two Normal Population, Approximate Confidence Interval for the Mean, Confidence Interval of the Mean of the Exponential Distribution and Bayes’ Estimator.
1.4 Calculus and Analytical Geometry
Course outline
- Basic Concepts: Real Numbers and Real Lines, Polar Coordinates, Parametric Equations, Functions, Algebra of Functions, Inverse Functions, Quadratic Functions, Shifting Graphs, Trigonometric Functions, Complex Numbers, Inequalities, Infinite Series and Sequences, Taylor Series, Rate of Change and Limit, Rules of Finding Limits, Formal Definition of Limit, Extension of the Limit Concepts, L’Hospitals Rule, Continuity, Tangent Lines
- Differential Calculus: The Derivatives of a Function, Differentiation Rules, Rates of Change, Derivatives of Trigonometric Functions, Chain Rule Differentiation, Implicit Differentiation and Rational Exponents, Related Rates of Change, Extreme Values of Functions, Mean Value Theorem, First Derivative and Second Derivative Tests for Extreme Values, Optimization, Linearization and Differentials and Newton’s Method
- Integral Calculus: Indefinite Integrals, Integration by Substitution, Riemann Sums, Definite Integral, Fundamental Theorem of Calculus, Mean Value Theorem, Substitution in Definite Integrals, Areas between Curves, Finding Volumes by Slicing, Volumes of Solids of Revolution, Cylindrical Shells, Lengths of Plane Curves, Areas of Surfaces of Revolution, Moments and Center of Mass, Fluid Pressures and Forces, Integration by Parts, Improper Integrals, Multiple Integrals and Line Integrals
- Linear Algebra and Vector Calculus: Matrices, Operation on Matrices, Inverse of a Matrix, Rank of Matrix, Determinant, Vectors, and Solutions of System of Linear Equations, and Eigenvalue Problems
1.5 Sociology
Ignoring details for this course cause you don’t really need it for SE.
Course outline
- Introducing Sociology
- Sociological Research Methods
- Basic Social Institutions, Marriage
- Social Change and Social Stratification:
- Globalization: Information and Communication Technology
1.6 Introduction to Software Engineering
Course outline
- Introduction to Computers
- Basic Computer Organization
- Processor and Memory
- Secondary Storage Devices
- Input-Output Devices
- Computer Software
- Software and Software Engineering
- Software Process Models
2nd Semester
2.1 Data Structure & Algorithm
Course outline
- Introduction: Data Structures and Complexity of Algorithms, Time Space Tradeoff, Searching Techniques: Linear and Binary Searching
- Sorting and Recursion: - Discussion of Common Sorting Techniques: Insertion Sort, Selection Sort, Bubble Sort, Quick Sort, Merge Sort, Radix Sort
- Factorial and Tower of Hanoi Problem
- Linked Lists: Abstract Data Types, List ADTs, and Linked Lists: Singly, Two Way and Circular Linked Lists
- Stacks and Queues: Stacks and Queues and their Implementation Strategies
- Prefix, Infix and Postfix Expressions, their Transformation and Evaluation Algorithms
- Hashing: Hash Indices and Hash Functions, Static and Dynamic Hashing, Collisions in Hash Indices and Collision Resolving Techniques
- Trees: Tree Concepts, Binary Tree, BST, Heaps, Heap Sort, Huffman Encoding Technique, AVL Tree, B Tree and B+ Tree
- Graphs: Graph Terminologies, Representing Graphs, Graph Searching: BFS and DFS, Shortest Path Problems, Minimum Spanning Tree, Minimum Spanning Tree Algorithms, and Topological Sorting
- Problem Solving Strategy Greedy Algorithms, Divide and Conquer Strategy, Dynamic Programming and Backtracking.
2.2 Digital Systems Design
Course outline
- Introduction: Number System, Number Base Conversation, Complements, Signed Number.Arithmetic Operation- Binary, Octal, Hexadecimal Binary Codes e.g. BCD, ASCII, Grey etc.
- Boolean Algebra: Theorems & Properties of Boolean Algebra, Boolean Functions, Canonical and Standard Forms and Simplification.
- Logic Gates: Switching Circuits, Electronic Logic Gates, Gate Symbols, Design and operation of NOT, OR, AND, NOR, NAND, XOR, XNOR Gates. Analysis of Combinational CircuitsAlgebraic Method, Truth Table Method.
- Synthesis of Combinational Logic Circuits: AND-OR NAND Networks, OR-AND and NORu Network, AND-OR-Invert Circuits.
- Combinational Logic Design: Circuits (gate level), Design Hierarchy and procedures. Twolevel and multi-level implementations, Arithmetic operation using gates (add, subtract, multiply), Logic Minimization, K-Map, Unate Covering, Quine McCluskey Method, CAD tools for two level minimization, ESPRESSO Algorithm and other popular (multiplexers, encoders, decoders) modules design.
- Programmable Logic Devices: Technologies, Performance, Classical and Mid-Complexity Architectures (PLDs, CPLDs, FPGAs) and Modern Architectures (SoPC).
- Sequential Logic Design: Latches, Flip-Plops, State Machine Design & Minimization (Mealy and Moore models) and Design Problems.
- Sequential Circuits: Design of Synchronous Counters, Ripple counters, parallel Load counters, Introduction of Registers and shift Register:
- Memory Design: Random Access Memory (RAMS), Static RAMS, Dynamic RAMS, Memory organizations and Read only Memories (ROM)
2.3 Probability and Statistics for Engineers-II
Course outline
- Hypothesis Testing: Tests Concerning the Mean of a Normal Population, Testing the Equality of Means of Two Normal Populations, Hypothesis Tests Concerning the Variance of a Normal Population, Hypothesis Tests in Bernoulli Populations and Tests Concerning the Mean of a Poisson Distribution.
- Regression and Correlation Analysis: Least Squares Estimators of the Regression Parameters, Distribution of the Estimators, Statistical Inference about the Regression Parameters, Coefficient of Determination and Sample Correlation Coefficient, Analysis of Residuals, Transforming to Linearity, Weighted Least Squares, Polynomial Regression, Multiple Linear Regression, Logistic Regression Models for Binary Output Data and Correlation Analysis.
- Analysis of Variance: One-way Analysis of Variance
- Two-Factor Analysis of Variance: Introduction and Parameter Estimation, Testing Hypotheses and Two-way Analysis of Variance with Interaction Problems.
- Goodness of Fit Tests and Categorical Data Analysis: Goodness of Fit Tests when All Parameters are Specified, Goodness of Fit Tests when All Parameters are Unspecified, Tests of Independence in Contingency Tables, Tests of Independence in Contingency Tables Having Fixed Marginal Totals and Kolmogorov-Smirnov Goodness of Fit Test for Continuous Data.
- Nonparametric Hypothesis Tests: Sign Test, Signed Ranked Test, Two-Sample Problem and Runs Tests for Randomness.
- Quality Control: Control Charts for Average Values, The X-Control Chart, S-Control Charts, and Control Charts for the Fraction Defective, Control Charts for Number of Defects and Other Control Charts for Detecting Changes in the Population Mean.
2.4 Ordinary Differential Equations
Course outline
- Differential Equations and Mathematical Modeling
- Initial Value Problem
- Separable Differential Equations
- Exact Differential Equations
- Linear Differential Equations
- Bernoulli Equation
- Homogeneous Linear Equations of Second Order
- Second Order Homogeneous Equations with Constant Coefficients
- Euler-Cauchy Equation
- Existence and Uniqueness Theory
- Non-homogeneous Equations
- Solution by Undetermined Coefficients
- Solution by Variation of Parameters
- Higher-Order Linear Differential Equations
- Higher-Order Homogeneous Equations with Constant Coefficients
- and Higher-Order Non-homogeneous Equations
- Vectors, Matrices and Eigenvalues
- Homogeneous Systems with Constant Coefficients
- Critical Points
- Criteria for Critical Points
- Stability
- Qualitative Methods for Nonlinear Systems
- Non-homogenous Linear Systems
- Laplace Transform
- Inverse Transform
- Transforms of Derivatives and Integrals
- Differentiation and Integration of Transforms
- Convolution and Partial Fractions
- System of Differential Equations.
2.5 Theory of Computing
Course outline
- Brief Review of mathematical background: Binary relations, digraph, string, languages, proofs, inductive definitions
- Finite automata and regular expressions: Deterministic and non-deterministic finite automata, regular expressions and regular sets, Kleene’s Theorem
- Properties of regular sets: pumping lemma, closure properties, decision algorithms
- Context Free grammar and languages: Context-free grammars, regular grammars
- Simplified forms and normal forms: useful symbols, productions, unit productions, Chomsky normal form
- Pushdown automata: pushdown automaton, equivalence between pushdown automata and context-free languages
- Turing machine: introduction to Turing machines
2.6 Object-Oriented Concepts-I
Course outline
- Introduction to Object Oriented Concepts – Procedural vs Object Oriented (OO) Programming
- What is an Object – Object Data and Behavior,
- What is a Class – Attributes, Methods and Messages, Using UML to model a Class Diagram, Encapsulation and Data Hiding: Interfaces and Implementations, Inheritance: Superclasses and Subclasses, Abstraction and Is-a Relationships, Polymorphism, Composition: Abstraction and Has-a Relationships
- How to think in terms of Objects – Interface vs Implementation, Abstract thinking when designing Interfaces and Giving the user minimal Interface possible Object Oriented concepts in detail – Constructors: Default constructor, When is a constructor called, Using multiple constructors and The design of constructors, Error handling and The concept of scope
- The Anatomy of a Class – The Name, Comments, Attributes, Constructors, Accessors, Public Interface methods and Private implementation methods
- Class Design Guidelines – Modeling Real World Systems, Identifying Public Interfaces, Designing Robust Constructors, Designing Error Handling to a Class, Documenting a Class and Using Comments, Designing with Reuse, Extensibility, Maintainability in Mind and Using Object Persistence
- Designing with Objects – Proper Analysis, Statement of Work, Requirements Collection, Prototype of User Interface, Identifying the Classes, Determining the responsibilities of Each Class, Class Collaboration, Class Model to Describe the System
- Mastering Inheritance – Reusing Objects, Generalization and Specialization, How Inheritance weakens Encapsulation
- Frameworks and Reuse – When should we Reuse, Frameworks, Contract: Abstract Classes and Interfaces. Programming lessons - Introduction to Java – Java Virtual Machine (JVM) and Java Runtime (JRE), Java Development Kit (JDK), Integrated Development Environment (IDE) for Java, Java installation, Hello World! Program, compiling and running Java program, using Java classpath and JVM Architecture
- Java syntax – Package, Import, Class, Fields, Methods, Constructors, Primitive data types, Strings and literal, Wrapper class, Nonexistence type: null. Object Oriented Programming (OOP) - The students will implement each of the object oriented concepts which are discussed in the class.
- Java features to support practical OOP – String Operations: String creations and operations, immutability property of String, String comparison and searching, String buffers and builders
- Java I/O: Streams, Input and Output Stream, File, Path, Directory and tree
- Exception handling: try and catch, checked exception vs unchecked exceptions, throw and throws, Common exception and User defined exceptions
- Logger and Debugging: Logger, Log levels, Formatters and Filters, Logger Handlers and Manager, Configuration, Introduction to Debugging and Debugging Workflow.
3rd Semester
3.1 Combinatorial Optimization
Course outline
- Introduction - Algorithms, Analyzing & Designing Algorithms, Correctness of Algorithms
- Greedy Algorithms - Introduction to Greedy Algorithms, Greedy Choice Property, Greedy vs. Dynamic Programming, Fractional Knapsack Problem, Activity Selection Problem, Huffman Encoding, Task Scheduling Problem, Coin Changing Problem, Kruskal’s and Prim’s Minimum Spanning Tree Algorithms
- Divide and Conquer Algorithms - Introduction to Divide and Conquer Design Technique, Quick Sort, Merge Sort, Proof of Correctness, and Run Time Analysis Dynamic Programming - Introduction to Dynamic Programming Technique, Principle of Optimality, Optimal Substructure Property, Assembly Line Scheduling, Matrix Chain Multiplication, LCS, Viterbi Algorithm, Bitonic Euclidean Traveling Salesperson Problem and Runtime Analysis
- Graph Searching and Shortest Path Problems - Breadth First Search, Depth First Search, Flow Networks, Single Source and All Pair Shortest Path Algorithms
- Linear Programming - Overview of Linear Programming, Formulating Problem as Linear Programs, Simplex Algorithm and Integer Linear Programming
- Selected Topics - Computational Geometry, Number Theoretic and String Matching Algorithms
- NP Completeness and Approximation Algorithms - NP Completeness, Polynomial Time Verification, NP Completeness and Reducibility, NP Complete Problems and Approximation Algorithms.
3.2 Computer Architecture
Course outline
- Introduction: Function and structure of a computer, Functional components of a computer, Interconnection of components, Performance of a computer
- Number representation and arithmetic: Binary, octal, and hexadecimal numbers, One’s and two’s complements and other representations, Addition and subtraction
- Digital logic and integrated circuits: Boolean algebra and truth tables, Boolean functions (Gates, Functions, Simplification), Integrated circuits ( Combinational circuits - adders, shifters, decoders, multiplexers and ROM’s, Flip-flops, Sequential circuits - registers, counters and RAM)
- Representation of Instructions: Machine instructions, Operands, Addressing modes, Instruction formats, Instruction sets, Instruction set architectures - CISC and RISC architectures
- Introduction to Assembly Language: Programming with Assembly language, The assembly process, Linking and loading, Register-level debugging, Processing Unit: Organization of a processor - Registers, ALU and Control unit, Data path in a CPU, Instruction cycle, Organization of a control unit - Operations of a control unit, Hardwired control unit, Micro-programmed control unit
- Memory Subsystem: Semiconductor memories, Memory cells - SRAM and DRAM cells, Internal Organization of a memory chip, Organization of a memory unit, Error correction memories, Interleaved memories, Cache memory unit - Concept of cache memory, Mapping methods, Organization of a cache memory unit, Fetch and write mechanisms, Memory management unit - Concept of virtual memory, Address translation, Hardware support for memory management
- Input/Output Subsystem: Access of I/O devices, I/O ports, I/O control mechanisms - Program controlled I/O, Interrupt controlled I/O, and DMA controlled I/O, I/O interfaces - Serial port, Parallel port, PCI bus, SCSI bus, USB bus, Firewall and InfiniBand, I/O peripherals - Input devices, Output devices, Secondary storage devices
- Multiprocessing Systems: Shared memory multiprocessor, Message-passing multiprocessor, Hardware multithreading
3.3 Data Communication and Networking
Course outline
- Introduction: Overview of Data communication, networking and network models
- Physical Layer and Media: Data and Signal, Digital Transmission, Analog Transmission, Transmission Media
- Data Link Layer: Error detection and Correction, Flow and error control, Medium access control protocols (ALOHA, CSMA/CD, CSMA/CA), Channelization (FDMA, TDMA, CDMA) Ethernet, Wireless LANs
- Network Layer: Logical Addressing.
3.4 Numerical Analysis for Engineers
Course outline
- Introductory concepts and calculus review
- ‘C’ programming
- the sources and propagation of errors
- root finding for nonlinear equations
- solution of system of linear equations
- interpolation and approximation theory
- numerical integration and differentiation.
3.5 Software Project Lab-I
Course outline
Each of the students should complete the software project separately. They will be marked based on their individual software. Students will be encouraged to develop software that requires significant “problem solving” effort. The project should be sufficiently large and the size of the project will mostly depend on “problem solving” effort. Besides, students must showcase the skills they have acquired from their so far completed courses.
3.6 Object Oriented Concepts-II
Course outline
- Object Oriented Concepts: Review of Object Oriented Concept - Object Data, Object Behaviors, Class, Attributes, Methods, Encapsulation and Data Hiding: Is-A relationship, Polymorphism, Compositions: Abstractions and Has-A Relationship
- Mastering Composition and Building Objects – Representing Composition with UML, Composition Relationships, Building in Phases, Types of Composition: Aggregation and Associations, Avoiding Dependencies and Cardinality
- Details of Creating Object Models with UML – Class Diagram, Attributes and Methods, Access Designations, Inheritance, Interfaces, Composition: Aggregations and Associations, and Cardinality
- Objects and Portable Data - Portable Data, The Extensible Markup Language (XML)
- Objects and Client/Server Applications – Client/Server Approaches, Proprietary Approaches and Nonproprietary Approaches
- Principal, Interface Segregation Principle and Dependency Inversion Principle
- Introduction to Component Based Design, Design Patterns and Code Smells.
- Programming lessons: Generics: Wildcard, Generic class definitions, Generic method definitions, Using generics
- Collection Framework: Collection interfaces, List and SortedList, Map and SortedMap, Navigable Map, Set and Sorted Set, Navigable Set, Queue and DeQueue, Stack, hashCode() and equals(), Comparator and Comparable
- Reflection: Exception Handling and Reflections and Dynamic Programming
- Multi-Threaded Programming: Overview of Thread, Java Thread Model, Creating and Running Thread, Thread Pools, Thread Synchronization, wait and notify, join and sleep and The concurrency API
- User Interface: Swing, Components, Container, Events, Layouts and SwingWorker
- Serialization: Serializable interface, Writing and Reading an Object, Handling Exceptions, Customized Serialization and Controlling Serialization
- Socket Programming: Clients and Servers, Ports, Addresses and Protocols, Communication using I/O, Servers, The ServerSocket Class, The URL lass and URLConnction Class
- Java Servlet Programming: Introduction To Servlet, Servlet Life cycle, HttpServlet, HttpRequest, HttpResponse, RequestDispatcher, HttpSession and ServletContext, Servlet Configuration, Cookies, Servlet Filters and Http Headers and MIME types
- The Java Beans AOI: Introspector, PropertyDescriptor, EventSetDescriptor and MethodDescriptor.
4th Semester
4.1 Operating Systems and System Programming
Course outline
- Introduction: What is an operating system?
- History of operating system
- Operating system concepts
- Operating system structure
- Processes and Threads
- Processes Threads Interprocess communication
- Scheduling Classical IPC problems
- Memory Management
- No memory abstraction
- Virtual memory
- Page replacement algorithms
- Design issues for paging systems
- File Systems: Files, Directories, File system management
- Input / Ouptut: Principles of I/O hardware, Principles of I/O software
- Disks, Clocks, Thin clients
- Deadlocks Resources Detection, Recovery, Avoidance, Prevention
- Virtualization and Cloud
4.2 Business Psychology
Course outline
- Fundamentals: Definition of Psychology, Subfields of Psychology, Major Perspectives of Psychology, Psychology in Business
- Job Analysis: Job-oriented Approach, Person-oriented Approach, Purposes of Job Analysis, Methods of Job Analysis, Job Evaluation
- Assessment Methods for Selection and Placement: Psychological Tests: Ability Test, Personality Test, Intelligence Test, Vocational Interest Test
- Training and Development: Training Need Analysis, Training Designs, Training Methods, Evaluation of Training
- Theories of Employee Motivation: Need Theories, Reinforcement Theory, Expectancy Theory, Goal Setting Theory
- Job Attitude and Emotion: Nature of Job Satisfaction, Assessment of Job Satisfaction, Antecedents of Job Satisfaction, Potential Effects of Job Satisfaction, Organizational Commitment, Emotion at work
- Productive and Counterproductive Employee Behavior: Productive Behavior, Job Performance, Counterproductive Behavior, Withdrawal, Aggression, Mistreatment, Sabotage, and Theft
- Occupational Health Psychology: Occupational Health and Safety, Work Schedules, Occupational Stress, Work-Family Conflict, Burnout, Hawthorne Studies
- Leadership: Approaches to the Understanding of Leadership Trait Approach, Leader Behavior Approach, Contingency Theory, Path-Goal Theory, Leader-Member Exchange (LMX) Theory, Transformational Leadership Theory
- Organizational Development and Theory: Organizational Development Employee Acceptance of Change, Management by Objectives, Survey Feedback, Team Building, T-Group
- Effectiveness of Organizational Development: Organizational Theories, Bureaucracy, Theory X and Theory Y, Open System Theory, Socio-technical System Theory
4.3 Computer Networking
Course outline
- Introduction: Overview of the Internet, Overview of Networking Protocols, Network Edge, Network Core, Protocol Layers / Service Model, General Networking Example
- Application Layer: Principles of Networking Applications, Web and HTTP, FTP, E-mail, DNS
- Transport Layer: Transport Layer Services, Multiplexing and De multiplexing, Connectionless
- Transport: UDP, Principles of Reliable Data Transport, Connection-Oriented Transport: TCP, Principles of Congestion Control, TCP Congestion Control
- Network Layer: Datagram Networks, Inside a Router, Details of the Internet Protocol (IP), IP Sub netting, Routing Algorithms (Link State, Distance Vector), Routing in the Internet (Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Border Gateway Protocol (BGP)).
4.4 Database Management System-I
Course outline
- Introduction to Database Systems: Evolution of file processing systems, role of databases in organizations, core components of a database environment
- Data Modeling: the Entity Relationship Diagram and its symbols and constructs
- The Relational Model and Normalization: relational model, normalization, transformation of an entity-relationship data diagram into a relational model
- SQL - A Standard Navigation Language for Relational Databases
- Overview of Object-Oriented Databases: object-oriented data model, implementation of object persistence using relational databases.
4.5 Business Studies for Engineers
Course outline
- Managers and Entrepreneurs: Management Defined, Role of a Manager, Small Business Management, The Evolution of Management Thought, Organization, Organization Charts, Contrasting Theories of Organization, Organizational Effectiveness, Organizational Cultures, Change, Conflict, and Negotiation in Organization, The Strategic Management Process, Strategic Implementation and Control, Forecasting.
- Accounting Basic: Forms of Business Organization, Types of Activities performed by Business Organization, Financial statements of Business Organization, The Accounting Equation, The Account and Rules of Debit and Credit, The Journal: Recording of Transaction, Adjusting the Accounts, Closing Entries, and Preparing Financial statements from the Work Sheet.
- Analysis and Interpretation of Financial Statement: Objectives of Financial Statement Analysis, Analysis of a Balance Sheet, Analysis of Statement of Income and Retained Earnings, Ratio Analysis: Liquidity Ratios, Equity or Long Term Solvency Ratio, Profitability Test, Market Test.
4.6 Software Requirements Analysis
Course outline
- Review of – The Nature of Software, Software Engineering, The Software Process, Software Engineering Practices
- Generic Software Process Model, Process Assessment and Improvement,
- Prescriptive Process Models, Specialized Process Model and Agile Development.
- Requirements Engineering, Establishing the ground work, Eliciting Requirements, Negotiating Requirements, Validating Requirements, Requirements Analysis, Scenario-Based Modeling
- UML Models, Data Modeling Concept, Class Based Modeling, Requirements Modeling Strategies, FlowOriented Model, Behavioral Model
- Requirements Modeling for WebApps.
5th Semester
5.1 Parallel Computing
Beware before opening this. I didn’t bother arranging this. And we definitely didn’t learn all of this :p
Course outline
Introduction, Parallel Computer Model, the State of Computing, Flynn’s Classification, Parallel/Vectors Computers, and Challenges for Parallel Computing, System Attributes to Performance, Clock Rate and CPI, Performance Factors, System Attributes, MIPS rates, Throughput rate, Implicit and Explicit Parallelism, Multiprocessors and Multicomputers, Shared Memory Multiprocessors, different types of model (UMA, NUMA, COMA), Distributed Memory Multicomputer, Multicomputer Generation, Multivector and SIMD Computers, Vector supercomputer, SIMD supercomputers, PRAM and VLSI Models, Parallel Random Access Machines, Time and Space Complexities, NP Completeness, PRAM models, VLSI complexity model and discussion about related papers, Introduction to Program and Network Properties, Condition of Parallelism, Data and Resource Dependencies, Control Dependence, Resource Dependence, Bernstein’s Conditions, Hardware and Software Parallelism, The role of compiler, Program Partitioning and Scheduling, Grain Sizes and Latencies, Grain Packing and Scheduling, Static Multiprocessor Scheduling, Node duplication, Program Flow Mechanisms, Control Flow versus Data Flaw, Demand Driven Mechanisms, System Interconnect Architectures, Network Properties and Routing, Node Degree and Network Diameter, Bisection Width, Data Routing Function (Permutations, Perfect Shuffle and Exchange, Hypercube Routing Functions, Broadcast and Multi cast), Network Performance, Related Paper Studies, Static connection Networks (Linear array, Ring and Chordal Ring, Barrel Shifter, Tree and Star, Mesh and Torus, Systolic Array, Hypercube, Cube Connected Cycles), Network Throughput, Dynamic Connection Networks, Principles of Scalable Performance, Performance Metrics and Measures, Parallelism Profile in Programs, Degree of Parallelism, Average Parallelism, Available Parallelism, Asymptotic Speedup, Harmonic Mean Performance, Arithmetic Mean Performance, Geometric mean Performance, harmonic Mean Performance, Harmonic Mean Speedup, Amdahl’s Law, System Efficiency, Quality of Parallelism, Scalability of Parallel Algorithms, and Speedup Performance Laws, Processors and Memory Hierarchy: Advanced processor Technology, Design Space of Processors, Instruction Pipelines, Processors and Coprocessors, Superscalar and Vector Processors, Virtual Memory Technology, Pipelining and Superscalar Techniques: Linear Pipeline Processors, Asynchronous and Synchronous Models, Speedup Efficiency and Throughput, Nonlinear Pipeline Processors, Reservation and Latency Analysis, Collision Free Scheduling, state diagram, greedy cycles, Pipeline Schedule Optimization, Pipeline Throughput, and Instruction Pipeline Design, Branch Handling Techniques, Effects of Branch, Related Paper discussion, Multiprocessors and Multicomputer: Hierarchical Bus Systems, Crossbar Switch and Multi port Memory, Hot spot problem, Cache Coherence and Synchronization Mechanisms, cache coherence problem, process migration, snoopy bus protocols, Directory based protocols, Hardware Synchronizations Mechanisms, Software for Parallel Programming: Object Oriented Model, Functional and Logic Model, Parallel Language and Compilers.
5.2 Web Technology
Course outline
- Introduction To Html, Java Script & CSS
- Server Side Programming: HTTP Server, Application Server, MVC Web Framework, Web Services
- Database Access: Object Relational Mapping, Lambda Expression, Language Integrated Query, Data Reader, Writer
- Web Security: Denial of Service, Buffer Overflow, Cross Site Scripting, Authentication and Access Control
5.3 Business Communications
Course outline
- Communication Concept: The Role of Communication in Business, Importance of Communication Skills, Main Form of Business Communication, Process of Human Communication.
- Fundamentals of Business Writing: Adaptation and the Selection of Words, Construction of Clear Sentences and Paragraphs, Writing for Effect.
- Basic Pattern of Business Messages: Directness in Good News and Neutral Situations, Indirectness in Bad Message, Indirectness in Persuasion Message, Letter and Memorandum, Letter Writing Styles, Pattern Variations in Memorandums and the Email,
- Job Search Activities: Strategies in the Job Search Process, Job search activities, Writing CV, Facing Interviews, Feedback letters for goodwill, Fundamentals of Report Writing: Basics of Report Writing, Report Structure: The Short Forms, Long and Formal Report, Usages of Graphics.
- Other Form of Business Communication: Informal Oral Communication, Technology-Enabled Communication.
5.4 Database Management System-II
Course outline
- Indexing and Hashing: Basic Concepts, Ordered Indices, B+-Tree Index Files, B-Tree Index Files, Static Hashing, Dynamic Hashing, Comparison of Ordered Indexing and Hashing
- Query Processing: Overview, Measures of Query Cost, Selection Operation, Sorting, Join Operation, Evaluation of Expressions
- Query Optimization: Introduction, Transformation of Relational Expressions, Catalog Information for Cost Estimation, Statistical Information for Cost Estimation, Cost-based optimization
- Transactions: Transaction Concept, Transaction State, Concurrent Executions, Serializability
- Concurrency Control: Lock-Based Protocols, Timestamp-Based Protocols
- Recovery System: Failure Classification, Storage Structure, Recovery and Atomicity, Log-Based Recovery, Recovery With Concurrent Transactions
- Data Analysis and Mining: Data Mining, Decision tree, Bayes theory, Randomize tree
- Database System Architectures: Centralized and Client-Server Systems, Server System Architectures, Parallel Systems, Distributed Systems, Network Types
- Parallel Databases: Introduction, I/O Parallelism, Interquery Parallelism, Intraquery Parallelism, Intraoperation Parallelism, Interoperation Parallelism
- Distributed Databases: Heterogeneous and Homogeneous Databases: Distributed Data Storage, Distributed Transactions, Commit Protocols
- Additional should be included: Database Design, Database Tuning Security and Authorization, Multidimensional query.
5.5 Software Project Lab-II
Course outline
Students will create project teams of 3 members each. Number of team members can be varied for special cases, decided by the assigned course manager. All the project teams are required to prepare their Software Requirements Specification (SRS) first, and later develop the project accordingly.
5.6 Design Patterns
Course outline
- Revision of Concepts of OOP, Importance of learning design patterns
- Types of Design Patterns - Structural, Behavioral and Creational Patterns
- Creational Patterns – Singleton, Factory, Factory Method, Abstract Factory, Builder, Prototype and Object Pool
- Behavioral Patterns - Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, Strategy, Template Method, Visitor and Null Object
- Structural Patterns – Adapter, Bridge, Composite, Decorator, Flyweight and Proxy
- Different type of code smells - Inappropriate Naming, Comments, Dead Code, Duplicated code, Primitive Obsession, Large Class, Lazy Class, Alternative Class with Different Interface, Long Method, Long Parameter List, Switch Statements, Speculative Generality, Oddball Solution, Feature Envy, Refused Bequest, Black Sheep and Train Wreck,
- Design Principles (SOLID) - Single responsibility principle, Open Close Principle, Liskov substitution principle, Interface segregation principle, Dependency Inversion principle.
6th Semester
6.1 Distributed Systems
Course outline
- Foundations - Characterization of DS, System Models, Networking and Internetworking, Interprocess Communication, Remote Invocation, Indirect Communication and Operating System Support Middleware - Dist. Objects and Components, Web Services and Peer-to Peer Systems, System services Security, Distributed File Systems and Name Services
- Distributed algorithms - Time and Global States, Coordination and Agreement Shared data, Transactions and Concurrency Control, Distributed Transactions, and Replication, New challenges - Mobile and Ubiquitous Computing.
- Lab: Introduction to Message passing technology and its applications, Sockets Programming, Remote Procedure Calls code implementation, Synchronization assignments, Group Communication code implementation, Distributed mutual exclusion assignment, Implementation of Election Algorithms,
- Implementation of Distributed File system: MapReduce, Spanner
- Distributed Systems Design assignments: Cloud Services and Content Delivery Networks configuration.
6.2 Management Information Systems
Course outline
- Foundation Concepts
- Foundations of Information Systems in Business
- i. Foundation Concepts: Information Systems in Business
- ii. Foundation Concepts: The components of Information Systems
- Competing with Information Technology
- Fundamentals of Strategic Advantage
- Using Information Technology for Strategic Advantage
- Information Technologies
- Computer Hardware
- Computer Software
- Data Resource Management
- Technical Foundations of Database Management
- Managing Data Resources
- Telecommunications and Networks
- The Networked Enterprise
- Telecommunications Network Alternatives
- Business Applications
- Ebusiness Systems
- e-Business Systems
- Functional Business Systems
- Enterprise Business Systems
- Management at Enterprise Level
- Enterprise Resource Planning
- Supply Chain Management
- E-commerce Systems
- e-Commerce Fundamentals
- e-Commerce Applications and Issues *Supporting Decision Making
- Decision Support in Business
- Artificial Intelligence Technologies in Business
- Development Process
- Developing Business / IT Strategies
- Planning Fundamentals
- Implementation Challenges
- Developing Business / IT solutions
- Developing Business Systems
- Implementing Business Systems
- Management Challenges
- Security and Ethical Challenges
- Security, Ethical and Societal Challenges of IT
- Security Management of Information Technology
- Enterprise and Global Management of Information Technology
- Managing Information Technology
- Managing Global IT
6.3 Information Systems Ethics
Course outline
- Introduction to Ethics, Morals, Integrity, Ethical use of Information Technology
- Ethics for IT Workers and IT Users - Trade secret, Whistle blowing, fraud, misrepresentation, bribery, professional code of ethics, IT professional malpractice and Common Ethical issues for IT users,
- Computer and Internet Crime - Exploit, Viruses, Phishing and Types of perpetrators, * Privacy - Information privacy, fair information practices, EU data protection directive, key privacy and anonymity issues
- Freedom of Expression - Right to freedom of expression, obscene speech, hate speech, defamation, controlling access to information on the internet, anonymity on the internet, corporate blogging and pornography
- Intellectual property - Copyright, fair use doctrine, patent, software patents, trade secret and key intellectual property issues, Impact of IT on society, Social networking ethical issues, Ethics for IT organization
6.4 Artificial Intelligence
Course outline
- Intelligent Agents and their Environments - The concept of a Rational Agent, Specifying the Task environment (PEAS description), Different characteristics of environments (Fully vs Partially observable, Static vs Dynamic, Episodic vs Sequential etc.) and Different types of agents (Reflex, Goal-based, Utility-based etc.)
- Search - Formulating a search problem, Uninformed Search strategies: BFS, DFS, DLS, ID-DFS, their working principles, complexities, relative advantages and disadvantages, Informed (heuristic) Search strategies: Greedy Best-first search, A* search: Working principle, Characteristics of heuristics (admissibility and consistency), Proof of A*’s optimality, Local search: Hill Climbing, Searching with non-deterministic actions: AND-OR search trees and Searching with partial observability: Belief state-space search, Adversarial Search - Formulation of a Game tree, The minimax algorithm, Alpha-Beta pruning: Its rationale, working principle and Additional techniques such as Move ordering and Search cut-off
- Probabilistic Reasoning - Bayes’ rule and its uses, Bayesian Network: Building a Bayes-net and making inference from it, Markov Chains and Hidden Markov Models: Transition and Sensor models, Building and HMM, applications of HMM, Inference in temporal models: Filtering, Prediction, Most Likely explanations (Viterbi algorithm), etc. and Particle Filters: basic working principle, Making Decisions - Decision theory and Utility theory: Lottery, Utility functions, Maximum Expected Utility principle, Constraints of Utility (Orderability, Transitivity, etc) and Markov Decision Processes: Policies, Rewards, Optimal policies and the Utility of States, Value Iteration
- Supervised Learning - Basic concepts of classification and supervised learning: Training set, Test set, Overfitting, Underfitting, etc., Decision trees: Basic understanding, Learning a Decision tree through entropy calculation, Nearest Neighbor classifier: Basic working principle, Relative advantages and disadvantages, Naive Bayes classifier: Basic working principle, Calculating classification procedures, Relative advantages and disadvantages, Artificial Neural Network: Basic working principle, Basic structure and calculation of a perceptron, Basics of backpropagation algorithm and Support Vector Machines: Basic working principle
- Unsupervised Learning (Clustering) - Basic concepts and applications of Clustering, Different types of Clustering: Partitional vs. Hierarchical, Exclusive vs Overlapping vs Fuzzy, Complete vs Partial, K-means Clustering: Basic working principle, characteristics, advantages, disadvantages, Agglomerative Hierarchical Clustering: Basic concepts, Representations (Dendrograms and Nested cluster diagrams), Different techniques to define cluster proximity: Single link, Complete link, Group average, Centroid method, their relative advantages and disadvantages and DBSCAN: Basic principle and applications, Classification of points (Core, Border and Noise)
- Reinforcement Learning - Understanding basics of Reinforcement Learning: MDPs, Policies, Rewards, Utilities etc., Passive and Active Reinforcement Learning, Exploration and Exploitation, Adaptive Dynamic Programming, Temporal Difference Learning and Q-Learning.
6.5 Software Testing and Quality Assurance
Course outline
- Introduction – The Psychology and Economics of Software Testing, Software Testing Life Cycle (STLC), Software Testing Terminology and Methodology, V&V Model
- Dynamic Black Box Testing – Boundary Value Analysis, Equivalence Partitioning, State Transition based Testing, Decision Table based Testing, Cause-Effect Graphing based Testing and Error Guessing
- Dynamic White Box Testing – Basis Path Testing, Data Flow Testing and Mutation Testing, Inspections, Walkthroughs, Technical Reviews, Unit Testing, Integration Testing, Function Testing, System Testing, Acceptance Testing, Regression Testing
- Test Management – Test Organization, Test Plan, Test Design and Specifications, Software Metrics, Software Quality, Quality Control and Quality Assurance, Quality Management and Project Management, Software Quality Metrics
- Testing Internet Applications - Security and Performance Testing, Debugging, Test Driven Development (TDD), Behavior Driven Development (BDD).
Tools and Project - The students will be divided into small groups having at most 3 members and a class project will be given to them for preparing a system test case. They must validate the requirements and create Mock UIs during the preparation of test cases. Besides, each of the students will relate their learnings on unit, regression, performance and security testing, debugging, behavior driven development via different tools like JUnit, Selenium, Apache JMeter, Sprajax, Sqlninja, Bugzilla, Cucumber
6.6 Software Design and Analysis
Course outline
Design Concept - The Design Process, Design Concepts, The Design Model
- Architectural Design: Software Architecture, Architectural Genres, Architectural Styles, Architectural Design, Assessing, Alternative Architectural Designs, Architectural Mapping Using Data Flow
- Component-Level Design: What Is a Component, Designing Class-Based Components, Conducting Component-Level Design, Component-Level Design for WebApps, Designing Traditional Components, Component-Based Development
- User Interface Design: The Golden Rules, User Interface Analysis and Design, Interface Analysis, Interface Design Steps, Web App Interface Design, Design Evaluation.
7th Semester
This was the best semester because we go to an internship for six months and get real-life software development experience from the industry.
8th Semester
8.1 Software Project Lab-III
Course outline
Each student can perform a software development or research project. For a research project, a student has to submit a thesis. For a software development project, a student should submit documents having the following: Project proposal, Software Requirements Specification, Software Design Specification, Software Test Plan and User Manual. Besides, each of the students has to give multiple intermediate presentations to report their project progress.
8.2 Computer, Data & Network Security
Course outline
Overview: Network Security Concepts, Security Attacks, Services and Mechanisms
- Classical Encryption techniques: Symmetric Cipher Model, Substitution and Permutation Ciphers, Steganography
- Block Ciphers and Data Encryption Standard: Design principles and modes of operation
- Public-key cryptography: Introduction to number theory, RSA and Diffie-Hellman
- Message Digest: Requirements for cryptographic hash functions, MD5 ,SHA, Message authentication codes, digital signatures
- Key Management and Distribution: Symmetric Key Distribution using Symmetric Encryption, Symmetric Key Distribution using asymmetric Encryption, public key distribution, public key certificates, x.509 certificates
- Network and Internet Security: Transport Layer Security, Wireless LAN security, e-mail security.
8.3 Software Project Management
Course outline
- Introduction to Project management: Historical background and evolution, Terminologies, Software project management objectives
- Scope, focus and basic rules Principles of software project management: Basic PM Skills, SPM framework, elements, stakeholders, boundaries, challenges of SPM Software
- Project planning: Planning objective, project plan, variations, structure of SPM plan, project estimation, estimation methods, models and decision process
- PM organization and scheduling: WBS, types of WBS, functions, activities, tasks, life cycles, phasing and purpose of phasing, building project schedule, network diagrams: PERT, CPM, Bar charts, Gantt charts
- Software project management techniques: Use of methodologies, Managing risks and issues, Managing Quality, Configuration, Change, Crisis, Documentation, Release
- Project monitoring and control: Dimensions of monitoring and control, earned value indicators (BCWS, CV, SV, CPI, SPI), backlog management, dispute and error tracking
- RMMM charts Industry scenarios: Domain analysis, Business case analysis, Dynamicity, Success and failure factors, case studies
8.4 Machine Learning (Elective):
Course outline
Algorithmic models of learning. Learning classifiers, functions, relations, grammars, probabilistic models, value functions, behaviors and programs from experience. Bayesian, maximum a posteriori, and minimum description length frameworks. Parameter estimation, sufficient statistics, decision trees, neural networks, support vector machines, Bayesian networks, bag of words classifiers, N-gram models, Markov and Hidden Markov models, probabilistic relational models, association rules, nearest neighbor classifiers, locally weighted regression, ensemble classifiers., Clustering, Boosting, margin, and complexity, Spectral clustering, Clustering, mixture models, k-means clustering, hierarchical clustering, distributional clustering. Markov models, Hidden Markov models (HMMs).
8.5 Software Metrics (Elective)
Elective Courses
In the last semester, we have the option to choose an elective course. The availability of a course depends on whether a teacher is offering it. In most cases, there isn’t a lot of option. I got to choose software metrics. The other elective courses are as follows:
- Software Metrics
- Machine Learning
- Modeling & Simulation
- Microprocessor and Assembly Language
- Embedded Systems
- Data mining and Warehousing
- Pattern Recognition and Image Processing
Sharing is caring!