Learn how to organize a computer system, how to interface, CPU, Memory, peripherals etc.
- Computer Architecture and Organization Paperback - 1 Jul 2017 by John Hayes
- Computer Organisation Paperback - 2002 by Carl (Author), Hamacher (Author)
- Computer Organization and System Software Paperback - 2002 by Satish Jain (Author), EXCEL BOOKS
- Computer Organization and Design (English, Paperback, Chaudhuri P. Pal), PHI
- Mano, M.M., "Computer System Architecture", PHI.
- Burd - System Architecture
Microprocessor is the heart of any computer. Learn ALU, Bus System, Assembly instructions etc.
- Microprocessor Architecture, Programming & Application - Author: R.Gaonkar, Wiley
- Advanced Microprocessors and Peripherals Paperback – 2006 by Ajoy Ray (Author), K Bhurchandi (Author)
- MICROCONTROLLERS:THEORY & APPLICATIONS Paperback – 2011 by DESHMUKH (Author)
- by Hall (Author) Microprocessor &interfacing- Author: Hall, MH
- Fundamental of microprocessor- Author: Uday Kumar, Pearson
- The 8051 microcontroller & Embedded System- Author: Mazidi & Mazidi, Pearson/PHI
- Microprocessor & Microcontroller- Author: Krishna kant, PHI
- Microprocessor & Peripherals- Author: Chowdhury & Chowdhury, Scitech
- Advance Microprocessor- Author: Badriram & Badriram-MH
- 8085 Microprocessor Programming & Interfacing- Author: N.K Srinath-PHI
- Microprocessor-Theory &Application- Author:M. Rafiquezzaman; PHI
- Microcontroller &Microcomputer Principles of H/W & S/W Engg- Author: F.M Cady - Oxford.
This subject is essential for those who want to become a software developer and deals with programming language and implementation of software programs. Programming language like C is the base programming language of all modern programming languages. Learning C language is essential for all computer science students. Let us see the key topics of this subject.
Concepts of structural program development; concept of data types; precedence and associatively of operators; conditional transfer; deterministic and in-deterministic loops; recursions; functions and procedures - call by value, call by reference and their differences; programming for numerical methods; records. Data-type handling and various constructs (conditional, loop, functions etc); pointers: concept of pointers and passing parameters using pointers, non-numeric processing, concept of arrays of pointers and pointers to pointers; structures and unions - advantage of using structures, concept of information hiding, pointers to structures; files - basic concept of various types of file access methods: sequential, indexed sequential, random, various statements for file handling Advanced Programming Languages like C++, ADA, LISP, PROLOG, and PASCAL. Comparison of various Languages AL. Comparison of various Languages
- Programming languages design and implementation, by Tennence W.Pratt,
- Programming Languages, by Allen B. Tucker,
- Programming Languages, by Allen B. Tucker,
- Programming with C, Gottfried BS ,
- ANSI C, by Balagurusamy
- Understanding Pointers in C, by Kanetkar, Yashvant
- Let us C by Kanetkar, Yashvant
- Foundation of Programming Languages by Roosta
- A First Course in Prog with C by T Jeyapoovan,
- Programming In C++ by Y.I. Shah and M.H. Thaker
Develop complex programs using algorithms, learn how to use data structures, optimize sorting and searching algorithms etc.
Text book :
- Data Structures & Algorithms Kakde Og Ua Deshpande
- Data Structures and Algorithms 1st Edition by Alfred V. Aho (Author), Jeffrey D. Ullman (Author), John E. Hopcroft (Author)
- Data Structures and Algorithms in C++ Hardcover - Import, 27 Aug 2012 by Adam Drozdek
- Data Structures, Algorithms And Object-Oriented Programming Paperback - 31 Dec 1899 by Heileman (Author)
- Data Structures Using C Paperback - June 30, 2008 by M. Radhakrishnan (Author), V. Srinivasan (Author)
- Algorithms, Data Structures, and Problem Solving with C++ Hardcover - Import, 30 Oct 1995 by Mark A. Weiss (Author)
- Fundamentals of Data Structures Hardcover - Import, 27 Jul 1988 by Ellis Horowitz (Author), Sartaj Sahni (Author)
- Data Structures Using C Paperback - 2008 by Tanenbaum (Author)
- A Complete Reference Guide : Data Structures Through C Paperback - 31 Dec 1899 by Ajay Agarwal (Author)
System software runs on the system after startup and manages all the resources of the system.
Text Books / References :
- OPERATING SYSTEMS CONCEPTS AND DESIGN Paperback - 23 Mar 2001 by Milan Milenkovic (Author), McGraw Hill.
- Tanenbaum A.S., "Operating System Design &Implementation", Practice Hall NJ.
- Silbersehatz A. and Peterson J. L., "Operating System Concepts", Wiley.
- Dhamdhere: Operating System TMH
- Stalling, William, "Operating Systems", Maxwell McMillan International Editions, 1992.
- Dietel H. N., An Introduction to Operating Systems, Addison Wesley.
Real time systems are those which process and serve real time signals and data. These systems often run on real time operating systems. They mainly runs for special purpose and they run dedicatedly.
Tablet, Laptops, desktops and servers run general purpose operating systems like Linux, Windows. They can do varieties of generic jobs. However these types of operating systems are not suitable for special purpose real time systems. Task scheduler and IO processing etc are different in real time systems.
Real time operating systems or RTOS are special operating systems designed for special purposes. There are two types of RTOS. Soft RTOS and Hard RTOS. Soft RTOS are similar to general purpose operating system but has dedicated tasks and threads for processing special signals and IOs. Hard RTOS is on the other hand has dedicated tasks and they process signals and data in a defined time slice. Some practical examples of hard RTOS are the breaking system of car, airbag unit, various signal capturing in car, aeroplanes, satellites etc.
Embedded systems are those systems embedded in different practical devices. These type of devices include some microprocessors or microcontrollers. Sometimes entire system of CPU, RAM, ROM, IO devices are made inside one chip and they are called system on chip (SoC). Embedded system devices run varieties of system software. Some systems have few kilo bytes of RAM and ROM. This type of systems runs a bare metal code written in C and assembly.
Systems with higher range can run RTOS, embedded Linux and Windows. Electronic System in microwave oven, Air conditioning, washing machine, digital watch, calculator, digital TV and monitor are examples of embedded systems.
Followings are the syllabus and reference books for Real Time & Embedded System
- Embedded System Design: A Unified Hardware / Software Introduction Paperback 2006 by Tony Givargis Frank Vahid (Author)
- Real-Time Systems and Software Paperback - Import, 28 Mar 2001 by Alan C. Shaw (Author)
- Fundamentals of Embedded Software: Where C and Assembly Meet Paperback - Import, 13 Nov 2001 by Daniel W. Lewis (Author)
- Real-Time Systems Hardcover - Import, 13 Apr 2000 by Jane W. S. Liu (Author)
- EMBEDDED REALTIME SYSTEMS PROGRAMMING: Paperback - 1 Jul 2017 by Sriram Iyer (Author), Pankaj Gupta (Author)
- "An Embedded System Primer" David E. Simon; Addison-Wesley Pub
- "Embedded System Design" Steve Heath; Butterworth-Heinemann Pub.
- "Embedded System Computer Architecture" Graham Wilson, Butterworth-Heinemann
Computers can process and store data efficiently. However computers are not limited to these tasks. Two or more computers can be connected via computer networks. Two or more computer networks can be inter connected to make a bigger network. Internet is a world wide grouping of several computer networks.
Computer network and OSI model has seven layers- physical, data link, network, transport, session, presentation and application layer. Physical layer deals with the modulation and demodulation of the signals. LAN, WLAN, MAN, WAN, modems, mobile phone's 2G/3G/4G modem works in physical layer. Data link layer works on top of physical layer to form data frames for data exchanges. Network layer decides the best paths between two or more network hops. Network routers are used to inter connect networks and various types of routing protocols are used. Network Protocols: ARP, RARP, IP, ICMP, IPV6; Unicast and multicast routing protocols Transport layer decides the synchronisation and payload management of the packets. UDP, TCP, Congestion control algorithm: Leaky bucket algorithm, Token bucket algorithm etc are Session layer maintains common state of parameters between client and servers. User name, password, session id, cookies etc work in session layer. Presentation layer constructs the text, pictures or video data formats out of incoming byte steams and converts those to byte streams in the outgoing end. Application layer deals with different application services like HTTP, HTTPs, FTP, SMTP, POP3 etc.
Followings are the syllabus and reference books for Computer Network
Books and Links:
- B. A. Forouzan - Data Communications and Networking (3rd Ed.) - TMH
- A. S. Tanenbaum - Computer Networks (4th Ed.)- Pearson Education/PHI
- W. Stallings -Data and Computer Communications (5th Ed.)- PHI/ Pearson Education
- Zheng & Akhtar, Network for Computer Scientists &Engineers, OUP
- Data and Computer Communications (William Stallings Books on Computer and Data Communications) Hardcover – 13 Sep 2013 by William Stallings (Author)
- Data and Network Communication Paperback – Import, 27 Nov 1999 by Michael A. Miller (Author)
- Introduction to Digital & Data Communications Paperback – 22 Feb 1994 by Michael Miller (Author)
- Understanding Data Communications and Networks Hardcover – Import, 29 Nov 2003 by William A. Shay (Author)
Kurose and Rose - Computer Networking -A top down approach featuring the internet - Pearson Education
- Leon, Garica, Widjaja - Communication Networks - TMH
- Walrand - Communication Networks - TMH.
- Comer - Internetworking with TCP/IP, vol. 1, 2, 3(4th Ed.)- Pearson Education/PHI
Learn what is programming language, what is grammar, syntax etc.
- Hopcroft JE Ullman JD - "Introduction to Automata Theory, Languages & Computation"
- K.L.P Mishra &N. Chandrasekharan – “Theory of Computer Science”
- 'Ash &Ash – “Discrete Mathematics”
- Discrete Mathematics (amsns AMS non-series title) Hardcover – Import, 19 Apr 2007 by Martin Aigner (Author)
- Lewis H. R. and Papadimitriou C. H. Elements of the theory of Computation P.H.I.
- Automata theory : machines and languages. by: Kain, Richard Y. McGraw Hill.
- Kohavi ZVI, "Switching &Finite Automata", 2nd Edn., Tata McGraw Hill.
- Linz Peter, "An Introduction to Formal Languages and Automata", Narosa
- “G. E. Reevsz, Introduction to Formal Languages, McGraw Hill 1983
Learn how to construct your own programming language, internals of C compiler, linker etc.
- Aho, Sethi, Ullman - "Compiler Principles, Techniques and Tools" - Pearson Education.
- Holub - "Compiler Design in C" - PHI
Subject of software engineering is the most applicable subject in the field of IT and software industry. Software engineer, hardware engineer, project manager, program manager, release manager and all related to this industry apply software methodologies in their every day work. Therefore it is necessary to learn this subject in depth.
Program management and software releases go through a Software Development Life Cycle or SDLC.
Entire Software Development Life Cycle is divided into seven phases. They are
- Requirement gathering and analysis phase,
- Estimation and feasibility study phase,
- Design phase,
- Implementation and documentation phase,
- Testing and validation phase,
- Installation/Deployment phase,
- Maintenance phase
Two basic models are used and they are Waterfall Model and Spiral Model. Waterfall Model deals with a single flow of 7 phases. It completes the cycle once it finishes all the phases. Spiral Model deals with repetitive improvement cycles where phases and cycles are repeated more than once to give improvements to the software.
Requirement gathering and analysis - Requirement specification is made out of the requirements collected from customers and product marketing. Software requirement specification captures all the details.
Feasibility study and estimation phase - Program management sit together with developers, SQA and other concerned groups to estimate the time requirement. This phase decides the time span of next phases.
Design phase - Software requirement specification is studied and software functional specification is made. Software developer goes through functional specification and prepare higher level design document.
Low level design is derived from higher level design document. Higher level design tells how is the problem and how to deal with the problem with different software module. Low level or System Design design tells the units of each modules and how each module is going to be made. Problem Partitioning, Top-Down And Bottom-Up design, Decision tree, decision table etc are part of system design. Design varies on the selection of programming languages. C language follows functional/structural approach where as C++ follows Object- Oriented approach.
Implementation and documentation phase- Developer implements source code out of low level design design. Structured Programming in C, OO Programming using C++ are used as needed. Information Hiding, modularity, code reuse etc are part of implementation. System documentation, user documentation, help file, context helps, are also processed. Technical writers and documentation engineer does these parts.
Testing and validation phaseTest and validating software modules and source code are the part of white box testing. Testing each function and class modules are called unit testing. Unit testing is the responsibility of software developers. Integration Testing is the testing of modules to test the interaction between modules. System testing is the superset of integration testing. Entire system is tested in the view point of end users. Integration Testing and System testing is done without knowing the source modules and system is treated as a black box. These two type testing is known as black box testing and software quality assurance is the group is responsible for doing these testing. Test case plan specification used to execute test cases. Test case results capture test pass/failure status. Validation & Verification Metrics can be made based on test results. Reliability Assessment can be done on the basis of test case pass rate.
Installation/Deployment phase- Software is released to end users in these phase. Release management also prepares release notes. Release note includes known bugs, issues etc. Maintenance release captures bug list where are main release captures the new feature released.
Maintenance phase- Software release might have few known issues, minor bugs. End users might encounter new issues while using the product or services. End user and customers or customer care might file bugs. The importance of these issues are reviewed and then pushed to development for fix.
A complete SDLC includes peoples from Project Management, hardware engineering, software developnent, software quality assurance, build and release engineering, documentation, marketing, human resource etc. Software Project Management group manages all the activities like Project Scheduling, Staffing, Software Configuration Management, Quality Assurance, Project Monitoring.
- R. G. Pressman - Software Engineering, TMH
- Software Engineering Fundamentals Hardcover – 5 Feb 1997 by Ali Behforooz (Author), Frederick J. Hudson (Author),OUP
- Fundamentals of Software Engineering: International Edition by Carlo Ghezzi (Author), Mehdi Jazayeri (Author), Dino Mandrioli (Author), PHI
- Pankaj Jalote - An Integrated Approach to Software Engineering, NAROSA.
- Object-oriented and classical software engineering / Stephen R. Schach.
- Software Engineering: Principles and Practice - Hans van Vliet
- Uma, Essentials of Software Engineering, Jaico
- Sommerville, Ian Software Engineering, Pearson Education
- IEEE Standards on Software Engineering.
- Kane, Software Defect Prevention, SPD