Istanbul Bilgi University Department of Computer Science
Previous Home > Courses > Course Descriptions Next
Home
   About This Site
   Academic Policies
   Academic Staff
   Acm-istanbul
   Courses
      Course Descriptions
      Year 0
      Year 1
      Year 2
      Year 3
      Year 4
   Curiosity Corner
   High School Computer Clubs Project
   Lab Rules
   Links
   Member Help
   News
   Other Stuff
   Standards Project
   Tanitim
   Turing Days
   Usage Statistics
   Yarışma

COMP 111 - Introduction to Programming I

The aim of this course is to equip students with the basic practical and theoretical skills they will need to write effective computer programs. The course covers basic programming concepts, techniques, documentation and standards. The course includes a substantial practical element and the lessons learnt should enable students to programme effectively in any language they may encounter. On completion of the course, students should be able to write programs atht can manipulate data structures as complicated as lists and have a firm grasp of the value of abstraction in program design.
Credit(s): 3

COMP 112 - Introduction to Programming II

COMP 112 builds on the foundation laid in COMP 111. The course will introduce students to further abstractions such as accumulation and the use of mutable structures. The course includes a substantial practical element and the lessons learnt should enable students to programme effectively in any language they may encounter.
Credit(s): 3
Prerequisite(s): COMP 111

COMP 131 - Introduction to Computing


Credit(s): 3

COMP 141 - Special Topics in Computer Science


Credit(s): 3

COMP 151 - Using Computers Productively

Effective and productive use of computers involves more than just programming. Many tasks can be accomplished using existing tools or techniques that involve only limited programming. This course focuses on the effective use of these tools. Students will learn to use a variety of tools to perform data manipulation tasks, to create, share and maintain documents of acceptable professional quality, to create prototype data processing applications, to set up web sites and perform other online and offline computing tasks. The course includes a substantial practical element.
Credit(s): 3

COMP 152 - Practical Programming

This course provides an introduction to programming using a commercially popular programming language, writing the programs in imperative style. At the conclusion of the course a student should be able to write simple programs in both iterative and recursive style that can accept input and produce output and manipulate basic data structures such as strings and arrays
Credit(s): 3
Special Condition(s): COMP 111 and COMP 151

COMP 197 - Seminar I

This course involves weekly scheduled talks given by invited speakers who will present seminars in various fields of theoretical and practical aspects of computer science. Students should attend these seminars. They will be evaluated in accordance with their attendance on the basis of a Pass or Fail grade.
Credit(s): 0

COMP 198 - Seminar II

This course involves weekly scheduled talks given by invited speakers who will present seminars in various fields of theoretical and practical aspects of computer science. Students should attend these seminars. They will be evaluated in accordance with their attendance on the basis of a Pass or Fail grade.
Credit(s): 0

COMP 201 - Business Information Technology


Credit(s): 3

COMP 202 - Business Information Systems

The aim of this course is to provide students with knowledge of the structure of business information systems and how they are designed to support management decision making. A student completing this unit will be able to identify the various methods of processing data and their business application, construct a database and use it to perform basic queries, understand the approaches to the design and development of business information systems, appreciate the legal, ethical and organisational issuesrelating to the security and control of business data and finally select a system for a given business need.
Credit(s): 3

COMP 211 - Digital Systems

The electronic computer is a device that has completely evolved within living memory. This course aims to introduce the history and evolution of the computer and show how the shape of the computers we use today is a product of that evolution. Students will learn enough about Boolean logic and logical circuits to understand in principle how the processor of a modern computer works and be able to sketch the design of a simple computer.
Credit(s): 3

COMP 222 - Computer Organization

This course extends the knowledge gained in COMP 211 to cover the additions to the basic computer design that make modern computers the powerful real time tools that they are. Among the subjects covered are interrupts, processor states, memory mapping and caching, virtual memory and how computers are designed to provide support for sophisticated operating systems. The practical element of the course includes some machine level (assembly) programming. Students should complete the course with the ability to undertake small scale machine level programming tasks involving manipulation of the computer processor features covered in the course and the necessary theoretical understanding of the support provided by computer hardware for modern operating systems.
Credit(s): 3
Special Condition(s): COMP 211

COMP 231 - Data Structures and Algorithms I

