Bachelor’s Degree Courses
CSE007 - Computing OrientationIntroduction to the field of comuting. Overview of computing and their dependencies. Overview of the industrial practice of computing.
CSE111 - Fundamentals of ProgrammingIntroduction to computers, computer programs and the Java language, identifiers, variables, assignment statements, constants, data types, casting, selections, loops, methods, arrays, strings and characters.
Technologies used; Java 7 and Dr.Java
CSE112 - Object Oriented ProgrammingObjects and classes, constructors, static variables, constants and methods, visibility modifiers, passing objects and object arrays to methods, immutability, variable scopes, class abstraction and encapsulation, super and subclass concepts, inheritance, polymorphism, overriding, overloading, abstract classes, object-oriented design.
Technologies used; Java 7, UML Editor and NetBeans IDE
CSE202 - Data Structures and AlgorithmsAlgorithm analysis, linked lists, stacks, queues, trees, hashing, priority queues, sorting, graph data structures and graph algorithms.
Technologies used; Java 7 and NetBeans IDE
CSE222 - Database SystemsEntity-relationship model, database conceptual design, relational algebra, SQL, storage and indexing, B+ trees, hash indexes, query evaluation, external sorting, query optimization, normalization.
Technologies used; MySQL, Java 7, JDBC, SQL and NetBeans IDE
CSE252 - Human Computer InteractionPrinciples of human computer interaction. Elements of interactive computer systems, windows, and input devices. Window systems and dialogue control. Design of dialogues for interactive systems. Psychological, physiological, linguistic, and perceptual factors. Advantages and disadvantages of various interaction techniques, command language syntaxes, and data presentations. Design methodology and guidelines.
Technologies used; Java 8, Java FX, NetBeans IDE and Processing
CSE312 - Analysis of AlgorithmsDivide-and-conquer strategy, graph algorithms, depth first search, breadth first search, shortest path algorithms, greedy strategy, dynamic programming, linear programming, numeric algorithms, NP-complete problems, approximation algorithms.
CSE332 - Operating SystemsProcess abstraction, program loading and execution, multithreading, scheduling, synchronization, memory management, file systems, mass storage, I/O systems.
CSE334 - Computer NetworksNetwork architecture, network protocols, application layer, transport, congestion, routing, link protocols, multiple access, overview of communication architectures.
Technologies used; Java 8 and NetBeans IDE
CSE341 - Computer OrganizationAssembly language, computer arithmetic, datapath and control, pipelining, memory hierarchy, cache.
CSE342 - MicroprocessorsElements of microprocessor systems. Hardware and software analysis. Addressing techniques. Input/Output devices. Communication busses and links. Design of microprocessor based systems. Laboratory experiments and applications of microprocessor based systems and single board microcomputer systems: Arithmetic operations, loops, moving blocks of memory, stack and subroutines, parallel I/O, interrupts, timer operations.
Technologies used; Arduino IDE, C++ and Android Studio
CSE432 - Computer and Network SecurityPrinciples and practices of cryptography, network security and secure software: Types of attacks on computer and networks, techniques used by attackers, intrusion detection, incident response procedures and solutions, managing risks. Information security policies.
Technologies used; Java 8 and NetBeans IDE
CSE460 - Artificial IntelligenceRepresentation of knowledge. Search and heuristic programming. Logic and logic programming. Application areas of artificial intelligence: Problem solving, games and puzzles, expert systems, planning, learning, vision, and natural language understanding. Exercises in an artificial intelligence language.
CSE462 - Natural Language ProcessingLevels of natural language processing: Morphological, syntactic and semantic analysis. Transformational grammars. Applications in Prolog.
Technologies used; Python, PyCharm Edu
CSE482 - Advanced Java ProgrammingThis course aims to introduce the students to some concepts of advanced Java programming and practice on reusing components. It focuses on Graphical User Interface (GUI), multithreading, networking, and database manipulation. By completing the course, the students should be able to write sophisticated Java applications.
Technologies used; Java 8, Java FX, JPA, JavaMail, JDBC, JUnit, MySQL and NetBeans IDE
CSE485 - Data MiningThe aim of this course is to introduce the basic concepts of data mining and analysis. In this regard, we will cover the following subjects: data types, data preprocessing, frequent pattern mining, clustering, classication, feature selection, and data mining applications. Students will also learn how to efectively use them in real world scenarios.
Technologies used; Weka
IT486 - Geographical Information SystemsThis course aims to provide an understanding of the basic concepts and uses of GIS technology and corresponding concepts. After successfully completing the course, the student will: (a) understand the basic structures, concepts, theories, components and applications of GIS (b) gain an experience with a variety of GIS operations (c) understand GIS data including raster and vector data, data sources of GIS (d) describe topology and provide examples of topological relationships (e) spatial analysis and use spatial analysis to solve geographic problems (f) understand typical uses of GIS in the real world
Technologies used; QGIS
IT491 - Advanced Database SystemsFundamentals of relational databases, Data layout, buffer systems, file management, indexing techniques (tree-based and hashing). Query processing methodology, implementation of relational operators, external sorting, query optimization. Transaction models, concurrency control algorithms, database recovery.
Technologies used; MySQL, SQL