- CMSC725 - Geographic Information Systems -
Web Site -
Info
- Topics in geographic information systems and spatial databases. Integrates related results from databases, cartography, geography, computer graphics, file access methods, computational geometry, image processing, data structures, and programming languages. Topics include: cartographic modeling, principles of cartography, methods from computational geometry, principles of spatial databases, access methods, and spatial data structures. The architecture of some existing spatial databases and geographic information systems will be examined in greater detail.
- Course Project: Parallel Region Quad-Tree Construction on GPUs
- CMSC631 - Program Analysis and Understanding -
Web Site -
Info
- Techniques for static analysis of source code and modern programming paradigms. Analysis techniques: data flow analysis, program dependence graphs, program slicing, abstract interpretation. The meaning of programs: denotational semantics, partial evaluation. Advanced treatment of abstraction mechanisms: polymorphic types, operation overloading, inheritance, object-oriented programming and ML-like programming languages.
- Course Project: LuaCon (Lua With Contract Extensions)
- CMSC734 - Information Visualization -
Web Site -
Info
- Information visualization defined in relation to graphics, scientific visualization, databases, data mining, and human-computer interaction. Visualizations for dimensional, temporal, hierarchical and network data. Examines design alternatives, algorithms and data structures, coordinated views, and human factors evaluations of efficacy.
- Course Project: MusicDigger - A Music Discovery Tool
- CMSC714 - High Performance Computing -
Web Site -
Info
- Selected topics in high-performance systems, including contemporary architectures, interconnection topologies, shared memory and message-passing systems, multi-threaded kernels, latency avoidance and hiding techniques, methods for data and workload partitioning performance profiling, debugging.
- Course Project: A Study on Comparison of Parallel Computing on CPU and GPU Hardware
[Task: Implementation and Comparison of Sorting algorithms for GPU architecture]
- CMSC741 - Geometric and Solid Modeling -
Web Site -
Info
- An introduction to modeling and mesh-based representations for solid objects, surfaces, and scalar fields; boundary and volumetric models for solid objects. Applications to computer aided design, computer graphics, scientific visualization, finite elements, computer vision, and robotics.
- Course Project: A Method for Variable-Resolution Terrain Mesh Generation using Hierarchy of Diamonds on GPU.
Published at EG-PGV 2011
- CS503 - Modeling and Simulation -
Web Site -
Info
- Introduction to modeling and simulation. Simulation input data analysis. Random variate generation. Simulation output data analysis. Comparing systems via simulation. Discrete event simulations. Specific practices focusing on defense industry and game programming including; overview of some modeling and simulation, High Level Architecture (HLA), behavior modeling, optimization and analysis.
- Course Project: Terrain Modeling & Rendering
LoD management, frustum culling, procedural terrain generation, procedural texturing, camera controls
(The basics of current terrain engine's large-scale extensions, Base Engine.)
- CS564 - Computational Geometry -
Web Site -
Info
- Algorithmic background, data structures, geometric preliminaries, models of computation. Geometric searching, point-location, problems, range-searching problems. Convex hulls, problem statement and lower bounds, convex hull algorithms in the plane, graham's scan, Jarvis's march, QUICKHULL techniques, dynamic convex hull, convex hull in 3D. Proximity problem, a collection of problems, a computational prototype: element uniqueness, lower bounds, the closets-pair problem: a divide-and-conquer approach, the Voronoi diagram, proximity problems solved by the Voronoi diagram triangulation, planar triangulations, Delaunay triangulation, intersections, application areas, planar applications: intersection of convex polygons, star-shaped polygons; intersection of line segments. 3D applications: intersection of 3D convex polyhedra; intersection of half-spaces.
- Course Project: Using Programmable Graphics Hardware for Discrete Voronoi Diagram Construction
(Implementation is integrated into Base Engine.)
- CS565 - Application of Computer Graphics -
Web Site -
Info
- Use of computer graphics in various engineering fields. Three dimensional modeling and representation. Color, shading and lighting methods. Representation of surfaces. Graphical databases, graphics standards. Hidden surface problem, motion and animation. Texture mapping, controlled deformations. Previous knowledge of computer graphics is required.
- CS566 - User Interface Design -
Web Site -
Info
- This course will be a hands-on, advanced class on ~~human-computer interaction~~. It will cover major espects of human-computer interaction topics in depth: computational models for humans in interaction; input/output technologies and techniques; designing human-computer interactions; UI SW development process; UI experimental design and testing processes. At the end of the course, students will be able to learn recent human-computer interaction solutions, and understand the recent research issues related to interactive computer graphics.
- Course Project: Editing Heightfield Using 3D Widgets and History Management
The aim of this project is to investigate the 3d-widget based visualization of possible editing (sculpturing) operations on terrain and to help user undo previous operations.
Published at ISCIS2009,
a part of Base Engine.
- CS568 - Advanced Topics in Computer Graphics -
Web Site-
Info
- Advanced Topics in Computer Graphics, such as simulation of natural phenomena, are discussed. Students are expected to do research on a particular subject, design and implement software, and write a document in an official paper format, discussing the theories, design considerations, and implementation details of their projects.
- CS569 - Mobile and Ubiquitous Graphics -
Web Site-
Info
- Mobile graphics architectures. Mobile rendering and optimization techniques. Mobile user interaction design and implementation techniques. User-centered studies. Camera-based or sensor-based user interaction. Streaming mobile multimedia. Intelligent aware, proactive, and attentive environments, user perception, and modeling of the environment
- Selected Course Assignment: Asteroids ES. (See on Projects page)
Course Project: Remote Mesh Rendering on Mobile Devices.
- CS578 - Natural Language Processing -
Web Site-
Info
- Brief history and overview of natural language processing. Computational morphology, Context-free grammars, unification and unification based grammars such as DCG, PATR, etc. Top-down/bottom-up parsing, chart parsing. Features and the lexicon, semantics, natural language generation. Natural language processing applications.
- Course Project: Anaphora Resolution for Turkish.
...This paper will present a rule-based third person singular pronoun anaphora resolver which uses morphologically parsed input.
- CENG469 - Computer Graphics - II -
Web Site -
Info
- Local illumination models and surface rendering methods. Ray-tracing algorithm and speed-up techniques. Radiosity lighting model and radiosity method. Adding surface detail: Texture mapping, bump mapping and procedural texture mapping. Three dimensional object representations: Polygon meshes, parametric cubic curves, parametric bicubic surfaces, quadric surfaces, surface of revolution, sweep surfaces, fractal-geometry methods. Volume rendering. Color models. Introduction to computer animation.
- Course Project : A multi-user game environment (Responsible for NPC AI architecture)
- CENG477 - Introduction to Computer Graphics -
Web Site -
Info
- Hardware and software components of graphics systems. Output and filled data primitives. 2D and 3D geometric transformations. Two dimensional viewing: viewing pipeline, clipping, and windowing. Three dimensional viewing: viewing pipeline, viewing parameters, projections, viewing transformations, clipping, visible surface detection. Introduction to illumination models and surface rendering.
- Course Project: A train simulation (with environment modeling options)
Responsible for: Server programming
Languages used : C , OpenGL, GLUT (Linux)
Application video
- CENG466 - Fundamental Image Processing Techniques -
Web Site -
Info
- Discrete time signals, and systems. Sampling, reconstruction, and quantization. Digital image representation. Digital image fundamentals. Image transforms. Image enhancement. Image restoration. Image segmentation and description.
- Course Project : Helping a robot track lines on the ground
Languages used : Matlab
- CENG483 - Introduction to Computer Vision -
Web Site -
Info
- Image formation, camera models and parameters, stereo vision, shape from stereo, shape from single image cues, apparent motion, optical flow, introduction to 3D shape representation and recognition.
- Projects: Pinhole Photography, Constructing Depth from Image Pair
Programming Languages: Matlab
- CENG462 - Introduction to Artificial Intelligence -
Web Site -
Info
- This course examines the ideas and techniques underlying the design of intelligent computer systems. Topics include heuristic search, problem-solving, game-playing, knowledge representation, logical inference, planning, reasoning under uncertainty, decision theory, expert systems, learning, perception, and natural language understanding.
- Programming Languages: Prolog, C++
- CENG436 - Data Communications and Computer Networking -
Web Site -
Info
- Basics of data communications. Protocol design issues. OSI layers: Physical, data link, and network layers. LANs, WANs and high speed networks.
- Course Project: Online multi-user packman with 3d graphics (C Socket library, OpenGL)
Responsible for: Server programming
Note: No screenshots available :(
- CENG382 - Analysis of Dynamic Systems with Feedback -
Web Site -
Info
- Mathematical Modelling of Systems. Difference and Differential Equations. State-Space Representation. Solutions of State Equations. Linear-Time-Invariant Systems and Impulse Response (Discrete and Continuous Time). Stability. Routh-Hurwitz Method. Feedback. Controllability. Observability. An introduction to Nonlinear Systems.
- Languages Used : Matlab
- CENG350 - Software Engineering -
Web Site -
Info
- Software project management: Metrics, estimation, planning. Software requirements analysis techniques. Software design techniques. Software implementation. Software quality assurance. Software testing. Software maintenance. Review of CASE technology
- Course project: Online Theatre Ticket Sale/Revervation/Management System
Responsible for: Web-site development
Languages Used : PHP, MySQL, HTML, CSS, JavaScript
- CENG336 - Int. to Embedded Systems Development -
Web Site -
Info
- Introduction to embedded systems, basic microprocessor architecture, assembly language programming, input/output, interrupts / timers / real-time operating systems
- Additional Notes: PIC16F / PIC18F / PIC assembly / MpLab
- CENG334 - Introduction to Operating Systems -
Web Site -
Info
- Introduction to operating systems. Memory management. Process management. Concurrent processes. Deadlocks. Processor management. I/O and device management. File management and File systems. Introduction to distributed operating systems. Synchronization in distributed systems. Distributed file systems. Overview of contemporary OS technology.
- Programming Languages: C
Software: OS/161 (a simplified OS for education purposes, developed at Harvard University)
- CENG331 - Computer Organization -
Web Site -
Info
- Introduction to computer organization, data and information representation and processing, machine-level representation of programs, instruction set architecture, pipelining, optimization program performance, memory hierarchy, cache memories, virtual memory.
- Programming Languages: MIPS Assembly
- CENG315 - Algorithms -
Web Site -
Info
- Selected computer algorithms: sorting, searching, string processing and graph algorithms. Algorithm design and analysis techniques. Time and computational complexities of algorithms. Introduction to NP-completeness, parallelisation of algorithms, linear and dynamic programming.
- Programming Languages: C++
- CENG280 - Formal Languages And Abstract Machines -
Web Site -
Info
- Introduction to strings, languages, and grammars. Concept of abstract machines and language acceptance. Deterministic and nondeterministic finite state machines. Regular expressions. Machines with pushdown tape. Turing machines and recursive functions.
- Programming Languages: C / C++
- CENG242 - Programming Language Concepts -
Web Site -
Info
- Structure of programming languages. Concepts and paradigms. Abstraction, encapsulation, type systems, binding, run-time storage. Concepts will be introduced using a functional language and C++.
- Programming Languages: Haskell, C++, Prolog
- CENG232 - Logic Design -
Web Site -
Info
- Introduction to computer architecture. Number systems. Boolean algebra. Logic gates and flip flops. Combinational and sequential circuit design. Registers, counters. Bus transfer. RAM, ROM units. Instruction execution and hardwired control.
- Additional Notes: Diglog, various CMOS logic gates, a few whiteboards :)
- CENG223 - Discrete Computational Structures -
Web Site -
Info
- Fundamentals of logic, set theory, relations, functions, induction, graph theory, trees, introduction to algebraic structures, lattices.
- CENG213 - Data Structures -
Web Site -
Info
- Classification of data structures, space and time considerations. Linked lists, stacks and queues, tree structures, graphs. Array and pointer based implementations. Recursive applications.
- Programming Languages: C++ (on Unix environment)
- CENG140 - C Programming -
Web Site -
Info
- Advanced programming with C: Storage and control structures, recursion and programming with dynamic data structures.
- Programming Languages: C (on Unix environment)
- CENG111 - Introduction to Computer Engineering Concepts -
Web Site -
Info
- Introduction to the fundamentals of computer systems, including computer organization, operating systems, language processors and user interfaces. Introduction to algorithms and programming. Reasoning informally about the correctness and efficiency of programs. A functional programming language will be used for practical work.
- Programming Languages: Scheme / Lisp
- MATH119 - Calculus With Analytic Geometry -
Web Site -
Info
- Functions, limits, continuity and derivatives. Applications. Extreme values, the Mean value Theorem and its aplications. Graphing. The definite integral. Area and volume as integrals. The indefinite integral. Transedental functions and their derivatives. L`Hopital`s rule. Techniques of integration. Improper integrals. Applications.
- MATH120 - Calculus For Functions of Several Variables -
Web Site -
Info
- Sequences, infinite series, power series, Taylor series. Vectors, lines and planes in space. Functions of several variables: Limit, continuity, partial derivatives, the chain rule, directional derivatives, tangent plane approximation and differentials extreme values, Lagrange multipliers. Double integrals with applications. The line integral.
- MATH260 - Basic Linear Algebra -
Web Site -
Info
- Matrices, determinants and systems of linear equations. Vector spaces, the Euclidian space, inner product spaces, linear transformations. Eigenvalues, diagonalization.
- MATH219 - Introduction to Differential Courses -
Web Site -
Info
- First order equations and various applications. Higher order linear differential equations. Power series solutions: The Laplace transform: solution of initial value problems. Systems of linear differential equations: Introduction Partial Differential Equations.
- PHYSIC105 - General Physics 1 -
Web Site -
Info
- Vectors; kinematics; particle dynamics work and energy; conservation of energy; system of particles; collisions; rotational motion; oscillations.
- PHYSIC106 - General Physics 2 -
Web Site -
Info
- Electric charge; electric field; Gauss` law, electric potential; capacitance; current and resistance; circuits; magnetic field; Ampere`s law; Faraday`s law of induction; electro-magnetic oscillations; alternating currents.
- EE281 - Electrical Circuits -
Web Site -
Info
- Circuit laws and basic elements. Resistive circuits, analysis methods. Network theorems. First and second order circuits. Sinusoidal steady-state analysis and power. Basic diode and transistor circuits.(Offered to non-EE students only).
- EE282 - Introduction to Digital Electronics -
Web Site -
Info
- Semiconductor diodes. Diode characteristics. Diode circuits. Transistors, BJT, FET and integrated circuits. Inverters. TTL, MOS, ECL structures. Logic Gates. Flip-flops. Bistable, astable and monostable multivibrators. Semiconductor memories. ROM, RAM structures. Programmable logic arrays.
- ES223 - Statics and Strength of Materials -
Web Site -
Info
- Principles of mechanics. Elements of statics in two dimensions. Centroids and moments of inertia. Analysis of simple plane structures. Internal force diagrams. Concepts of stress and strain. Axially loaded members. Torsion. Laterally loaded members
- STAT221 - Statistics for Engineers I -
Web Site -
Info
- Introduction to probability. Finite sample spaces. Conditional probability and independence. One dimensional random variables. Functions of random variables. Further characterization of random variables. Discrete random variables. Continuous random variables. Random sample sample and statistics. Statistical inference, estimation and tests of hypotheses.