Computer Engineering

The objective of the program is to provide students with the fundamental knowledge and interdisciplinary problem solving skills for a fulfilling career in high quality engineering work and advanced research, required in the information based society of the 21st century. The program emphasizes a solid background in basic science and mathematics, a strong preparation in hardware, software and theory towards the analysis, design and application of computers and information-processing techniques to the solution of real world problems. The courses are complemented with laboratory practice with state-of-the-art computing systems.  

CS-421 (2011-2012-Spring): Computer Networks
By: Assoc. Prof. Ezhan Karaşan

Basic concepts of data transmission. Overview of networks. ISO-OSI model description. Circuit switching, packet switching. Network topology. Physical link layer. Communication techniques. Data link layer, flow control and error recovery. Network layer. Local area networks. Examples of commonly used networks and their protocols.
Credits:3 ECTS: 6
Prerequisites: (CS 102 or CS 112 or CS 114) and (MATH 230 or MATH 250 or MATH 255)

CS 102 (2009-2010-Summer): Algorithms and Programming II
By: Asst. Prof. Özcan Öztürk

Enhanced Object-Oriented Programming with Java. Inheritance and polymorphism, abstract classes and interfaces, graphical-user-interfaces, exceptions. Abstract data structures: lists, stacks, queues and trees. Recursion. Files. Searching and sorting. Hashing. Time and space considerations. Students undertake a large design project involving teamwork, independent learning, writing and presenting of requirements, user-interface design, and project documentation.
Credits:4 ECTS: 7
Prerequisites: CS 101 or CS 111

CS-224 (2009-2010-Spring): Computer Organization
By: William Sawyer

Instruction set architecture (ISA), ISA design considerations, RISC vs. CISC, assembly and machine language, programming a RISC machine. Computer arithmetic, arithmetic logic unit, floating-point numbers and their arithmetic implementations. Processor design, data path and control implementation, micro programmed control, exception detection. Pipelining, hazards, pipelined processor design, hazard detection and forwarding, branch prediction and exception handling. Memory hierarchy, principles, structure, and performance of caches, virtual memory, segmentation and paging. I/O devices, I/O performance, interfacing I/O.
Credits:3 ECTS: 6
Prerequisites: CS-223

CS-411 (2008-2009-Summer): Software Architecture Design
By: Dr. Bedir Tekinerdoğan

This course teaches the basic concepts, methods and techniques for designing software architectures. The topics include: rationale for software architecture design, modeling software architecture design, architectural styles/patterns, architectural requirements analysis, comparison and evaluation of architecture design methods, synthesis-based software architecture design, software product-line architectures, domain modeling, domain engineering and application engineering, software architecture implementation, evaluating software architecture designs.
Credits:3 ECTS: 6
Prerequisites: Object-Oriented Software Engineering

CS-342 (2008-2009-Spring): Operating Systems
By: Asst. Prof. Dr. İbrahim Körpeoğlu

Introduction to operating systems concepts. The operating system as a resource manager. Command languages. Job management and job scheduling. Process management. Memory management, virtual memory, and paging. Interrupt structures and interrupt processing. Message-driven systems and data management. Device management, I/O systems, and I/O processing. Examples of operating systems such as MS-DOS, UNIX.
Credits:4 ECTS: 6
Prerequisites: CS-101 and CS-224