This course covers the basic science behind the use of computers to provide effective and efficient methods for carrying out tasks. Tasks examined include data storage and retrieval, sorting and searching, semi-numerical tasks such as encryption, planning and optimisation tasks, problems, space searches and games playing. To carry out these tasks, both algorithms and structures for the storage of data need to be specified. Mathematical tools have to be developed that enable us to measure the fundamental effectiveness of algorithms and in particular the way these algorithms scale as the size of the task being performed increases. This course introduces the basic sorting and searching methods and dynamic data structures such as linked lists and trees.
Credit(s): 3
Special Condition(s): COMP 112
Prerequisite(s): COMP 111

COMP 232 - Data Structures and Algorithms II

This course builds on COMP 231 to apply similar techniques to analyse more sophisticated algorithms and data structures. Topics covered include various tree types, graphs, storage structures and algorithms suitable for storage and retrieval of data to and from secondary storage, greedy algorithms, graph search and traversal and random algorithms.
Credit(s): 3
Special Condition(s): COMP 231
Prerequisite(s): COMP 112 and COMP 152

COMP 241 - Theoretical Skills in Computer Science


By the end of the course, students are supposed to be equipped with some mathematical skills required for their study in the field of computer science. In particular, they learn basic concepts about complex numbers, matrices and linear equations, vector spaces, linear mappings, composition and inverse mappings, scalar product and inverse mappings, determinants, eigenvectors and eigenvalues.
Credit(s): 3

COMP 242 - Signals and Systems

The course aims to teach the basic concepts of discrete signals and systems. These concepts include: discrete-time signals: sampling theorem: causality, stability, time invariance and linearity: design of linear time-invariant discrete systems: impulse response: design of finite-impulse response and infinite-impulse response systems: discrete-time Fourier transform (DFT): DFT algorithms: the z-transform and the region of convergence: stabilisation of unstable systems and implementation of discrete algorithms by using Math Lab.
Credit(s): 3
Special Condition(s): MATH 164

COMP 251 - System Programming


Credit(s): 3

COMP 252 - Introduction to Graphical User Interface Design

This course aims to introduce graphics contexts and graphics objects and how to produce applets and applications with user-friendly graphical user interfaces (GUIs). The course studies GUI capabilities including some advanced GUI components, such as textareas, canvases, scrollbars, frames, menus, dialogue boxes, scrolling panels and pop up menus.
Credit(s): 3

COMP 261 - Object Oriented Programming

This course build on 152, tecahing students to write programs in object oriented style using a commercially popular programming language. At the completion of the course students should be able to produce complete programs in object oriented style, making appropriate use of techniques such as polymorphism and inheritance.
Credit(s): 3
Special Condition(s): COMP 152
Prerequisite(s): COMP 111 and COMP 151

COMP 262 - Large Scale Programming

This course builds on COMP 261 to move on to the techniques involved in producing larger computer systems in an object-oriented programming environment. Subjects covered will include various types of layered and modularised implementation, code reusability and implementations involving more than one execution environment.
Credit(s): 3
Special Condition(s): COMP 261
Prerequisite(s): COMP 112 and COMP 152

COMP 291 - Selected Topics in Computer Science I

The course has been introduced to study various topics in Computer Science.
Credit(s): 3

COMP 292 - Selected Topics in Computer Science II

The course has been introduced to study various topics in Computer Science.
Credit(s): 3

COMP 297 - Seminar I

This course involves weekly scheduled talks given by invited speakers who will present seminars in various fields of theoretical and practical aspects of computer science. Students should attend these seminars. They will be evaluated in accordance with their attendance on the basis of a Pass or Fail grade.
Credit(s): 0

COMP 298 - Seminar II

This course involves weekly scheduled talks given by invited speakers who will present seminars in various fields of theoretical and practical aspects of computer science. Students should attend these seminars. They will be evaluated in accordance with their attendance on the basis of a Pass or Fail grade.
Credit(s): 0

COMP 301 - Automata and Formal Language Theory

Finite state automata provide a model for the way in which computers can parse some languages. This course looks at the theoretical basis for the techniques used in compiler construction and editors and text processors. Subjects covered include the following: automata theory. Finite state automata and regular expressions. Classification of grammars. Pushdown automata and context free grammars. Context sensitive grammars and linear bounded automata. Turing machines. Computability and recursive functions.
Credit(s): 3

COMP 302 - Automata and Formal Language Theory

