Bachelor’s Degree Courses
Click on GitHub icon to see projects done for a course or click to see the main repository for Bachelor’s Degree Projects
CSE007 - Computing Orientation
Introduction to the field of comuting. Overview of computing and their dependencies. Overview of the industrial practice of computing.CSE111 - Fundamentals of Programming
Introduction 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 Programming
Objects 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 Algorithms
Algorithm 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 Systems
Entity-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 Interaction
Principles 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 Algorithms
Divide-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 Systems
Process abstraction, program loading and execution, multithreading, scheduling, synchronization, memory management, file systems, mass storage, I/O systems.CSE334 - Computer Networks
Network 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 Organization
Assembly language, computer arithmetic, datapath and control, pipelining, memory hierarchy, cache.CSE342 - Microprocessors
Elements 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 Security
Principles 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 Intelligence
Representation 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 Processing
Levels of natural language processing: Morphological, syntactic and semantic analysis. Transformational grammars. Applications in Prolog.Technologies used; Python, PyCharm Edu
CSE482 - Advanced Java Programming
This 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 Mining
The 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 Systems
This 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 worldTechnologies used; QGIS
IT491 - Advanced Database Systems
Fundamentals 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