The first semester of second year rounds out the mathematical and human-values foundation while introducing the core computing sequence: digital logic, data structures, and object-oriented programming in Java. Two lab courses pair with their theory subjects, and a skill-enhancement course introduces Python. Total load for the semester is 16-2-8 contact hours for 20 credits.

Subjects

Discrete Mathematics & Graph Theory

  • Total: 3-0-0, 3 credits (BS&H)
  • Unit 1: Mathematical logic — statements, connectives, normal forms, and inference in propositional and predicate calculus.
  • Unit 2: Set theory, relations, functions, and algebraic structures such as groups, subgroups, and lattices.
  • Unit 3: Combinatorics — permutations, combinations, and binomial/multinomial expansions.
  • Unit 4: Recurrence relations and generating functions, including solving recurrences by substitution and characteristic roots.
  • Unit 5: Graph theory fundamentals — isomorphism, trees, spanning trees, planarity, and Euler/Hamiltonian graphs.
  • Course outcomes emphasize applying logic and set theory to computing problems, counting techniques, solving recurrences, and using graph theory in computer science contexts.

Universal Human Values II: Understanding Harmony

  • Total: 2-1-0, 3 credits (BS&H)
  • Unit 1: Foundations of value education — self-exploration, natural acceptance, and the basis for a holistic outlook.
  • Unit 2: Harmony within the individual — distinguishing the self from the body and understanding their relationship.
  • Unit 3: Harmony in family and society — trust, respect, and a vision for a humane social order.
  • Unit 4: Harmony with nature — interconnectedness and the different orders of existence.
  • Unit 5: Applying holistic understanding — ethical conduct, professional ethics, and strategies for value-based living.
  • Delivered as a mix of lectures and practice-session tutorials; outcomes focus on relating personal values to relationships, society, and responsible engineering practice.

Digital Logic & Computer Organization

  • Unit 1: Data representation and digital logic circuits — number systems, binary codes, logic gates, and combinational circuit minimization.
  • Unit 2: Sequential circuits (flip-flops, registers, counters) and foundational computer organization concepts including bus structures and processor generations.
  • Unit 3: Computer arithmetic — addition/subtraction of signed numbers, fast adders, multiplication, division, and floating-point representation.
  • Unit 4: Memory organization — ROM types, cache, and virtual memory management.
  • Unit 5: Input/output organization — interrupts, DMA, buses, and standard I/O interfacing.

Advanced Data Structures & Algorithm Analysis

  • Total: 3-0-0, 3 credits (Professional Core)
  • Unit 1: Algorithm analysis fundamentals and asymptotic notation, plus AVL trees and B-trees.
  • Unit 2: Heaps/priority queues, graph terminology and representation, and divide-and-conquer strategy.
  • Unit 3: Greedy method applications — minimum spanning trees and single-source shortest paths — plus dynamic programming for knapsack, string editing, and travelling salesperson problems.
  • Unit 4: Backtracking techniques, including graph coloring and the 0/1 knapsack problem.
  • Unit 5: NP-hard and NP-complete problem classes, including clique decision and scheduling problems.

Object Oriented Programming Through Java

  • Total: 3-0-0, 3 credits (Professional Core)
  • Unit 1: Java program structure, data types, operators, and control statements.
  • Unit 2: Classes, objects, constructors, access control, and method overloading.
  • Unit 3: Arrays and inheritance, including interfaces and abstract classes.
  • Unit 4: Packages, the Java utility library, wrapper classes, and exception handling.
  • Unit 5: String handling, multithreading, JDBC-based database connectivity, and building simple GUIs with JavaFX.

Advanced Data Structures & Algorithm Analysis Lab

  • Total: 0-0-3, 1.5 credits
  • Hands-on work constructing and manipulating AVL trees and B-trees.
  • Graph traversal implementations (BFS/DFS) and biconnected component detection.
  • Sorting algorithm comparisons (quicksort, merge sort) across best/average/worst cases.
  • Minimum spanning tree and shortest-path algorithm implementations.
  • Backtracking and branch-and-bound exercises: N-Queens, 0/1 knapsack, and travelling salesperson.

Object Oriented Programming Through Java Lab

  • Total: 0-0-3, 1.5 credits
  • Core language exercises: variables, roots of quadratic equations, searching and sorting.
  • Class, constructor, and method-overloading exercises.
  • Inheritance, exception handling, and user-defined exception practice.
  • Thread creation, event handling, and package/interface usage.
  • File I/O, JDBC connectivity, and a JavaFX GUI mini-project.

Python Programming (Skill Enhancement Course)

  • Total: 0-1-2, 2 credits
  • Unit 1: Python fundamentals — identifiers, data types, control flow, and exception handling.
  • Unit 2: Functions, argument passing, and string manipulation.
  • Unit 3: Lists, dictionaries, tuples, and sets with their built-in operations.
  • Unit 4: File handling and an introduction to object-oriented programming in Python.
  • Unit 5: Data-science building blocks — JSON/XML handling, NumPy arrays, and Pandas data frames.

Environmental Science (Audit Course)

  • Total: 2-0-0, 0 credits
  • Unit 1: Multidisciplinary nature of environmental studies and classification of natural resources.
  • Unit 2: Ecosystem structure, function, and major ecosystem types.
  • Unit 3: Biodiversity, conservation strategies, and threats to endangered species.
  • Unit 4: Environmental pollution types, solid-waste management, and disaster response.
  • Unit 5: Social issues tied to the environment, population growth, and environmental legislation, supplemented by field visits.