Computer Science & Engineering
Y1Q1
- CSE1300 Reasoning and Logic
- CSE110 Object-Oriented Programming
- CSE1400 Computer Organisation
Y1Q2
- CSE1200 Calculus
- CSE1305 Algorithms and Data Structures
- CSE1500 Database and Web Technology
Y1Q3
- CSE1205 Linear Algebra
- CSE1105 Programming Project
- CSE1505 Information and Data Management
Y1Q4
- CSE110 Software Quality and Testing
- CSE1405 Computer Networks
- CSE1210 Probability Theory and Statistics
Y2Q1
- Computer graphic course contents:
- Introduction to Objects and Images (from a biological/physics point of view)
- An introduction to C++
- Transformations and Homogeneous Coordinates
- Projective geometry
- An introduction to 3D APIs
- Materials and shading
- Shadows
- Whitted-Style Ray Tracing
- Acceleration Structures
- CSE2510 Machine Learning
- CSE2520 Big Data Processing
Y2Q2
- Algorithm Design course contents:
- graph algorithms
- greedy algorithms
- divide and conquer
- dynamic programming
- network flow algorithms
- prove the correctness of these algorithms
- determine the running time of algorithms both analytically as well as experimentally
- implement algorithms efficiently
- provide well-argued advice about which problems can be solved best using which algorithms
- Software Engineering methods
- The course covers both high-level software project management, and low-level software design techniques needed to create evolvable and maintainable systems
- design patterns
- requirements engineering
- UML modeling
- software architecture
- user interface design
- software analytics.
- Data mining course content:
- PageRank algorithm
- frequent item-set mining
- unsupervised algorithms for big data: BFR and CURE
- basics of social-network graph mining
- Singular-Value Decomposition and CUR decomposition
- Critically evaluate, motivate and apply data mining algorithms to real-world challenges
- large scale machine learning algorithms
- algorithms for the retrieval of similar items
- collaborative filtering algorithms
- Explain the relevance and impact of data mining in our lives
- explain relevance and context of application areas of data mining
- explain basic concepts of the privacy/ethical aspects of data mining
- explain and apply visual data mining principles
Y2Q3
- Automata, Language and Computability contents:
- parse and construct automata and languages
- prove a problem to be computable
- manipulate and construct grammars for context-free languages
- describe the differences between different types of automata and grammars and their limitations, specifically that there are problems that are algorithmically unsolvable
- prove languages to be non-regular using the pumping lemma.
- describe the classes P, NP, and NPC and explain why P = NP? is an open problem.
- verify a proof that shows that a problem is NPC.
- Concepts of programming languages contents:
- Syntax and interpretation: programs as data, abstract vs. concrete syntax, interpretation
- Functional programming: higher-order functions, lexical scope, function closures, currying and partial application, functions over data (especially map, fold, and filter).
- Mutation and memory: implementing loops and recursion, tail calls, heap memory allocation and reuse.
- Lazy evaluation and infinite streams: lazy vs. eager evaluation, thunks, streams, memoization.
- Types: a type as a set of values together with a set of operations, primitive types, compound types, type safety and errors caused by inconsistent use of values, association of types to names, type checking, type inference.
- Objects and encapsulation: privacy and visibility of class members, interfaces revealing only method signatures, inheritance, subtyping.
- Computational intelligence contents:
- Neural networks
- Evolutionary Systems
- Swarm intelligence
- Reinforcement learning
Y2Q4
- Software Project
- problem analysis, feasibility study, research, and risk analysis
- requirements engineering
- specifications and quality requirements
- implementation
- testing and validation
- delivery of a working product, including necessary documentation
Y3Q
- Q1-Q2: Non-CS minor
- Q3: Electives
- Q4: Research Project