Software engineering curriculum model |
There are no translations available. Software Engineering is the discipline of creating high-quality software in a systematic, controlled and efficient manner, and maintaining it at the optimal costs. It requires an application of the concepts, techniques, and methods of engineering to the development of software systems. A software engineering (SE) program should concentrate on development of professionals who have an expertise level knowledge of software development principles, theory, practice, and process.
In general, engineering concentrated on application of things and concepts which is known already to create products, while science is more theoretical. According to Parnas, the goal of Computer Science is to learn and to expand the science. On the other hand SE aims to use the science and technology knowledge which is available already to create new and advanced products and tools for use.
Definition Software Engineering is a discipline concerned with the development of software systems by applying engineering principles with the goal of developing cost-effective quality systems. IEEE defines software engineering in [IEEE-93] as
Vision Software engineering is the discipline of creating high-quality software in a systematic, controlled and efficient manner, and maintaining it it at the optimal costs. It requires an application of the concepts, techniques, and methods of engineering to the development of software systems. A software engineering (SE) program should concentrate on the preparation of professionals who have an expertise level knowledge of software development principles, theory, practice, and process. Therefore we define the vision of our curriculum as follows: The SE education will focus training students who have abilities to harmonize theory with practice, with problem solving abilities and skills. To do so it will concentrate on the preparation them to apply competently engineering principles, processes and practices to software components and systems, and their maintenance. Besides students’ professional growth the program will also focus on the development of their personal and interpersonal skills. It will help students to enhance their ability in oral and written communication, and their adaptability to group-work environments. The programme will inculcate among students a strong sense of civic, professional and ethical responsibility. The programme will strive to develop in the professionals a capacity for innovation and a passion for life- long learning.
SE curricula thus must reflect the aim to satisfy professional demands of the industry and academia. The graduates will be able to answer the challenges offered by the modern world.
Knowledge domain of SE curriculum
ABET Engineering Criteria 2000 notes: The curriculum must provide both breadth and depth across the range of engineering and computer science topics implied by the title and objective of the programme. The programme must demonstrate that graduates have: the ability to analyze, design, verify, validate, implement, apply, and maintain software systems; the ability to appropriately apply discrete mathematics, probability and statistics, and relevant topics in computer and management sciences to complex software systems.
The following major areas of relevant pedagogy have been identified to be appropriate for design of the software engineering curriculum: 1. Computing Foundation (CS/SE/CE) 2. Software Engineering (SE Major) 3. Software Engineering Application Domain 4. Supporting Areas (Mathematics and Natural Sciences) 5. General Education (Management, Humanities, Social Sciences)
The curriculum followed the concept that good curriculum should focus on building a solid foundation in the early stages of learning. It should gradually introduce and strengthen the core professional competencies and desired skill-sets. Software engineering concepts should be taken up as early as the start of 2nd year. The main technical SE content should be covered during the third and forth years. Lab component should inculcate among students practical approach and practice of problem solving. SE practices must be accompanied all along the education program. The practice of software engineering is often in the context of non-software application domains. The graduates, therefore, should be provided an opportunity of reasonably broad exposure of at least one application area in the senior years. It will help them learn and demonstrate the application of software engineering practices. A capstone design project should provide the opportunity to bring together all the knowledge gained in a wide variety of courses to solve realistic problems in a team-based environment.
Duration of Programmes Following to the Higher Education Law in Mongolia, the team defined a credit hour as 15 or 16 lecturing hours in a course offered in a semester. Also 2 to 3 lab hours shall be treated as one credit hour for a course. In normal circumstances a semester comprises 15 (16 for some schools) teaching weeks followed by the final examination. The BS Software Engineering Degree would be a 4-year program consisting of 8 semesters.
Admission Criteria The eligibility criteria for Software Engineering admission was agreed to be intermediate with mathematics and English language qualifications, however, universities may define their own admission criteria.
Curriculum Objective The objective of the curriculum is to prepare students for professional careers and graduate studies with a balance between computing theory and practical application of software engineering concepts, methodology and tools in the modern software development environments. Graduates of such programmes will be able to function as proficient software developers and effective team members. They will have grounding in communication, mathematics and science, and the cultural, historical, and social issues that influence and effect or relate to software development. They will have knowledge of and experience with software product engineering and engineering management and an understating of professional issues and practices. Graduates will be able to understand and assess their own software engineering capabilities and performance. The curriculum is designed to ensure breadth across allied disciplines and supporting subjects; and depth in most areas of software engineering body of knowledge. Various components have been included in the curriculum to ensure that the graduates will:
Curriculum Model
The curriculum is designed to systematically achieve the objectives set above for the programme. It has been structured to suit the needs of the students, the demands of the market, and the trends of the industry. During the first two years of the programme the students will be given an underpinning into computer science with special emphasis on software engineering — concepts, processes, and practices. The students will be exposed to the discipline in a systematic, gradual and sure way. Students will also be imparted the skills and techniques which derive essence from basic sciences like mathematics and physics. These areas will be taken care of in the supporting courses which have been allocated reasonably sufficient space. Students’ personal traits and personality polishing will be cared for by the general education courses including communication and writing skills. A host of slots for elective courses have also been proposed to give to the students an opportunity to move towards their areas of interest.
During the senior years the students will be given exposure to the more specialized aspects of the discipline. They will also be given training in at least one application domain which will help institutions to prepare human resource well suited to the needs of different segments of the job market. In order to inculcate among them a scientific attitude they will go through a substantial lab work, which will prepare them for the industry and for further research oriented studies. The final year design project will mark the crystallisation and culmination of the students’ four-year learning process.
Програм хангамжийн инженерийн бакалавр BS(SE) Компьютерийн цөм 37 кредит цаг
Computing Requirements-Supporting Sciences 12 Credit Hours (Refer to Computing part)
Software Engineering Courses (Required)
Course Name: Software Construction Course Structure: Lectures: 3 / Labs: 3 Credit Hours: 4 Prerequisites: Data Structures Objectives: Upon completion of this course, students will have the ability to:
Course Outline:
Sample labs and assignments: - Use of software engineering tools to create designs - Use of parser generators to generate languages Reference Material: Software Engineering by Roger S. Pressman.
Course Name: Human Computer Interaction (An SE Approach) Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Introduction to Software Construction Objectives: Psychological principles of human-computer interaction. Evaluation of user interfaces. Usability engineering. Task analysis, user-centred design, and prototyping. Conceptual models and metaphors. Software design rationale. Design of windows, menus, and commands. Voice and natural language I/O. Response time and feedback. Colour, icons, and sound. Internationalization and localization. User interface architectures and APIs. Case studies and project. Learning objectives:
Outline:
Sample labs and assignments: - Evaluation of user interfaces using heuristic evaluation - Evaluation of user interfaces using videotaped observation of users - Paper prototyping of user interfaces, then discussing design options to arrive at a consensus design - Writers-workshop for style critiquing of prototypes presented by others - Implementation of a system with a significant user interface component using a rapid prototyping environment Resources: HCI Models, Theories, and Frameworks: Toward a Multidisciplinary Science by John Carroll. Usability Engineering: Scenario-Based Development of Human Computer Interaction by Mary Rosson, John Carroll, Mary Beth Rosson.
Course Name: Software Design and Architecture Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Introduction to Software Engineering Objectives: An in-depth look at software design. Continuation of the study of design patterns, frameworks, and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component based design. Measurement theory and appropriate use of metrics in design. Designing for qualities such as performance, safety, security, reusability, reliability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs. Basics of software evolution, reengineering, and reverse engineering. Upon completion of this course, students will have the ability to:
Outline:
Sample labs and assignments: - Building a significant project using one or more well known middleware architectures. Resources: Software Architecture in Practice by Len Bass, Paul Clements, Rick Kazman Evaluating Software Architectures by Paul Clements, Rick Kazman, Mark Klein
Course Name: Software Quality Assurance Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Introduction to Software Construction Objectives: Quality: how to assure it and verify it, and the need for a culture of quality. Avoidance of errors and other quality problems. Inspections and reviews. Testing, verification and validation techniques. Process assurance vs. Product assurance. Quality process standards. Product and process assurance. Problem analysis and reporting. Statistical approaches to quality control. Learning objectives:
Outline:
Sample labs and assignments:
Resources: Software Testing in the Real World: Improving the Process by Kit, Edward
Course Name: Software Requirements Engineering Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Introduction to Software Construction Objectives: Understand the role of requirements engineering within the software life cycle. Compare and contrast, and evaluate structured, objectoriented, data-oriented, and formal approaches to requirements modelling. Gather the requirements necessary to develop the specifications, given a “customer” who wants a software system to be developed. Develop an informal requirements specification, given a set of requirements. Model, prototype, and specify requirements for a software system. Outline: Software life-cycle models; requirements modelling and analysis; Software requirements specification; Software requirements elicitation and analysis; Structured methods; object-oriented methods; formal methods in requirements (formal and executable specifications); requirements verification and validation; requirements elicitation (e.g., scripting, development of use cases and interface); software requirements metrics; prototyping user interfaces; customer acceptance of requirements. Resources: Davis, A. Software Requirements: Objects, Functions and States, Prentice Hall. Dorfman, M. Thayer, R & Davis, A. Eds. Software Requirements Engineering, IEEE –CS
Course Name: Software Project Management Course Structure: Lectures:3 / Labs: 0 Credit Hours: 3 Prerequisites: Introduction to Software Development Objectives: To develop ability to plan and manage software development projects successfully, maximizing the return from each stage of the software development life cycle. Outline: Software development process and phases. Project Management processes and phases. Project initiating, planning, execution, control, monitoring, and closing. Identification of resource, scheduling, PERT, CPM, estimation, FPA, COCOMO. Managing people, resource management, project selection, budgeting, risk management, software processes and standards, process improvement framework. Resources: Walker Royce, Software Project Management - A Unified Framework. Mike Cotterell and Bob Hughes, Software Project Management (Second Edition), McGraw Hill, 1999.
Software Engineering Courses (Electives) Course Name: Formal Methods Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: None Objectives: In this course students learn how to represent computing systems with both state-based and process algebra models. They specify computing systems formally, reason about specifications, and verify their properties. They connect specifications to programmes through refinement and decomposition. They use theorem proving and model checking tools. Outline: Introduction to formal specification, Transformational development, Specification analysis and proof, Programme verification, Objects and types: Sets and set types, Tuples and Cartesian product types, Bindings and schema types, Relations and functions, Properties and schemas, Generic constructions, The Z Language, Syntactic conventions, Schema references, Schema texts, Predicates, Schema expressions, Generics, Sequential Systems. Resources: System Development using VDM by Jones, C. B. Z – Specification Language by Spiveny
Course Name: Information System Audit Course Structure: Lectures:3 / Labs: 0 Credit Hours: 3 Prerequisites: None Objectives: To provide basic concept of information system audit and control, policies and procedures as defined by ISACA. To review and evaluate or conduct IS audits of an organization Outline: IS Audit charter, Polices, Procedures, Audit computer networks and communication, Auditing software development, Acquisition, Maintenance, Auditing IT infrastructure, Auditing Management and Organization, Business process re engineering: IS audit proposal, report, evidence and follow-up, complaint to standard, Enterprise service agreement, IP pro count policies and process, Backup and procedures Resources: Control Objective for Information Technology (COBIT), 3rd Ed, by Information System Audit and Control Foundation. CISA Review Manual, 2004, by Information System Audit and Control Association, www.isaca.org.
Course Name: Design and Architecture of Large Software Systems Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Software Analysis and Design Objectives: Modelling and design of flexible software at the architectural level. Basics of model-driven architecture. Architectural styles and patterns. Middleware and application frameworks. Configurations and configuration management. Product lines. Design using Commercial Off-The-Shelf (COTS) software. Outline: Upon completion of this course, students will have the ability to:
Resources: Development and Maintenance of Large Scale Software Systems By Anonio Pizzarello
Course Name: Distributed Computing (3) Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Introduction to Software Development Objectives: This course is intended to provide a sound background for net centric software development. The course will concentrate an overview of major technologies like CORBA, RMI, .NET and will highlight the interfacing of middle layer with the upper layers and system layer Outline: Introduction to distributed systems, Distributed data, Distributed processing system, Multithreading, Thread synchronization, Resource brokerage, Resource monitoring, Load balancing, Storage elements, Batch processing models, Middle layer architecture, Resource clustering, RMI, CORBA, Net, MPI. Resources: Distributed Systems: Principles and Paradigms by Tanen Baum
Course Name: Software Development Technologies Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Software Analysis and Design Objectives: Comparative study of different tools and technologies to be used in each phase of SDLC. Outline: It includes CASE as well as other development tools and formalisms. Resources: Various available URLS
Course Name: Software Testing Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Introduction to Software Construction Objectives: Testing techniques and principles: Defects vs. failures, equivalence classes, boundary testing. Types of defects. Black-box Vs. Structural testing. Testing strategies: Unit testing, integration testing, profiling, test driven development. State based testing; configuration testing; compatibility testing; web site testing. Alpha, beta, and acceptance testing. Coverage criteria. Test instrumentation and tools. Developing test plans. Managing the testing process. Problem reporting, tracking, and analysis. Learning objectives: Upon completion of this course, students will have the ability to:
Outline: Introduction and overview: Testing and inspection concepts, Testing categories, Inception process: Objective of formal inspection Organizing Test cases: Decision Tables, Black box and white box testing Unit testing, Integration testing, Regression testing, System testing, user acceptance testing, Metrics and complexity, State based testing, Syntax testing; Use of software testing tools. Resources: Software Testing in the Real World: Improving the Process by Kit, Edward
Computing Courses (Elective)
Course Name: Discrete Structures Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: None Objectives: Topics in this course include predicate logic, recurrence relations, graphs, trees, matrices, computational complexity, elementary computability, and discrete probability. Course Outline:
Reference Material: Discrete Mathematical Structures by Rosen. Discrete Mathematics by Richard Johnsonbaugh.
Course Name: Theory of Automata and Formal Languages Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Discrete Structures Objectives: The course aims to develop an appreciation of the theoretical foundations of computer science through study of mathematical & abstract models of computers and the theory of formal languages. Theory of formal languages and use of various abstract machines as ‘recognizers’ and parsing will be studied for identifying/validating the synthetic characteristics of programming languages. Some of the abstract machines shall also study as “Transducers”. Course Outline: Finite State Models: Language definitions preliminaries, Regular expressions/Regular languages, Finite automata (Fas), Transition graphs (TGs), NFAs, kleene’s theorem, Transducers (automata with output), Pumping lemma and non regular language Grammars and PDA: Context free grammars, Derivations, derivation trees and ambiguity, Simplifying CFLs, Normal form grammars and parsing, Push-down Automata, Pumping lemma and non-context free languages, Decidability, Chomsky’s hierarchy of grammars Turing Machines Theory: Turing machines, Post machine, Variations on TM, TM encoding, Universal Turing Machine, Context sensitive Grammars, Defining Computers by TMs. Reference Material: Introduction to Computer Theory, by Denial Cohen, John Wiley & Sons, Inc. Introduction to Automata Theory, Languages and Computation, by J Hopcraft, D. Ullman. Languages and Machines, An Into to the Theory of Comp. Sc., by Thomas A. Sudkamp.
Course Name: Analysis of Algorithms Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Discrete Structures, Data Structures Objectives: Detailed study of the basic notions of the design of algorithms and the underlying data structures. Several measures of complexity are introduced. Emphasis on the structure, complexity, and efficiency of algorithms. Course Outline: Introduction; Asymptotic notations; Recursion and recurrence relations; Divide-and-conquer approach; Sorting; Search trees; Heaps; Hashing; Greedy approach; Dynamic programming; Graph algorithms; Shortest paths; Network flow; Disjoint Sets; Polynomial and matrix calculations; String matching; NP complete problems; Approximation algorithms. Reference Material: Introduction to Algorithms by Thomas H Carmen.
Course Name: Artificial Intelligence Course Structure: Lectures: 2 / Labs: 3 Credit Hours: 3 Prerequisites: Data Structures Objectives: This course focuses on the set of computational tools and techniques, which mimic the human decision-making process and capability. Course Outline: Introduction to Common Lisp. AI classical systems: General Problem Solver, rules, simple search, means-ends analysis. ELIZA, pattern matching, rule based translators, OPS-5. Knowledge Representation: Natural language, rules, productions, predicate logic, semantic networks, frames, objects, scripts. Search: Depth first search, breadth first search, best first search, hill climbing, min-max search, A* search. Symbolic Mathematics: student, solving algebra problems, translating English equations, solving algebraic equations, simplification rules, re-write rules, meta-rules, Macsyma, PRESS, ATLAS. Logic Programming: Resolution, unification, horn-clause logic, Prolog, Prolog programming. Sample case studies of shells and Knowledge Based Systems. A brief appreciation of state of the art computational techniques like neural networks, genetic algorithm, fuzzy sets. Reference Material: Artificial Intelligence by Luger, 4th edition Pearson Education.
Course Name: Computer Graphics Course Structure: Lectures: 2 / Labs: 3 Credit Hours: 3 Prerequisites: Object Oriented Programming , Visual Programming Objectives: Study of various algorithms in computer graphics and their implementation in any programming language. Course Outline: Graphics hardware. Fundamental algorithms. Applications of graphics. Interactive graphics programming - graph plotting, windows and clipping, and segmentation. Programming raster display systems, panning and zooming. Raster algorithms and software - Scan-Converting lines, characters and circles. Region filling and clipping. Two and three dimensional imaging geometry and transformations. Curve and surface design, rendering, shading, colour, and animation. Reference Material: Computer Graphics by F.S. Hill.
Course Name: Distributed Database Systems Course Structure: Lectures: 2 / Labs: 3 Credit Hours: 3 Prerequisites: Databases Objectives: The student will learn the design, algorithms and techniques involved in distributed database system and their implementation. Course Outline: Advanced data models. Conceptual Database design. Concurrency control techniques. Recovery techniques. Query processing and optimization. Integrity and security. Client-Server architecture. Distributed database systems. Current trends in database systems. Database machines. Reference Material: Distributed Databases by Ceri and Pelagatti.
Course Name: Visual Programming Course Structure: Lectures: 2 / Labs: 3 Credit Hours: 3 Prerequisites: Data Structures, Data and Network Security Objectives: To development applications using various tools and APIs in visual programming. Course Outline: Introduction to Windows programming, Use of Windows API, MFC Class hierarchy, Class Wizard, Application Wizard and Application Studio, Graphics Device Interface, Menus, document view architecture, Multiple Views, files and archiving mechanisms, converting Windows programmes to MFC, Sub-classing controls. Reference Material: MFC from the Ground Up. Windows 98 API Programming. VC++ A complete References.
Course Name: System Programming Course Structure: Lectures: 2 / Labs: 3 Credit Hours: 3 Prerequisites: Operating Systems Objectives: Demonstrate mastery of the internal operation of Unix system software including assemblers, loaders, macro-processors, command language interpreters, inter-process communication. Course Outline: System Programming overview: Application Vs System Programming, System Software, Operating system, Device Drivers, OS Calls. Window System Programming for Intel386 Architecture: 16-bit Vs 32-bit, Programming, 32-bit Flat memory model, Windows Architecture. Virtual Machine (VM) Basics, System Virtual Machine, Portable Executable Format, Ring O Computer, Linear Executable format, Virtual Device Driver (V + D), New Executable format, Module Management, COFF obj format 16-bit. (Unix) other 32-bit O.S Programming for I 386; Unix Binaryble format (ELF), Dynamic shared objects, Unix Kernel Programming (Ring O), Unix Device Architecture (Character & Block Devices), Device Driver Development, Enhancing Unix Kernel. Reference Material: The UNIX Programming Environment by B. Kernighan & R. Pike. System Software by Leland L. Beck.
Course Name: Web Engineering Course Structure: Lectures: Labs: (2-3) Credit Hours: 3 Prerequisites: Data Warehousing Objectives: Design and implementation of web based applications. Course Outline: Overview of Protocols: TCP/IP, HTTP, Overview of 3-tier Architecture, Web Based Applications Architecture. Developing Front End Applications: Front End Development Tools, HTML, DHTML, Scripting (Java Script, Jscript, VB script), Java Applets, ActiveX. Reference Material: Web enabled Commercial Application Development Using… HTML, DHTML, JavaScript, Perl, CGI by Ivan Bayross.
BS (SE) − Supporting Courses (Elective)
Course Name: Multivariable Calculus Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Calculus Course Outline: Functions of Several Variables and Partial Differentiation. Multiple Integrals, Line and Surface Integrals. Green’s and Stoke’s Theorem. Fourier Series: periodic functions, Functions of any period P-2L, Even & odd functions, Half Range expansions, Fourier Transform. Laplace Transform, ZTransform, Difference Equations Reference Material: Calculus and Analytical Geometry by Swokowski, Olinick and Pence.
Course Name: Differential Equations Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: Multivariable Calculus Course Outline: Ordinary Differential Equations of the First Order: Geometrical Considerations, Isoclines, Separable Equations, Equations Reducible to Separable Form, Exact Differential Equations, Integrating Factors, Linear First-Order Differential Equations, Variation of Parameters. Ordinary Linear Differential Equations; Homogeneous Linear Equations of the Second Order, Homogeneous Second-Order Equations with Constant Coefficients, General Solution, Real Roots, Complex Roots, Double Root of the Characteristic Equation, Differential Operators, Cauchy Equation, Homogeneous Linear Equations of Arbitrary Order, Homogeneous Linear Equations of Arbitrary Order with Constant Coefficients, Non-homogeneous Linear Equations. Modelling of Electrical Circuits. Systems of Differential Equations. Series Solutions of Differential Equations. Partial Differential Equations: Method of Separation of variables, Wave, Heat & Laplace equations and their solutions by Fourier series method. Reference Material: Advanced Engineering Mathematics by Kreyzig.
Course Name: Numerical Computing Course Structure: Lectures: 3/ Labs: 0 Credit Hours: 3 Prerequisites: Calculus and Analytical Geometry Objectives: On completion of this unit, students will be able to implement numerical solutions to problems using computer-based techniques. Course Outline: Mathematical Preliminaries, Solution of Equations in one variable, Interpolation and Polynomial Approximation, Numerical Differentiation and Integration, Initial Value Problems for Ordinary Differential Equations, Direct Methods for Solving Linear Systems, Iterative Techniques in Matrix Algebra, Solution of non-linear equations. Approximation Theory. Eigenvalues and Eigenvector computation. Optimization procedures. Reference Material: Elements of Numerical Analysis by Dr. Faiz, M. Afzal. 107
Course Name: Physics (Mechanics) Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3 Prerequisites: None Course Outline: Review of Motion: position, velocity, and acceleration vectors. Applications of laws of motion: Projectile Motion, motion in resistive media, rocket motion, motion of charged particles in electrical and magnetic fields, Rotational motion: constant angular acceleration, uniform circular motion, torque, linear and angular momentum and their conservation, System of Particles: centre of mass, two-body collisions in two-dimensions, moment of inertia of objects, Wave Motion: mathematical concepts of simple and damped harmonic motion, analytical treatments of superposition of waves, concepts and applications of diffraction and polarization of light and sound waves. Concepts of thermodynamics Reference Material: University Physics by Freedman and Young (10 th and higher editions). College Physics by Resnick, Halliday and Krane (6th and higher edition).
Course Name: Basic Electronics Course Structure: Lectures: 3 Labs: 3 Credit Hours: 4(3+3) Prerequisites: Electric Circuits Objectives: Introduction of Electronics Course Outline: Fundamentals of Semiconductor physics: Band theory, semiconductors (intrinsic and extrinsic), pn junction, pn junctions as a rectifier, clipper and clamper circuits, zener diode and voltage regulator, LED and LCD etc., Transistors: Bipolar Junction transistors, BJT biasing circuits, Q-point, BJT as a switch, BJT amplifiers, classes of amplifiers, power amplifiers, Metal oxide transistors, nMOS, pMOS and CMOS inverters circuits. Introduction to A/D and D/A conversion circuits. Reference Material: University Physics by Freedman and Young (10 th and higher editions). College Physics by Resnick, Halliday and Krane (6th and higher edition). |