Curriculum

Bachelor of Technology (B. Tech) in Computer Science and Engineering

One credit translates to 3 hours of work per week for a student on an average. The work hours could include lecture, recitation, and discussions. In addition, out-of-class student work would include design work, practice, studio work, and other academic work leading to the award of credit hours.
 

General Education Requirements (GERs)

GER includes Thinking Matters, Disciplinary Breadth, and Education for Citizenship - Science, Humanities, Arts and Social Sciences (HASS), Communication intense programs, Electives in Science and Technology, and Lab requirements. 

Advanced Undergraduate Subjects, Open Course electives, and courses for within and outside engineering disciplines for “minor” fields of study in addition to their majors are being evolved in partnerships with international experts. The students can elect to consider these additional options upon joining the university.
 

  • Computer Science Engineering Major Requirements

    Credits
  • Humanities & Social Science (HS)

    18
  • Basic Sciences (BS)

    35
  • Engineering Sciences (ES)

    17
  • CS Core courses (CS)

    54
  • Project, Seminar, Senior Design, Co-op (RD)

    27
  • Department Electives (CS-E)

    15
  • Open subject Electives (OE)

    9
  • Degree requirement (GER + Engineering + Department)

    174
  • Semester 1

    Credits
  • Humanities and Social Sciences Elective - 1

    3
  • Humanities and Social Sciences Elective - 2

    3
  • Introduction to Biology

    4

The course focuses on the basic principles of biochemistry, molecular biology, genetics, and recombinant DNA.
The core material focuses on function at a molecular level:

  • the structure and regulation of genes, and the structure and synthesis of proteins
  • how these molecules are integrated into cells
  • how cells are integrated into multicellular systems and organisms
  • computational and genomic approaches to biology.
  • Introduction to Chemistry

    4
  • Discrete Mathematics

    3

This course covers elementary discrete mathematics for computer science and engineering. It emphasizes mathematical definitions and proofs as well as applicable methods. Topics include formal logic notation, propositional and predicate logic, proof methods; induction, well-ordering; sets, relations; elementary graph theory; integer congruences; asymptotic notation and growth of functions; permutations and combinations, counting principles; discrete probability. Formal language theory, including regular expressions, grammars, finite automata, Turing machines, and NP-completeness. Mathematical rigor, proof techniques, and applications. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions.

  • Introduction to Computer Science and Programming

    5

Introduction to computer science and programming for students with little or no programming experience. Students learn how to program and how to use computational techniques to solve problems. Topics include software design, algorithms, data analysis, and simulation techniques. Assignments are done using the Python programming language.

  • 22
  • Semester 2

    Credits
  • Humanities and Social Sciences Elective - 1

    3
  • Humanities and Social Sciences Elective - 2

    3
  • Single-variable calculus

    4

This calculus course covers differentiation and integration of functions of one variable, and concludes with a brief discussion of infinite series. Illustrate applications to many scientific disciplines including physics, engineering, and economics.

  • Introduction to Classical Mechanics

    4

This first course in Physics is an introduction to classical mechanics. The subject is taught using the TEAL (Technology Enabled Active Learning) format which features small group interaction via table-top experiments utilizing laptops for data acquisition and problem solving workshops.

  • Basic Electronics

    4

Overview of electronic circuits and applications. Electrical quantities and their measurement, including operation of the oscilloscope. Basic models of electronic components including resistors, capacitors, inductors, and the operational amplifier. Frequency response of linear circuits, including basic filters, using phasor analysis. Digital logic fundamentals, logic gates, and basic combinatorial logic blocks. Lab. Lab assignments.

  • Introduction to Electrical Engineering and Computer Science

    4

An integrated introduction to electrical engineering and computer science, taught using substantial laboratory experiments. Key issues in the design of engineered artifacts operating in the natural world: measuring and modeling system behaviors; assessing errors in sensors and effectors; specifying tasks; designing solutions based on analytical and computational models; planning, executing, and evaluating experimental tests of performance; refining models and designs. Issues addressed in the context of computer programs, control systems, probabilistic inference problems, circuits and transducers, which all play important roles in achieving robust operation of a large variety of engineered systems.

  • 22
  • Summer internship or UROP opportunities for students (Optional - may earn up to 3 credits) **

  • Semester 3

    Credits
  • Humanities and Social Sciences Elective

    3
  • Multi-variable calculus

    4

This course covers vector and multi-variable calculus.. Topics include vectors and matrices, partial derivatives, double and triple integrals, and vector calculus in 2 and 3-space.

  • Introduction to Electricity & Magnetism

    4