Finite state automata provide a model for the way in which computers can parse some languages. This course looks at the theoretical basis for the techniques used in compiler construction and editors and text processors. Subjects covered include the following: automata theory: finite state automata and regular expressions: classification of grammars: pushdown automata and context free grammars: context sensitive grammars and linear bounded automata: Turing machines: computability and recursive functions.
Credit(s): 3

COMP 303 - Human-Computer Interaction

This course aims to cover the design of the interface between human and computer.
Credit(s): 3
Special Condition(s): COMP 232

COMP 304 - Computer Graphics

This course aims to introduce students to modern techniques for the production of 3-D and animated graphics. Topics covered include hidden line removal, shading and texturing and ray tracing techniques. In the practical section of the course, students will gain familiarity with standard tools such as the OpenGL interface and other graphic production tools.
Credit(s): 3
Prerequisite(s): COMP 112 or COMP 152

COMP 306 - Operating Systems

Operating systems play a fundamental role in the use of computers and are commercially of enormous importance. This course looks at how they work. Contents include: classification and structure of operating systems: storage media: memory management and dynamic storage strategies: scheduling algorithms: I/O and interrupt structures: protection and security: queuing and network control models: systems software: linkers, loaders, assemblers, translators and programming environments: case studies of existingoperating systems and implementation of operating system modules.
Credit(s): 3
Special Condition(s): COMP 222
Prerequisite(s): COMP 112

COMP 311 - Operating Systems


Credit(s): 3

COMP 312 - Principles of Programming Languages

This course explores different models and paradigms for the construction of computer languages and how the meanings of programs written in these languages can be interpreted.
Credit(s): 3
Special Condition(s): COMP 313

COMP 313 - Structure and Interpretation of Computer Programs

This course examines from first principles the nature of computer programs. Starting from the lambda calculus, studenst will investigate different paradigms for the construction and evaluation of computer programs
Credit(s): 3
Prerequisite(s): COMP 112

COMP 321 - Computer Networks Programming I

The connection of computers in networks, whether local or wide area, has added a new dimension to the power of the computer. This course aims to introduce students to the standards that make this power possible and the theoretical concepts needed to understand it. The practical element of the course involves the writing of programmes that use the various protocol stacks to carry out network computing tasks. Subjects covered include the following: overview of computer networks: network architecture and ISO model: network topology: connectivity analysis, delay analysis and backbone analysis: physical layer: transmission and multiplexing, terminal handling, errors: data link layer and link protocols: network layer: routing and congestion, satellite networks, local networks: transmission and session layer, presentation layer and application layer.
Credit(s): 3
Prerequisite(s): comp 112 and comp 152

COMP 322 - Computer Networks and Network Programming

This course looks at programming for network based systems. Subjects covered include network protocols, network traffic and security, distributed programming, and emerging network technologies. The course includes practical network programming.
Credit(s): 3
Prerequisite(s): COMP 112

COMP 331 - Software Engineering

There is a crisis in the development of computer systems. In particular, the development of large computer systems often takes far more time and money than planned and sometimes major projects fail completely and have to be abandoned. This course looks at the battery of techniques used to try and avoid these problems and bring a scientific approach to the management of software development.
Credit(s): 3
Special Condition(s): COMP 232

COMP 332 - Software Engineering

There is a crisis in the development of computer systems. In particular, the development of large computer systems often takes far more time and money than planned and sometimes major projects fail completely and have to be abandoned. This course looks at the battery of techniques used to try and avoid these problems and bring a scientific approach to the management of software development.
Credit(s): 3
Prerequisite(s): COMP 112

COMP 341 - Operations Research


Credit(s): 3

COMP 342 - Systems Simulation


Credit(s): 3

COMP 351 - Fundamentals of Image Processing

The course aims to study basic concepts of image processing. Topics covered include image formation and digitisation, space and wave number domain, edge detection, image segmentation, restoration and reconstruction, image processing systems: dedicated image processing hardware and programmable systems.
Credit(s): 3

COMP 352 - Introduction to Natural Computation


Credit(s): 3

COMP 361 - Computer Controlled Systems


Credit(s): 3

COMP 362 - Digital Control


Credit(s): 3

COMP 371 - Machine Level Programming

