Friday, November 23, 2018

Paradigm of Computer science Courses



Paradigm of Computer Science Courses

  • Principles of Computer Science
  • Fundamentals of Programming Languages
  • Scientific Computation I & II
  • Theoretical Foundation of Computer Science
  • Formal Language and Automata
  • Computer Systems and Architecture
  • Microprocessors and Communication Circuits
  • Operating Systems
  • File Structures
  • Computer Networks
  • Data Communications
  • Compilers
  • Systems Simulations
  • Algorithms
  • Data Structure and Databases
  • Data Mining
  • Artificial Intelligence
  • Distributed Computing
  • Object-Oriented Programming and C++

Computer Fundamentals

  • Applications
  • Generations
  • Types and Classification
  • Components
  • CPU (Central Processing Unit)
  • Input Devices
  • Output Devices
  • Memory and Memory Units
  • Motherboard
  • Ports
  • Operating System
  • Hardware
  • Software
  • Number System
  • Data and Information
  • Networking
  • Internet and Intranet
  • Programming Languages
  • Multimedia
  • Security

Fundamentals of Programming languages

  • Inductive Definitions
  • Levels of Syntax
  • Binding and Scope
  • Static and Dynamic Semantics
  • Functional Core Language
  • Recursion
  • Iteration
  • Fixed Points
  • Products and Records
  • Sums and Variants
  • Polymorphism
  • Data Abstraction
  • Recursive Types
  • Subtyping
  • Programming Languages; BASIC, Pascal

Scientific Computation

  • Computational Problem solving
  • Programming Languages; FORTRAN, C
  • Numerical Software Packages
  • Methods of Random number generators
  • Interval Computation
  • Some problems in Computational physics
  • Some problems in Computational Chemistry
  • Soft Computing
  • Neural Networks

Theoretical Foundations of CS

  • Mathematical Background
  • Automata and grammars
  • Solvable and unsolvable problems
  • The Complexity of computing
  • Formal Semantics
  • Proving program properties
  • Nondeterminism and parallel computing

Formal Language and Automata

  • Mathematical preliminaries
  • Proof techniques
  • Finite Automata and Regular Languages
  • Context-Free Languages
  • Turing Machines and the Church-Turing Thesis
  • Decidable and Undecidable Languages
  • Programming Languages; Prolog

Computer Architecture

  • Design of a basic computer
  • Design concepts of Processors
  • Design of channels and controllers
  • Interconnections
  • Memory structures and design
  • Memory management
  • Cache memory systems
  • Firmware design
  • Reliability
  • Testing and fault tolerance
  • CISC computers
  • RISC computers
  • Computer interfacing
  • Design of network interface cards
  • Examples of computer architecture

Operating Systems

  • Types of operating systems
  • Operating Systems structures
  • System components and services
  • Virtual machines
  • Process management
  • CPU scheduling
  • Scheduling concepts
  • performance criteria
  • Scheduling algorithm
  • Memory organization and management
  • Secondary storage management
  • Disk scheduling
  • Virtual memory

File Organization and processing

  • File design
  • File manipulation
  • Blocking and buffering
  • Single and double buffering
  • Types of storage devices
  • Space and time calculation
  • Sequential file
  • Relative file
  • Indexed sequential file
  • Multiple key file
  • Direct access file
  • External sort/merge algorithms
  • File systems-disk scheduling

Computer Networks

  • Computer Network Types
  • Network LAN Technologies
  • Computer Network Topologies
  • Computer Network Models
  • Computer Network Security
  • Physical Layer Introduction
  • Digital Transmission
  • Analog Transmission
  • Transmission Media
  • Wireless Transmission
  • Multiplexing
  • Network Switching
  • Data-link Layer Introduction
  • Error Detection & Correction
  • Data-link Control & Protocols
  • Network Layer Introduction
  • Network Addressing
  • Network Layer Routing
  • Internetworking
  • Network Layer Protocols
  • Transport Layer Introduction
  • Transmission Control Protocol
  • User Datagram Protocol
  • Application Layer Introduction
  • Client Server Model
  • Application Protocols
  • Network Services

Data Communications

  • Concepts and Terminology
  • Types of data
  • Types of signals
  • Data communication model
  • Data Transmission techniques
  • Information theory
  • Information sources
  • Information measure
  • Data encoding and decoding
  • Transmission media types and characteristics
  • Transmission impairments
  • Analog and digital transmission
  • Multiplexing techniques

Compilers

  • Architecture
  • Phases of Compiler
  • Lexical Analysis
  • Regular Expressions
  • Finite Automata
  • Finite Automata
  • Types of Parsing
  • Top-Down Parser
  • Bottom-Up Parser
  • Error Recovery
  • Semantic Analysis
  • Run-Time Environment
  • Symbol Table
  • Intermediate Code Generation
  • Code Generation
  • Code Optimization