This second coursein introductory physics focuses is on electricity and magnetism. The subject is taught using the TEAL (Technology Enabled Active Learning) format which utilizes small group interaction and current technology. The TEAL/Studio Project at MIT is a new approach to physics education designed to help students develop much better intuition about, and conceptual models of, physical phenomena.

  • Introduction to Environmental Science

    3

This course provides an integrated, quantitative and interdisciplinary approach to the study of environmental systems. Topics include Environment, Structure and functions in an ecosystem; Biosphere, Broad nature of chemical composition of plants and animals; Natural Resources covering Renewable and Non-renewable Resources, Forests, water, minerals, Food and land ; Energy, Growing energy needs, energy sources; Biodiversity and its conservation; Environmental Pollution; Environmental Biotechnology; Social Issues and Environment covering, problems relating to urban living, climate change, environmental regulation, and environmental ethics.

  • Probability and Statistics for Engineers

    4

Probability: random variables, independence, and conditional probability; discrete and continuous distributions, moments, distributions of several random variables. Topics in mathematical statistics: random sampling, point estimation, confidence intervals, hypothesis testing, non-parametric tests, regression and correlation analyses; limit theorems; Bayesian estimation; modeling and analysis of probabilistic systems;Elements of statistical inference. Bernoulli and Poisson processes. Markov chains; applications in engineering, industrial manufacturing, medicine, biology, and other fields.

  • Introduction to Communication Networks

    4

Studies key concepts, systems, and algorithms to reliably communicate data in settings ranging from the cellular phone network and the Internet to deep space. Weekly laboratory experiments explore these areas in depth. Topics presented in three modules - bits, signals, and packets - spanning the multiple layers of a communication system. Bits module includes information, entropy, data compression algorithms, and error correction with block and convolutional codes. Signals module includes modeling physical channels and noise, signal design, filtering and detection, modulation, and frequency-division multiplexing. Packets module includes switching and queuing principles, media access control, routing protocols, and data transport protocols.

  • UROP** (Summer after semester 2- Optional)

    3
  • 22
  • Summer term after year 2

    Up to 6 credits
    Internship / UROP/Summer abroad (optional)
  • Semester 4

    Credits
  • Humanities and Social Sciences Elective

    3
  • Linear Algebra

    4

This is a basic subject on matrix theory and linear algebra. Emphasis is given to topics that will be useful in other disciplines, including systems of equations, vector spaces, determinants, eigenvalues, similarity, and positive definite matrices.

  • Computation Structures

    4

Introduces architecture of digital systems, emphasizing structural principles common to a wide range of technologies. Multilevel implementation strategies; definition of new primitives (e.g., gates, instructions, procedures, and processes) and their mechanization using lower-level elements. Analysis of potential concurrency; precedence constraints and performance measures; pipelined and multidimensional systems. Instruction set design issues; architectural support for contemporary software structures.

  • Formal Languages and Automata

    4

Introduce concepts in automata theory and theory of computation; Identify different formal language classes and their relationships; Design grammars and recognizers for different formal languages; Prove or disprove theorems in automata theory using its properties; Determine the decidability and intractability of computational problems

  • Data Structures and Programming Fundamentals

    4

Introduces fundamental programming concepts. Designed to develop skills in applying basic methods from programming languages to abstract problems. Topics include software engineering, algorithmic techniques, data types, data structures, recursion and tail recursion. Sorting, Searching, and introduce notions of computational complexity. Lab component consists of software design, construction, and implementation of design.

  • UROP

    3
  • 22
  • Semester 5

    Credits
  • Operating Systems

    3

Covers the basic components of modern Operating Systems – Concurrency, Memory Management, File Systems, and Networking. Topics include: (Concurrency) processes and threads, context switching, synchronization, scheduling, and deadlock; (Memory Management) linking, dynamic memory allocation, dynamic address translation, virtual memory, and demand paging; (File Systems) storage devices, disk management and scheduling, directories, protection, and crash recovery; (Networking) sockets, TCP/IP, routing. Discussion of Virtual Machines, Distributed Systems. Includes 3 to 4 programming projects.

  • Introduction to Algorithms

    4

This course covers the modeling of computational problems, common algorithms, algorithmic paradigms, and data structures used to solve these problems. Emphasizes the relationship between algorithms and programming. Introduces basic performance measures and analysis techniques for these problems - algorithmic complexity analysis, recurrence relations, and the master method. Algorithms covered include randomized algorithms, divide and conquer strategies, greedy algorithms, hashing, heaps, graph algorithms, and search algorithms (including blind and A* search). Exercises require students to practice devising algorithms for various problems.

  • Introduction to Databases

    4

