Bilgisayar Mühendisliği
Akademik Undergraduate Course Descriptions

Undergraduate Course Descriptions


Course Code Course Name Credit
CSE 007 Computing Orientation (1+0+0) 1 ECTS : 1
Introduction to the field of comuting. Overview of computing and their dependencies. Overview of the industrial practice of computing.
CSE 111 Fundamentals of Programming (3+0+2) 4 ECTS : 7
Introduction to computers, computer programs and the Java language, identifiers, variables, assignment statements, constants, data types, casting, selections, loops, methods, arrays, strings and characters.
CSE 112 Object Oriented Programming (2+0+2) 3 ECTS : 6
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.
Prerequisite: CSE111
CSE 202 Data Structures and Algorithms (3+1+2) 4 ECTS: 6

Algorithm analysis, linked lists, stacks, queues, trees, hashing, priority queues, sorting, graph data structures and graph algorithms.
Prerequisite: CSE 112

[This course is equivalent to IT 202:Data Structures and Algorithms (3+1+2)4 ]

CSE 222 Database Systems 3+1+2) 4 ECTS: 7

Entity-relationship model, database conceptual design, relational algebra, SQL, storage and indexing, B+ trees, hash indexes, query evaluation, external sorting, query optimization, normalization.
Prerequisite: CSE112

CSE 252 Human Computer Interaction (3+0+0) 3 ECTS: 5
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.
Prerequisite: CSE111
SE 301 Software Engineering (3+0+2) 4 ECTS: 7
Introduction to software engineering, UML, requirements elicitation, analysis, system design, object design, testing, project management, software life cycle.
Prerequisite: CSE 202
SE 302 Software Development Practice (1+0+4) 3 ECTS: 7

Software life cycle, project organization and communication, rationale management, software configuration management, software project management, development of a large size software product by working in teams.
Prerequisite: SE301 or Consent of Instructor

[This course is equivalent to IT 305 Computer Organization (3+1+0) 3 ]

CSE 304 Principles of Programming Languages (3+0+0) 3 ECTS: 7
Syntax and semantics of programming languages, data storage and control, binding of identifiers, definitions, sequences and concurrent processes. Key features of programming languages.
Prerequisite: CSE 112
SE 304  Software Project Management (2+0+2) 3 ECTS: 6
Managing Software Life Cycle: Managing requirements elicitation, analysis, systems design, object design, implementation, and testing. Rationale Management. Configuration Management. Project Management.
Prerequisite: CSE 202
SE 311 Internet and Web Programming (2+0+2) 3 ECTS: 6
Introduction to HTML, intermediate HTML 4, Javascript control structures, functions, arrays, objects, dynamic HTML - CSS, object model and collections, event model, filters and transitions.
Prerequisite: CSE 111
CSE 312 Analysis of Algorithms (3+1+0) 3 ECTS: 7
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.
Prerequisite: CSE 202+ MATH 142
SE 322 Systems Programming                                                           (2+0+2) 3 ECTS: 6
System software overview: Assemblers, linkers, loaders, compilers, interpreters, script languages, window systems. Unix environment and tools. BASH programming, Perl programming, CGI programming. Assembly language programming. Memory layout of C programs. Unix system calls.
Prerequisite: CSE 111
CSE 332 Operating Systems (3+1+0) 3 ECTS: 6
Process abstraction, program loading and execution, multithreading, scheduling, synchronization, memory management, file systems, mass storage, I/O systems.
Prerequisite: CSE 112
CSE 334 Computer Networks (3+0+0) 3 ECTS: 5
Network architecture, network protocols, application layer, transport, congestion, routing, link protocols, multiple access, overview of communication architectures.
Prerequisite: Consent of the instructor.
CSE 341 Computer Organization (3+1+0) 3 ECTS: 7
Assembly language, computer arithmetic, datapath and control, pipelining, memory hierarchy, cache.
Prerequisite: EE 240 or IT 204
CSE 340 Distributed Computing (3+0+0) 3 ECTS: 6
Motivation, parallel architectures, parallel algorithm design, message-passing programming, shared-memory programming, performance analysis, MPI and OPENMP frameworks, example problems.
Prerequisite: CSE 312
CSE 342 Microprocessors (2+1+2) 3 ECTS: 6
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.
Prerequisite: EE 240 or IT 204
CSE 344 Computer Architecture (3+0+0) 3 ECTS: 6
Pushing a single processor to its limits. Instruction set design and its effects on computer performance. Microprogramming. Addressing techniques. Memory hierarchy. Associative, virtual and cache memory. Memory management. Interrupts, DMA and channels. Comparative study of commercial computer architectures.
Prerequisite:CSE 341
CSE 415 Theory of Computation (3+0+0) 3 ECTS: 6
Overview of Automata Theory: The Church-Turing thesis, decidability, reducibility, time complexity, space complexity, intractability. Probabilistic machines. Quantum computation.
Prerequisite: MATH 142
CSE 425 Multimedia Techniques and Applications (3+0+0) 3 ECTS: 6
Principles and current technologies of multimedia system applications. Elementary digital signal processing. Multimedia system applications. Multimedia hardware and software, effectively representing, processing, retrieving multimedia data, graphics, sound and music, image and video.
Prerequisite: Consent of the instructor
CSE 432 Computer and Network Security (3+0+0) 3 AKTS: 6
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.
Prerequisite: MATH 142 and MATH 230
CSE 434 Network Programming (3+0+0) 3 ECTS: 6
TCP/IP basics. Network and transport layer services, attributes, Unix interprocess communication, Pipes/FIFOs/Message Queues/Semaphores/Shared Memory. Threads and condition variables, sockets (BCast/MCast, Raw Sockets, Nonblocking I/O). Remote procedure calls.
Prerequisite: CSE 334 or Consent of Instructor
CSE 436 Communication Network Applications (3+0+0) 3 ECTS: 6
Overview of different network protocols and applications. Network modeling, Markov chains, design and analysis of queuing models. Analysis of Automatic Request Repeat (ARQ) protocols. Multiple access protocols (ALOHA, CSMA, Ethernet, Token Ring). ATM networks. PNNI, OSPF, BGP, MPLS routing protocols.
Prerequisite: CSE 312
CSE 450 Computer Graphics (3+0+0) 3 ECTS: 6
Overview of graphics systems. Output primitives and their attributes. 2D transformations, windowing and clipping. Segments. Interactive input. 3D representation and viewing. Hidden line and hidden surface removal. Shading and color. Modeling.
Prerequisite: MATH 200 and CSE 201
CSE 460 Artificial Intelligence (3+0+0) 3 ECTS: 6
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.
Prerequisite: CSE 202
CSE 462 Natural Language Processing (3+0+0) 3 AKTS: 6
Levels of natural language processing: Morphological, syntactic and semantic analysis. Transformational grammars. Applications in Prolog.
Prerequisite: CSE 202
CSE 490 Project (0+0+8) 4 ECTS: 7
Design and development of a project for a computer engineering problem under the supervision of an academic advisor; submission of the results in the form of a project report and oral presentation.
Prerequisite: CSE 312, Senior standing and Consent of the department
CSE 491-499 Special Topics (3+0+0) 3 ECTS: 6
Special topics in computer science and engineering.
Prerequisite: Consent of the instructor