Simulations

  • Concepts & Classification
  • Verification & Validation
  • Discrete System Simulation
  • Continuous Simulation
  • Monte Carlo Simulation
  • Modelling & Simulation - Database

Algorithms

  • The Role of Algorithms in Computing
  • Insertion sort
  • Analyzing and Designing algorithms
  • Growth of Functions
  • Recurrences
  • Probabilistic Analysis and Randomized Algorithms
  • Sorting and Order Statistics
  • Algorithms and Data Structures
  • Advanced Design and Analysis Techniques
  • Greedy Algorithms
  • Advanced Data Structures
  • Graph Algorithms

Data structures

  • Software Engineering Principles
  • Data design and Implementation
  • Abstract Data Type (ADT)
  • Unsorted List and Sorted List
  • Stack and Queue
  • Linked Structures
  • Linked Lists
  • Recursion
  • Binary Search Trees
  • Priority Queues
  • Heaps, Graphs and Sets
  • Sorting and searching algorithms

Databases

  • Introduction to DB System
  • Operational Data
  • Data independence
  • Relational System
  • The architecture of DB System
  • Relational Algebra and Calculus
  • Recovery and concurrence
  • security and integrity
  • SQL Language

Data Mining

  • Data Mining Overview
  • Data Warehouse
  • Data Preprocessing
  • Classification
  • Clustering
  • Prediction
  • Logistic Regression
  • Association Rules

Distributed Computing

  • Parallel and Distributed Architecture
  • Parallel Algorithm design
  • Message-passing Programming
  • Sharing-memory Programming
  • Performance analysis
  • Applications

Object Oriented Programming

  • Structured Programming
  • Concepts of object-oriented programming
  • Classes and Objects
  • Interfaces
  • Dynamic dispatch/message passing
  • Class-based versus prototype-based
  • Encapsulation
  • Composition, inheritance, and delegation
  • Polymorphism
  • Open recursion
  • Programming Languages; C++

Artificial Intelligence

  • Intelligent Systems
  • Research Areas
  • Agents & Environments
  • Popular Search Algorithms
  • Fuzzy Logic Systems
  • Natural Language Processing
  • Expert Systems
  • Robotics
  • Neural Networks
  • Issues and Terminology

Computer Security

  • Elements and Terminologies
  • Layers
  • Securing OS
  • Antiviruses and Malwares
  • Encryption
  • Data Backup
  • Disaster Recovery
  • Policies and Checklist
  • Network Security
  • Wireless Security
  • Internet Security
  • Software Security
  • Database Security
  • Security Testing

Cryptography

  • Basic of Modern Cryptography
  • Cryptographic Tasks
  • Public key Cryptography
  • Ciphers and Hashes
  • Cryptanalysis
  • Cryptographic Software

Programming Languages

  • BASIC Programming Language (Fundamentals of Programming Languages Course)
  • Pascal Programming Language (Fundamentals of Programming Languages Course)
  • Fortran Programming Language (Scientific Computation Course)
  • C Programming Language (Scientific Computation Course)
  • Prolog Programming Language (Formal Language and Automata Course)
  • C++ Programming Language (OOP Course)

Sunday, November 18, 2018

MTA Exam 98-364: Database Fundamentals

Understand core database concepts
Create Database Objects
Manipulate data
Understand data storage
Administer a database

Understand core database concepts

Understand how data is stored in tables
Understand what a table is and how it relates to the data that will be stored in the database; columns/fields, rows/records

Understand relational database concepts
Understand what a relational database is, the need for relational database management systems (RDBMS), and how relations are established

Understand data manipulation language (DML)
Understand what DML is and its role in databases

Understand data definition language (DDL)
Understand how T-SQL can be used to create database objects, such as tables and views

Create Database Objects

Choose data types
Understand what data types are, why they are important, and how they affect storage requirements

Understand tables and how to create them
Purpose of tables; create tables in a database by using proper ANSI SQL syntax

Create views
Understand when to use views and how to create a view by using T-SQL or a graphical designer

Create stored procedures and functions
Select, insert, update, or delete data
Manipulate data

Select data
Utilize SELECT queries to extract data from one table, extract data by using joins, combine result sets by using UNION and INTERSECT

Insert data
Understand how data is inserted into a database, how to use INSERT statements

Update data
Understand how data is updated in a database and how to write the updated data to the database by using the appropriate UPDATE statements, update by using a table

Delete data
Delete data from single or multiple tables, ensure data and referential integrity by using transactions

Understanding data storage

Understand normalization
Understand the reasons for normalization, the five most common levels of normalization, how to normalize a database to third normal form

Understand primary, foreign, and composite keys
Understand the reason for keys in a database, choose appropriate primary keys, select appropriate data type for keys, select appropriate fields for composite keys, understand the relationship between foreign and primary keys