This course starts from the machine level architecture of digital computers. Subjects covered include instruction types addressing modes, flow of control parameter passing, stack and stack frame, interrupts processor states, memory protection, virtual memory, caching. The course also covers assembly linking and loading, the use of programme maintenance tools and the use of both assembly language and of a high level language capable of being used for machine level programming.
Credit(s): 3
Special Condition(s): COMP 222

COMP 372 - Artificial Neural Networks

The course covers basic neural network architectures and learning algorithms, for applications in pattern recognition, classification, function approximation and sequential decision problems. Three forms of learning (supervised, unsupervised and reinforcement learning) are introduced and applications of these are discussed.
Credit(s): 3

COMP 381 - Database Systems I

Almost all large data processing systems rely on a generalised database to store and retrieve data. This course aims to look at the theoretical and technical issues involved in the implementation of such generalised databases. Course contents include introduction to databases: entity relationship model: physical database design and access strategies: relational data model: SQL data manipulation language: theoretical data manipulation language: normal forms and logical database design: query processing: concurrency control and recovery in databases: implementation of a simple storage manager and design of a relational database.
Credit(s): 3
Special Condition(s): COMP 232
Prerequisite(s): COMP 112

COMP 382 - Database Systems II

This course builds on and develops the content of COMP 381. Course contents include basic structures of database models: logic for knowledge bases: resolution refutation: deduction: deductive databases: recursive and nonrecursive query processing and object-oriented databases.
Credit(s): 3
Special Condition(s): COMP 381
Prerequisite(s): COMP 112

COMP 392 - Automatic Control

The course aims to cover a brief history of automatic control, classification of control systems, principles of open-loop and closed-loop control systems, the Laplace transform method and its properties, transfer functions, block diagrams, signal-flow graph models, analysis methods of control systems in the time domain, first-order systems, second-order systems, time responses of the systems, steady-state error of systems, sensitivity of control systems to parameter variations, stability analysis of linear feedback control systems, the concept of stability, the Routh-Hurwitz stability criterion and the root-locus concept and method, an example of control system analysis using the root-locus method.
Credit(s): 3

COMP 397 - Seminar I

This course involves weekly scheduled talks given by invited speakers who will present seminars in various fields of theoretical and practical aspects of computer science. Students should attend these seminars. They will be evaluated in accordance with their attendance on the basis of a Pass or Fail grade.
Credit(s): 0

COMP 398 - Seminar II

This course involves weekly scheduled talks given by invited speakers who will present seminars in various fields of theoretical and practical aspects of computer science. Students should attend these seminars. They will be evaluated in accordance with their attendance on the basis of a Pass or Fail grade.
Credit(s): 0

COMP 403 - Selected Advanced Topics in Computer Science I

This course provides a study of advanced special topics in Computer Science.
Credit(s): 3
Prerequisite(s): COMP 112

COMP 404 - Selected Advanced Topics in Computer Science II

This course provides a study of advanced special topics in Computer Science.
Credit(s): 3
Prerequisite(s): COMP 112

COMP 406 - Artificial Neural Networks

The course covers basic neural network architectures and learning algorithms, for applications in pattern recognition, classification, function approximation and sequential decision problems. Three forms of learning (supervised, unsupervised and reinforcement learning) are introduced and applications of these are discussed.
Credit(s): 3

COMP 411 - Microprocessor-based Systems Design


Credit(s): 3

COMP 412 - Parsing, Compiling and Interpreting

The implementation of compilers has enabled the production increasingly large computer systems. Compilers and assemblers play a crucial role and at the same time are good examples of large and complex programmes that have at least in part a sound mathematical basis for the way they work. This course studies the different ways in which compilers and assemblers can be constructed and the different language models that are used.
Credit(s): 3

COMP 421 - Computer Aided Design of Control Systems I

This course aims to introduce control systems and their applications, open-loop and closed-loop systems, transient and steady-state responses of control systems, stability issues, basic control actions, PI, PD, PID controllers, Routh's stability criteria, static position, velocity and acceleration constants.
Credit(s): 3

COMP 422 - Computer Aided Design of Control Systems II

This course provides a basic understanding of fundamentals of Root-Locus analysis, control system design by the Root-Locus method, compensation systems, lead, lag, lag-lead compensation, analysis of control systems in state-space, solution of LTI systems, controllability, observability, design of control systems in state-space, pole-placement technique, state observers.
Credit(s): 3
Special Condition(s): COMP 421

