Computer Science

Overview

The scientific study of computer software and its behavior.

Projects

Elementary

  1. Abstract data types.
  2. Arrays.
  3. Complexity of algorithms.
  4. Computability.
  5. Computation.
  6. Computers.
  7. Control structures.
  8. Data files.
  9. Data structures.
  10. Databases.
  11. Functional programming.
  12. Input/output.
  13. Iteration.
  14. List processing.
  15. Matrices.
  16. Object-oriented programming.
  17. Program coding.
  18. Program design.
  19. Program planning.
  20. Program writing.
  21. Recursion.
  22. Rule-based programming.
  23. Searching.
  24. Sorting.
  25. Strings.
  26. Structure of programs.
  27. Subroutines.
  28. Turing machines.
  29. Vectors.

Intermediate

  1. Assemblers
  2. Assembly Language Programming
  3. Automata
  4. BCH Codes
  5. Binary Trees
  6. Burst-Error Correction
  7. Caching
  8. Chatterbots
  9. Circuit Complexity
  10. Classical Cryptosystems
  11. Client-Server Systems
  12. Combinatorial Designs
  13. Combinatorics
  14. Compilers
  15. Complexity
  16. Computational Methods for Constructing Irreducible Polynomials
  17. Computational Methods for Factoring Polynomials
  18. Computer Algebra
  19. Computer Graphics
  20. Computer Security
  21. Computer Simulation
  22. Computer Sound
  23. Coprocessors
  24. Counting
  25. Cryptography
  26. Cyclic Codes
  27. Data Encryption Standard
  28. Data Flow
  29. Data Structures
  30. Datapaths
  31. Decidability and Undecidability
  32. Decoding Algorithms
  33. DHTML
  34. Discrete Logarithm Problem
  35. Discrete Probability
  36. DMA
  37. Electronic Mail
  38. Encryption
  39. Exception/Interrupt Handling
  40. Factoring
  41. Fault Tolerance
  42. Finite Automata
  43. Finite State Machines
  44. Formal Languages
  45. Formal Semantics
  46. Functional Programming
  47. Grammars
  48. Graph Theory
  49. Groebner Bases over Fields
  50. Hamming and Golay Codes
  51. Hashing
  52. Induction
  53. Information Theory
  54. Instruction Set Architecture
  55. Interpreters
  56. Interrupts
  57. I/O Devices
  58. I/O Interfaces
  59. I/O Programming
  60. Languages
  61. Libraries
  62. Linear Codes
  63. Linear Lists
  64. Linked Lists
  65. Linkers
  66. LISP
  67. Mathematical Modeling
  68. Memory Management
  69. Memory Organization
  70. Methods of Proof
  71. Modular Arithmetic
  72. Modular Programming
  73. Network Interfaces
  74. News Servers
  75. Numerical Linear Algebra
  76. Numerical Methods
  77. Object-Oriented Analysis
  78. Object-Oriented Design
  79. Object-Oriented Programming
  80. One-Way Functions
  81. Online Algorithms
  82. Parallel Algorithms
  83. Parallel Architectures
  84. Parallel Computation
  85. Parallel Languages
  86. Partial Orders
  87. Pipelining
  88. Primality Testing
  89. Principle of Inclusion-Exclusion
  90. Processor Performance and Design
  91. Prolog
  92. Queues
  93. Random Error Detection and Correction
  94. Recursion
  95. Register-Level Computer Organization
  96. Register Transfer Operations
  97. Relations
  98. Reliable Communications
  99. Robotics
  100. RSA and Other Public Key Cryptosystems
  101. Searching
  102. Set Theory
  103. Sorting
  104. Stacks
  105. Strings
  106. Structure of Finite Fields
  107. Structured Programming
  108. System Buses
  109. System Software
  110. Theory of Groebner Bases
  111. Translators
  112. Trees
  113. Turing Machines
  114. User Interfaces
  115. Virtual Memory