Understand indexes
Understand clustered and non-clustered indexes and their purpose in a database

Administer a database

Understand database security concepts
Understand the need to secure a database, what objects can be secured, what objects should be secured, user accounts, and roles

Understand database backups and restore
Understand various backup types, such as full and incremental, importance of backups, how to restore a database

Saturday, November 17, 2018

MTA Exam 98-361: Software Development Fundamentals

Understand programming
Understand object-oriented programming
Understanding general software development
Understanding desktop applications
Understand web applications
Understanding databases

Understand programming

Understand computer storage and data types
How a computer stores programs and the instructions in computer memory, memory stacks and heaps, memory size requirements for the various data storage types, numeric data and textual data

Understand computer decision structures
Various decision structures used in all computer programming languages; If decision structures; multiple decision structures, such as If…Else and switch/Select Case; reading flowcharts; decision tables; evaluating expressions

Identify the appropriate method for handling repetition
For loops, While loops, do-While loops, and recursion

Understand error handling
Structured exception handling

Understand object-oriented programming

Understand the fundamentals of classes
Properties, methods, events, and constructors; how to create a class; how to use classes in code

Understand inheritance
Inheriting the functionality of a base class into a derived class

Understand polymorphism
Extending the functionality in a class after inheriting from a base class, overriding methods in the derived class

Understand encapsulation
Creating classes that hide their implementation details while still allowing access to the required functionality through the interface, access modifiers

Understanding general software development

Understand application life cycle management
Phases of application life cycle management, software testing

Interpret application specifications
Reading application specifications and translating them into prototypes, code, select appropriate application type, and components

Understand algorithms and data structures
Arrays, stacks, queues, linked lists, and sorting algorithms; performance implications of various data structures; choosing the right data structure

Understanding desktop applications

Understand Windows apps
UI design guideline categories, characteristics and capabilities of Store Apps, identify gestures

Understand console-based applications
Characteristics and capabilities of console-based applications

Understand Windows Services
Characteristics and capabilities of Windows Services

Understand web applications

Understand web page development
HTML, Cascading Style Sheets (CSS), JavaScript

Understand Microsoft ASP.NET web application development
Page life cycle, event model, state management, client-side versus server-side programming

Understand web hosting
Creating virtual directories and websites, deploying web applications, understanding the role of Internet Information Services

Understand web services
Web services that will be consumed by client applications, accessing web services from a client application, SOAP and Web Service Definition Language (WSDL)

Understanding databases

Understand relational database management systems
Characteristics and capabilities of database products, database design, Entity Relationship Diagrams (ERDs), normalization concepts

Understand database query methods
Structured query language (SQL), creating and accessing stored procedures, updating data and selecting data

Understand database connection methods
Connecting to various types of data stores, such as flat file; XML file; in-memory object; resource optimization

Friday, November 16, 2018

My Key Skills 2017-2018

Languages/Frameworks

C#.NET, T-SQL, PL-SQL, ADO.NET, LINQ, Entity Framework, WCF, WPF, ASP.NET Web Forms, ASP.NET MVC, Web API, .NET Core, XAML, Xamarin, Crystal Reports

Web Technologies

HTML5, CSS3, Bootstrap, JavaScript, jQuery, AJAX, JSON, XML, Web services, Umbraco.

Databases

MS SQL Server 2016; 2017, MySQL, NoSQL Mongo DB, SQLite

IDE Tools

Visual Studio 2015, Visual Studio IDE 2017, NetBeans, MySQL Workbench

Team Management

TFS (Azure DevOps), Slack, Office 365, JIRA, Git, GitHub, Bitbucket, Octopus.

Testing

Automation Test, Selenium IDE, Selenium Web Driver, Katalon, MS Test Manager.

Development Methodologies

OOP, Design patterns, CMMI, Agile, Scrum, Test Driven Development, DevOps

Operating systems

Windows 10, Windows server 2012-2016, Windows Phone, Android.

 

Friday, November 9, 2018

My Key Skills 2015-2016

Methodologies

OOP, Design Patterns, Waterfall, Kanban, Scrum

Languages

C#.NET, T-SQL, PL-SQL, PHP,

Web

IIS 8, IIS 8.5, Apache, HTML5, CSS3, Bootstrap, JavaScript, jQuery, WCF Services, ASP.NET Web Forms, MVC, Modernizer, DotNetNuke, AngularJS

Databases / Data Access

MS SQL Server 2014, MySQL, Oracle, ADO.NET, LINQ

IDE

Visual Studio 2013; 2015, NetBeans

Software Testing

Unit Testing, Coded UI, Automated Test, Selenium

Team Management

Team Foundation Server (TFS), Slack, JIRA, Office 365

Operating system

Windows 7, Windows 8.1, Windows Server 2008R2, Windows Server 2012, Windows Server 2012 R2, Embedded Systems, Windows Phone.