There are no translations available.
Course Descriptions
CMPE1001 Intro. to Programming (C++)
In this course, students will learn how to develop efficient algorithms and write computer programs in C++. Fundamental programming concepts will be discussed and students will gain handson experience to develop their programming and algorithmic and objectoriented thinking.
CMPE1002 Object Oriented Programming (C++)
This course provides indepth coverage of objectoriented programming principles and techniques using C++. Topics include classes, overloading, data abstraction, information hiding, encapsulation, inheritance, polymorphism, file processing, templates, exceptions. Prerequisite or Corequisite: CMPE1001
CMPE1004 Intro. to Digital Logic and Microprocessors
This course features a strong emphasis on the fundamentals underlying contemporary logic. The topics include digital systems and information, combinational logic circuits, combinational logic design, arithmetic functions and circuits, sequential circuits, etc.
CMPE1401 Intro. to Programming (C)
Students will learn how to develop efficient algorithms and write computer programs in C. Fundamental programming concepts will be discussed and students will gain handson experience to develop their programming and algorithmic thinking.
CMPE1403 Intro. to Programming (VB)
In this course, students will learn how to develop efficient algorithms and write computer programs in VB .NET. Fundamental programming concepts like eventdriven Windows programming, data types, objects and properties, menus, procedures, control structures, loops, strings, arrays, and file processing will be discussed and students with no prior programming experience will gain handson experience to develop their programming and algorithmic.
CMPE1404 Problem Solving with VB
Advanced Visual Basic Controls, File Access, Graphics Controls in Visual Basic, Database Management, Introduction to Object Oriented Programming, An Overview of the Professional Business Computer Programs used in Industrial Engineering field. Each student will do programming projects where he/she will have an opportunity to show his/her ability from modeling to computer solution and implementation of selected problems.
CMPE1900 Introduction to Information Technologies
Main objective is to give a brief for the practical use of computers and information technologies to acquire, manage, and use information that will be vital to the personal and professional lives will be presented. Basic computer hardware and software concepts, computer networks, effective use of internet, Microsoft Office programs and their use in the respective fields, web page design and web site publishing preliminaries will be carried out.
CMPE2002 Systems Programming
Introduction to the UNIX operating system using Linux. Coverage will include using UNIX shells, commands, the role of the system administrator, the UNIX file system, editors, file processing, shell programming utilities, PERL and CGI programming, Connecting databases, PHP programming. Prerequisite: CMPE1002
CMPE2003 Data Structures and Algorithms (C++)
Strategies of algorithm design: topdown design, divide and conquer, average and worstcase criteria, asymptotic costs. Some key data structures: arrays, lists, stacks, queues, trees, graphs, hash tables. Applications to sorting and searching, shortestpath and spanning tree problems. Graph algorithms: depth first and breadth first search. Implementation of the above mentioned in C++ in dedicated lab sessions.
CMPE2004 Advanced Programming
Course Content: This course aims to introduce the students to some concepts of advanced programming and practice on objectbased programming techniques, selfreferential data structures (stacks, queues, linked lists, etc.), Graphical User Interface (GUI), multithreading, networking, 2D Graphics manipulation. A selected programming language is used such as Java. By completing this module, the students should be able to write sophisticated Java applications.
CMPE2007 Digital System Design
Digital logic design, systemlevel design using current state of the art in EDA tools. Students learn to design largescale logic circuits from fundamental building blocks and methods. Topics include architectures of FPGAs, behavioral design specification, system partitioning, synthesis tools, design verification, and studies of novel systems implemented with FPGAs. Intended to familiarize students with the techniques and tools in ASIC designs.
CMPE2008 Computer Organization
This course provides a comprehensive presentation of the organization and architecture of modernday computers, emphasizing both fundamental principles and the critical role of performance in driving computer design. The topics include number system, digital logic, computer evolution and performance, memory, input/output, the central processing unit, computer arithmetic, instruction sets, addressing modes and formats, the control unit, control unit operation, microprogrammed control, etc.
CMPE2013 Data Structures and Algorithms (C)
CMPE2204 Intro. to Computer Networks
This course will emphasize on the architecture, protocols of the Internet. Topics include local area networking, networking devices, IP classes, Subetting, routing, network security, installing and using linux as a internet server, and network management. Prerequisite: CMPE1900
CMPE3001 Operating Systems
This course is a core course on one of the pillars of computer systems: Operating Systems (OS). The course will make the student appreciate things he takes for granted such as process management, file systems, and so on. It will also help him/her make an entry into the domains of efficent use of OSes and OS design. Prerequisites: CMPE2002,
CMPE2008 or SE2201
CMPE3002 Data Communication Standards
Today the technological world is governed by standards. Equipments and software from different companies operate in harmony thanks to standards authored by consortia of companies or international organizations. This way, technology advances more rapidly, and we build on top of each other's work. This course intends to make students technologically literate in today's popular standards in the computer world, data transmission methods, and the underlying digital
CMPE3005 Analysis of Algorithms
Rigorous analysis of the time and space requirements of important algorithms, including worst case, average case, and amortized analysis. Analysis of the key data structures: trees, hash tables, balanced tree schemes, priority queues, Fibonacci and binomial heaps. Algorithmic paradigms such as divide and conquer, dynamic programming, unionfind with path compression, augmenting paths. Selected advanced algorithms.
CMPE3006 Embedded Systems Programming
This course is a handson course that requires software work as well as boardlevel work where the student connects multiple building blocks to each other. It has 2 lecture hours and 2 lab hours every week. This course sits at the intersection of fields such as microprocessors, digital design, operating systems, assembly programming, software design, and industrial automation. Prerequisites: CMPE1004, CMPE2002 Corequisite: Lab
CMPE3990 Summer Training I
The objective of summer training is for the student to get to know different sectors and expertise areas of his profession, to start building up a CV, and to get the kind of work experience that will put him/her ahead of his peers when he/she goes out looking for a job after graduation.
CMPE4001 Computer Communication Networks
Computer network architectures, protocol layers, network programming. Transmission media, encoding systems, switching, multiple access arbitration. Network routing, congestion control, flow control. Transport protocols, realtime, multicast, network security. Prerequisite: CMPE2204
CMPE4003 Formal Languages and Automata Theory
Strings and languages. Classification of grammars. Finitestate automata and regular expressions. Pushdown automata and contextfree grammars. Context sensitive grammars and linear bounded automata. Turing machines. Prerequisite: MATH1081, CMPE2003
CMPE4220 Multimedia Systems and Communications
A topdown analysis of video processing applications, algorithms, tools, and fundamentals. Applications include digital TV, computer games, cinema special effects, 3D TV, medical imaging, and forensics. Algorithms include motion estimation, filtering and restoration, deinterlacing and enhancement, interpolation and superresolution, stereo and 3D video processing, coding, and compression standards.
CMPE4311 Special Topics in Computer Eng. I
This course enables the department to allow especially parttime faculty members to teach specialized courses in their areas of expertise. It is possible that we have an opportunity of offering a course by a visiting worldclass professor/professional on a highly specialized subject matter. If it is very likely that we may not offer such course for a long time, we offer the course under this generalpurpose course title/code instead of creating a new course title/code.
CMPE4312 Special Topics in Computer Eng. II
This course is just like CMPE 4311. It will be used if there is more than one Special Topics course in the same semester.
CMPE4321 Int. to Network Security & Cryptography
Security fundamentals, definitions, principles of security, the layered approach. Overview of cryptography, encryption, decryption, stream ciphers, block ciphers, hash functions, message authentication codes, publickey cryptography, digital signatures. Identification, authentication, password schemes, spoofing attacks, single signon, other approaches.
CMPE4322 Advanced Cryptology and Network
This course gives a comprehensive introduction into the field of cryptography and network security. Begins with the introduction of the concepts of data and network security, where classical algorithms serve as an example. Different attacks on cryptographic systems are classified. The concepts of public and private key cryptography are developed. DES and IDEA are described. The public key schemes RSA and EIGamal, and systems based on elliptic curves are then developed.
CMPE4336 Intro. to Data Mining
This course will provide a global focus on the data mining techniques which are used in the very large databases. Firstly Data Warehouse and OLAP Technology for Data Mining are considered and then probabilistic and soft computing techniques are adapted for the Data Mining algorithms. Prerequisite: MATH2082
CMPE4409 Real Time Operating Systems
This course starts with a review of fundamental OS concepts and builds on them realtime operating system (RTOS) concepts. It continues with a comparison of objectives and architecture of a regular OS versus an RTOS. It later includes a close look at RTOS IO subsystems, memory management, and scheduling. The course also covers a close look at some real RTOSes. Prerequisite: CMPE3001
CMPE4414 Information Security Management
The main objectives of this course are to teach students how to Identify and prioritize information assets, Identify and prioritize threats to information assets, Define an information security strategy and architecture, Describe legal and public relations implications of security and privacy issues, Present a disaster recovery plan for recovery of information assets after an incident. ISO approach to the security management (ISO27001) will also be introduced.
CMPE4501 Intro. to Artificial Intelligence and Expert Syst.
Artificial Intelligence, Necessity of Teacher and Expertism, Fundamentals of Expert Systems, Evaluation of Expert Systems, Problem Analysis, Machine Learning, Game Theory and Playing, Search, Problem Solving, Theorem Proving and Logic Programming, Knowledge Engineering, Knowledge Acquisition and Representation, Uncertainty, Probabilistic and Fuzzy Reasoning, Fuzzy Systems, Neural Networks, NeuralFuzzy Systems, Evolutionary Computing, Genetic Algorithm and Problem Solving. Prerequisite: MATH2082
CMPE4502 Distributed Databases
Communication paradigms: client/server protocols, remote procedure call (e.g., Java RMI), multicast protocols handling asynchronous communication and failures. Distributed transaction management requires enhanced concurrency control methods. Comparing algorithms proposed by researchers and commercial solutions. Replicating data to increase faulttolerance and the performance of databases. Prerequisite: SE2101
CMPE4911 Design Project I
Every computer engineering student must submit a working graduation project to qualify for graduation. At the beginning of each Fall Semester, faculty members announce their graduation project offerings. Students go and talk to faculty members and agree on a particular project with a particular professor. Hence, this course may be taught by a different professor for each student. Every student preferably works on a different project. If that is not the case, each student should at least have a welldefined and unique subtask within joint projects. That should be documented on the design project signup form, which must be approved by the project advisor as well as the academic advisor. A design project should preferably involve a working and demonstrable system design that preferably involves original software and/or hardware components. At the end of the semester, the project advisor forms a review committee for each student. Students give a presentation of their work and submit their project reports that comply with standard templates published by the department. The committee reviews the presentation, demo (if any), and report and makes a suggestion to the project advisor for the student?s grade.
CMPE4912 Design Project II
If a student wants to do a second design project, he/she takes this course. The procedures and expectations of this course are identical to Design Project I.
CMPE4990 Summer Training II
The objective of summer training is for the student to get to know different sectors and expertise areas of his profession, to start building up a CV, and to get the kind of work experience that will put him/her ahead of his peers when he/she goes out looking for a job after graduation.
CMPE5034 Computer Arithmetic
Computer arithmetic algorithms are at the heart of many digital ICs in the video market as well as communications and processor markets. A thorough grasp of these algorithms is needed in order to implement fast and small chips. Topics include 2's complement fixed point representation, basic addition and subtraction, fast adders, prefix graphs, priority encoders, carrysave trees, barrel shifters, MAC operation, division schemes, LUT based computation, floatingpoint numbers and operations.
CMPE5101 Data Mining I
Introduction to data mining, data warehouse and OLAP technology for very large databases. Factor analysis for feature extraction. Considering classification algorithms: CART, ID3, neural networks, naive Bayes. Handling cluster analysis with nearest neighbor, expectation maximization, partitioning algorithms, hierarchical cluster analysis. Comparing association rules in large databases.
CMPE5102 Data Mining II
Syntax, semantics and structure in HTML, text documents and data, the computational aspects of information extraction (IE) and integration from unstructured and semistructured sources, regular expressions, regular tree expressions, XPath, XSLT, XQuery and hidden Markov model (HMM), horn rules, description logic, frame logic, topic maps, inductive logic programming, MetaData, ontologies, XML, RDF, DAML+OIL, the enabling tools, techniques and languages for semantic Web mining, Web Agents and Web Crawlers, mining ontologies from the Web, ontologies to build focused Web crawlers, domainspecific semantic search engines to improve Web searching, applications in ECommerce and bioinformatics, how to do research in semantic web mining
CMPE5121 Introduction to Network Security and Cryptography
Introduction into the field of cryptography and network security. Data and network security, different attacks on cryptographic systems, concepts of public and private key cryptography. Secret key schemes, DES and IDEA. The public key schemes RSA and EIGamal, and systems based on elliptic curves. Signature algorithms, hash functions, key distribution schemas.
CMPE5122 Advanced Cryptography
Authentication applications; support applicationlevel authentication and digital signatures. Widely used services Kerberos, X.509 directory authentication service. Electronic mail security issues. Pretty Good Privacy (PGP), S/MIME schemes. IP security (IPSEC) concept, IP security architecture, authentication and key management. Web security and standardized schemes SSL/TLS and SET. Intrusion prevention mechanisms; IDS (intrusion detection system), firewalls, NFAT (network forensics analysis tools).
CMPE5123 Advanced Comp. Networks & Mobile Communications I
Introduction to networking, virtual private networking (VPN) theory and practice. VPN theoretical sessions and VPN lab applications, Current technologies and applications in industry, bandwidth utilization technologies in WAN networking wireless structure.
CMPE5124 Advanced Comp. Networks & Mobile Communications II
Mobile and wireless applications, voice technologies like voice over ATM (VoATM) voice over IP (VoIP) and voice over frame relay (VoFR). Theoretical sessions and practical applications on Cisco routers. Other applications in industry (ebusiness servers carrier infrastructures) conceptual approach to ebusiness applications and other uptodate application areas.
CMPE5126 Image and Video Processing
A topdown analysis of video processing applications, algorithms, tools, and fundamentals. Applications include digital TV, computer games, cinema special effects, 3D TV, medical imaging, and forensics. Algorithms include motion estimation, filtering and restoration, deinterlacing and enhancement, interpolation and super resolution, stereo and 3D video processing, coding, and compression standards.
CMPE5128 3D Computer Graphics
Introduction to computer graphics, where computer generated pictures are used, graphics display devices, overview of graphics systems; getting started: drawing figures, device independent programming and OpenGL, anatomy of an OpenGL application, use of OpenGL in C++, basic 2D shapes, representation of objects on the computer screen; computer graphics elements: drawing shapes, graphics output primitives, attributes of graphics primitives, geometric transformations, 2D viewing, clipping, threedimensional viewing, OpenGL 3D viewing and projections, introduction to illumination models and shading in OpenGL, GUI design for graphics applications, introduction to computer animation and game programming.
CMPE5131 Bioinformatics I
Sequence alignment, database searching, RNA structure prediction, microarray sequence analysis, gene prediction, repeat detection, and protein folding prediction, analysis of the algorithms behind each of these algorithms, dynamic programming, hidden Markov models, finite state automata, grammars, KarlinAltschul statistics, and Bayesian statistics.
CMPE5132 Bioinformatics II
Analyze and evaluate biological datasets to determine which data are important for model construction. Apply appropriate mathematical techniques to systems model building. Evaluate the predictive power of the computational and mathematical models. Use the models to suggest new experiments.
CMPE5133 Artficial Neural Networks I
Introduction to neural networks, artificial neural networks, single layer perception, Hebbian learning, decreasing slope learning, general delta rule, learning in multi layer perceptions, feedback, learning with momentum, composite slope learning, prejudice and variety, radial basis perception applications, radial basis function networks, introduction to self organizing systems.
CMPE5134 Neural Networks II
Dynamic neural networks and their applications to control and chaos prediction. Neuro fuzzy systems; cooperative neurofuzzy systems, neural networks for determining membership functions, AdeliHung algorithm, learning fuzzy rules using neural nets, identifying weighted fuzzy rules using neural nets. Evolutionary computing; genetic programming and algorithms.
CMPE5135 Formal Languages & Automata Theory
Introducing formal languages and automata. Languages: using generators (e.g., grammars/regular expressions) and using recognizers (e.g., finite state machines). Along with presenting the fundamentals, this course will develop and examine relationships among the various specification methods for the regular languages and the contextfree languages, in detail.
CMPE5136 Expert and Knowledge Based Systems
Expert systems have developed as an outgrowth of research in artificial intelligence. They contain knowledge gleaned from human experts and can perform some tasks as well as and sometimes better than their human counterparts. Fuzzy sets provide a natural basis for employing uncertainty in expert systems. This course covers fuzzy sets theory and fuzzy logic, fuzzy set applications to decision making and process control, expert systems theory and architecture, and expert systems applications.
CMPE5138 Analysis of Algorithms
Rigorous analysis of the time and space requirements of important algorithms, including worst case, average case, and amortized analysis. Techniques include ordernotation, recurrence relations, etc. Analysis of the key data structures: trees, hash tables, balanced tree schemes, priority queues, Fibonacci and binomial heaps. Algorithmic paradigms such as divide and conquer, dynamic programming. Exploring selected advanced algorithms.
CMPE5204 Embedded Systems
This course is a handson course that requires software work as well as boardlevel work where the student connects multiple building blocks to each other. This course sits at the intersection of fields such as microprocessors, digital design, operating systems, assembly programming, software design, and industrial automation.
CMPE5887 Seminar
The purpose of this seminar is to equip the student enrolled in a program with a thesis with the necessary background for preparing a thesis. Although not compulsory, it is expected that the student prepares a preresearch document on her/his thesis subject and make a presentation at the end of the term.
CMPE5888 Master Thesis
The Master Thesis is a study that students enrolled in a program with a thesis have to carry out under the leadership of an advisor on a subject related to the program followed. The thesis has to be prepared in line with academic ethic rules, presented to and approved by a thesis committee. The student has to register to this course for at least two terms.
CMPE5999 Project
