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.