The course covers database design and the use of database management systems for applications. It includes detailed coverage of the relational model, relational algebra, and SQL. The course includes database design and relational design principles based on dependencies and normal forms. Many additional key database topics from the design and application-building perspective are also covered: indexes, views, transactions, authorization, integrity constraints, triggers, on-line analytical processing (OLAP), JSON, emerging NoSQL systems; concurrency control; distributed, parallel and heterogeneous databases; adaptive databases; publisher-subscriber systems; semi structured data and XML querying.

  • Computer Systems Engineering

    4

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design; virtual memory, and threads; networks; security and privacy; performance optimization; fault-tolerance, atomicity and coordination of concurrent activities. Includes a semester-long design project.

  • CS Elective

    4
  • Open Elective

    3
  • 22
  • Semester 6

    Credits
  • CoOps / Capstone Project (May -July, 3.0 months) **required

    4
  • Artificial Intelligence

    4

Introduces representations and methods used to build AI applications that are prevalent today – speech recognition, medical diagnosis, web search, robotics. Specific topics include search, constraint satisfaction, game playing, Markov decision processes, graphical models, machine learning, and logic. Course includes a significant programming component where students work in teams to build AI system components.

  • Computer Networks

    4

Principles and practice of computer networks. Network components, packet switching, layered architectures. Applications: web/http, voice-over-IP, p2p file sharing and socket programming. Reliable transport: TCP/IP, reliable transfer, flow control, and congestion control. The network layer: names and addresses, routing. Local area networks: ethernet and switches. Wireless networks and network security.

  • CS Elective

    3
  • Multi-disciplinary Design Project

    4

Students from different engineering disciplines - EEE, ECE, ME and CSE - will come together on an engineering design project. Will engage in collaborative work and build a prototype.

  • Open Elective

    3
  • 22
  • Semester 7

    Credits
  • Cryptography & Information Security

    3

Course covers computer systems security. Attack techniques and how to defend against them. Cryptography. Topics include: network attacks and defenses, operating system security, application security (web, apps, databases), malware, privacy, security for mobile devices; crypotographic hash functions, cryptanalysis, authentication codes, public-key cryptography (encryption, digital signatures), biometrics. Course includes group project where students work in teams.

  • Human Computer Interaction

    4

Introduces fundamental methods and principles for designing, implementing, and evaluating user interfaces. Topics include user-centered design, rapid prototyping, experimentation, direct manipulation, cognitive principles, visual design and the use of relevant software tools. Students work in teams on a semester-long design project.

  • Object-oriented Programming

    4

Covers fundamental principles and techniques of object-oriented system design and software development: OOP design, design patterns, testing, graphical user interface (GUI) OOP libraries, software engineering strategies; how to write software that is safe from bugs, easy to understand, and ready for change. Specifications and invariants; testing, test-case generation, and coverage; concurrent programming, including message passing and shared concurrency, and defending against races and deadlock. Student work on group projects.

  • CS Elective

    4
  • CS Elective

    4
  • Open Elective

    3
  • 22
  • Semester 8 - Option 1

    Credits
  • Co-op (RD)

    20
  • Semester 8 - Option 2

    Credits
  • Senior Design Project (RD)

    20
  • Computer Science Engineering Course Electives

  • Modelling and Simulation
  • Software Project Management
  • Parallel Computing
  • Advanced Topics in Algorithms
  • Automata, Computability and Complexity
  • Bioinformatics / Computational Biology
  • Big Data Analytics
  • Cryptography and Network Security
  • Data analytics and Data mining
  • Information Retrieval
  • Distributed Systems
  • Computer Graphics and Visualization
  • Human Computer Interaction
  • Humanities Course Electives

  • Principles of Macroeconomics
  • Microeconomic Theory and Public Policy
  • Game Theory
  • Ethics **
  • Anthropology
  • Technology and Society **
  • Linguistics
  • Psychology
  • Languages - French, German, Spanish, Mandarin,..
  • History
  • Political Science
  • Music
  • Theatre
  • Communication & Presentation Skills**

Note: Courses marked ** are required to be completed as part of degree requirement

  • Science Course Electives

  • Biology
  • Environmental Science
  • Cognitive Science
  • Geology
  • Planetary Science
  • Probability and Statistics
TOP