COMP 431 - Artificial Intelligence and Symbolic Programming

This course aims to study the basic concepts of artificial intelligence. Topics covered include representation of knowledge, search and heuristic programming, logic and logic programming, application areas of artificial intelligence: problem-solving, game and puzzles, expert systems, planning, natural language understanding and learning.
Credit(s): 3

COMP 441 - Introduction to Computer Graphics


Credit(s): 3

COMP 451 - Dissertation I

Students will carry out a project to investigate an advanced topic under the supervision of an advisor. They will be required to make regular written and verbal presentations on their progress.
Credit(s): 3

COMP 452 - Dissertation II

Students will continue their project to investigate an advanced topic under the supervision of an advisor. They will be required to make regular written and verbal presentations on their progress. At the end of the term, the student will deliver a written dissertation on the project and make a verbal presentation to a jury who will assess the dissertation.
Credit(s): 3
Special Condition(s): COMP 451

COMP 461 - Web Services and Systems

Programmes running on one computer to provide services to users or computers elsewhere are becoming increasingly important. A number of programming languages and programming environments have evolved specifically to address this need. This course looks at the issues involved in writing service-providing programmes, using the latest programming languages and technology.
Credit(s): 3
Special Condition(s): COMP 232
Prerequisite(s): COMP 112

COMP 462 - Computer Architecture


Credit(s): 3

COMP 471 - Digital Control

This course aims to cover the analysis of discrete-time systems, the z-transform and its properties, the inverse z-transform, solving difference equations by the z-transform, pulse transfer function, TF of open-loop and closed-loop discrete time systems,response of closed-loop systems, steady-state errors, stability analysis in the z-plane, mapping from s-plane into z-plane, bilinear transformations, the Routh-Hurwitz criterion, the root-locus of digital control systems, discretisation procedures, numerical approximations, Euler's, Tustin's and matched pole-zero methods, digital PID controllers and implementation of PID controllers.
Credit(s): 3

COMP 472 - Parallel and Distributed Systems

Combining many processors to perform a single task has provided a very cheap and effective way of building very powerful computers for a certain set of suitable tasks. This course studies the technical and theoretical issues involved. The course contentsinclude the following: overview of distributed systems: basic architectural models: network transparent message passing and remote procedural call: distributed file and directory systems: client server model: distributed operating systems: distributed deadlock detection: multi-site concurrency control, replication and error recovery.
Credit(s): 3
Prerequisite(s): COMP 112

COMP 474 - Parallel Programming

Parallel programming models, languages and environments. Parallel programming languages and runtime systems: data parallel languages, message passing libraries and language constructs, data-driven object-based languages, shared memory programming, multithreading. Parallel methods for computations in the areas of bionformatics, quantum computing computational physics (e.g., many body problems), other disciplines (e.g., graph drawing, genetic algorithms, simulated annealing).
Credit(s): 3

COMP 481 - Management Information Systems/ERP Systems I

ERP systems aim to manage the entire operation of an enterprise in one integrated computer system. This course studies the managerial and technical issues involved in the implementation of such systems and the advantages and disadvantages of the various fourth-generation solutions available.
Credit(s): 3
Restriction(s): BUS 461

COMP 482 - Management Information Systems/ERP Systems II

This project involves the implementation of or modification of a portion of an ERP system. Depending on the size of the project, this may be an individual or a team effort.
Credit(s): 3
Special Condition(s): COMP 481
Restriction(s): BUS 462

COMP 491 - Computer-Aided Design and Manufacturing


Credit(s): 3

COMP 492 - Design of Inteligent Systems

This course looks at the practical application of the artificial intelligence techniques introduced in Comp 431. The course includes a team project to produce an intelligent application.
Credit(s): 3

COMP 497 - Seminar I

This course involves weekly scheduled talks given by invited speakers who will present seminars in various fields of theoretical and practical aspects of computer science. Students should attend these seminars. They will be evaluated in accordance with their attendance on the basis of a Pass or Fail grade.
Credit(s): 0

COMP 498 - Seminar II

This course involves weekly scheduled talks given by invited speakers who will present seminars in various fields of theoretical and practical aspects of computer science. Students should attend these seminars. They will be evaluated in accordance with their attendance on the basis of a Pass or Fail grade.
Credit(s): 0