Advanced

  1. Aliasing
  2. Approximation Algorithms
  3. Artificial Intelligence
  4. Artificial Languages
  5. Artificial Life
  6. ATM Switch Design
  7. Automated Reasoning
  8. Automated Theorem Proving
  9. B-Spline Interpolation
  10. Bezier Interpolation
  11. Block Designs
  12. Cache Hierarchy
  13. Client-Server Model
  14. Code Generation
  15. Code Optimization
  16. Colorings
  17. Combinatorial Optimization
  18. Communications Oriented Operating System
  19. Completeness
  20. Computer Architecture
  21. Computational Geometry
  22. Computational Linguistics
  23. Computer Music
  24. Concurrency
  25. Connectivity
  26. Consistency
  27. Convolutional Codes with Trellis Decoding
  28. Data Compression
  29. Data Mining
  30. Data Models
  31. Data Warehousing
  32. Database Concurrency
  33. Database Security
  34. Device Drivers
  35. Difference Sets
  36. Digital System Design
  37. Dijktra's Logic
  38. Disjoint Paths
  39. Display Devices
  40. Dustributed Programming
  41. Distributed Systems
  42. Dynamic Storage Allocation
  43. Efficient Compilation of High-Level Languages
  44. Equivalence of Computability
  45. Error-Correcting Codes
  46. Error Handling
  47. Euler Tours
  48. Expert Systems
  49. Expression Conversion
  50. Extremal Graph Theory
  51. File Systems
  52. Finite Geometries
  53. First Order Logic
  54. Flow Control
  55. Formal Syntax
  56. Functional Programming
  57. Fuzzy Logic
  58. Games
  59. General Recursivity
  60. Genetic Algorithms
  61. Geometric Algorithms
  62. GIS
  63. Graph Algorithms
  64. Graphics Transformations
  65. Grammars
  66. Ground Resolution
  67. Group Actions
  68. Hamilton Cycles
  69. Heuristic Search
  70. Hidden Line Problems
  71. High-Performance Computer Architecture
  72. Human-Computer Interfaces
  73. ILP Processing
  74. Information and Entropy
  75. Information Rate Optimization and Channel Capacity
  76. Information Security
  77. Interaction of Compilers and Languages with Modern Architectures
  78. Interactive Graphics
  79. Interconnection Networks
  80. Internet Video
  81. Interprocessor Communications
  82. Knowledge Representation
  83. Latin Squares
  84. Learning
  85. Lexical Analysis
  86. Light Fields
  87. Loaders
  88. Logic Circuit Design
  89. Logic Programming
  90. Logics of Knowledge
  91. Matchings
  92. Maximum Likelihood Decoding
  93. Memory Hierarchy
  94. Memory Management
  95. Mesh Generation
  96. Microcontrollers
  97. Microkernel-Based Operating Systems
  98. Microprocessors
  99. Microprogramming
  100. Model Theory
  101. Multihop Routing
  102. Multimedia Systems
  103. Multiprocessor Systems
  104. Multiprogramming Systems
  105. Mutually Orthogonal Latin Squares
  106. Natural Langauges
  107. Network Performance
  108. Network Protocol Algorithms
  109. Network Protocols
  110. Network Reliability
  111. Network Simulation
  112. Network Timing
  113. Neural Networks
  114. Numerical Solution of Partial Differential Equations
  115. Online Algorithms
  116. Operating System Services
  117. Operating System Structure
  118. Orthogonal and Perpendicular Arrays
  119. Parametric Curves
  120. Parametric Surfaces
  121. Partitions
  122. Pattern Matching
  123. Permutations and Combinations
  124. Physics of Computation
  125. Planar Graphs
  126. Polya Theory
  127. Prefetching
  128. Preparata Codes
  129. Primitive Recursivity
  130. Processor Organization
  131. Processor Scheduling
  132. Program Proving
  133. Programming Language Design
  134. Programming Language Implementation
  135. Proof Obligations
  136. Proof Systems
  137. Proof Theory
  138. Propositional Logic
  139. Queues
  140. Randomness
  141. Recurrence Relations
  142. Recursive Algorithms
  143. Recursive Functions
  144. Recursively Enumerable Langauges
  145. Reed-Muller Codes
  146. Reed-Solomon Codes
  147. Relational Databases
  148. Robotics
  149. Routing for Mobile Hosts
  150. Scalable Storage Systems
  151. Scheduling Problems
  152. Semantic Analysis
  153. Shannon's Noisy Channel Theorem
  154. Software Analysis
  155. Software Engineering
  156. Software Interface
  157. Spanning Trees
  158. State Space Search
  159. Steiner Triple Systems
  160. Storage Management
  161. Soundness
  162. Synchronization Techniques
  163. Syntactic Analysis
  164. Systems Programming
  165. TCP Congestion Control
  166. The Chomsky Hierarchy
  167. The Essential Limitations of Computation
  168. Thread Management
  169. Three Dimensional Graphics
  170. Turing Machines
  171. Using Generating Functions to do Sophisticated Counting
  172. Using Polya Theory to do Sophisticated Counting
  173. Variable Length Codes
  174. Virtual Memory

Frontier

  1. Algorithms for Large Datasets
  2. Alternative Models of Computation
  3. API Design
  4. Approximate Algorithms
  5. Binary Optimization
  6. Boosting
  7. Branch Prediction
  8. Cellular Texturing
  9. Combinatorial Algorithms
  10. Complexity Classes
  11. Computation of Ext. Groebner Bases over Rings
  12. Data Indexing
  13. Data Querying
  14. Data Retrieval
  15. Data Storage
  16. Dictionary Methods of Encoding
  17. Digital Image Processing
  18. Digital Video Processing
  19. Dimension Theory
  20. Distributed File Systems
  21. DNA-Based Computers
  22. Greedy Algorithms
  23. Groebner Bases for Modules
  24. Hardware Design Languages
  25. Head-Driven Phrase Structured Grammars
  26. Heuristics
  27. High-Performance I/O
  28. Huffman and Arithmetic Encoding
  29. Improved Buchberger's Algorithm
  30. Interval and Recency Rank Encoding
  31. Layered Depth Image
  32. Learning Automata
  33. Lossless Compression Methods
  34. Lossy Compression Methods
  35. Machine Learning
  36. Modules
  37. Multimedia Databases
  38. Numeric Algorithms
  39. Object-Oriented Database Systems
  40. Parallel Processing
  41. Primary Decomposition of Ideals
  42. Programming Language Design
  43. Randomized Algorithms
  44. Real-Time Acquisition
  45. Real-Time Modeling
  46. Reductions
  47. Run Time Optimization
  48. Search Techniques
  49. Silhouette Clipping
  50. Silhouette Mapping
  51. Simulation of Musical Instruments
  52. Simulation of Sound Sources
  53. Surface Geometry
  54. Syzygy Computations
  55. Virtual Reality
  56. VLSI Design
  57. Web-Based Databases

Click here to go back to the projects page.

Click here to go back to our home page.