An advanced course in the various aspects of data security. Possible topics: classical encryption methods such as Vignere and Vernan ciphers; the Data Encryption Standard; key distribution methods and public key encryption; and authentication using digital signatures. Applications of these methods in the design of protocols for data privacy and security will also be studied.
An advanced course in some of the fundamental theoretical concepts in computing science. Students will be introduced to the concepts of decidable, P, NP, NP-complete, and NP-hard problems. Two classes of languages of interest to computing scientists, namely, regular and context free languages, and corresponding automata for recognizing these languages, will also be studied. A brief discussion on the semantics of programming languages will be included. The concept of automata will be further extended using Turing machines. Turing machines will be used to explore the concept of decidability along with examples of decidable and undecidable problems.
Some of the key techniques of efficient algorithm design that will be discussed: divide and conquer; greedy methods; dynamic programming; graph traversal; and change of representation. Measuring algorithm performance and lower bounds for various problems will be studied. An introduction to complexity theory-P, NP, polynomial time reducibility, and NP-completeness- will also be provided.
An advanced course in the design, implementation, use and maintenance of databases. Topics will include: data models such as the entity-relationship model, the relational model, and the object-oriented model; relational languages such as relational algebra, relational calculus, and SQL; the theory of normal forms of database design; use of indexes for efficient date retrieval; and database implementation using a commercial database management system. Other topics may be included, such as query optimization, database control, and distributed database systems.
This course will study the software development process in the area of numerical software. Emphasis will be placed on software development and implementation aspects of a variety of numerical algorithms. The course will also examine a substantial number of software packages including some which are currently available in some of the large commercial software libraries, as well as a number of published software packages which have yet to appear in libraries and even a few experimental codes which have not yet appeared in the literature. The main project in the course will be the development of a large software package by the class working in programming teams in a selected area of numerical algorithms. Other projects to be undertaken during the course include the modification of one or more existing mathematical software packages and the critical analysis of several existing software packages. A number of assignments related to the software packages considered will also be given.
This course provides an overview of the principles and methodologies of computer graphics, including the representation, manipulation, and display of two- and three-dimensional objects. Subtopics may include characteristics of display devices (i.e., raster, vector); representing primitive objects (lines, curves, and surfaces) and composite objects; two- and three-dimensional transformations (translation, rotation, scaling); hidden lines and surfaces; shading and colouring; interactive graphics and the user interface; animation techniques.
This course considers manipulations on a bibliographic database. Topics to be covered include an introduction and basic definitions, inverted file structures, automatic indexing, prototype systems, retrieval and refinements and natural language processing.
An advanced course in the concepts used in computer vision and digital image processing. Computer vision techniques extract information from an image, while image processing techniques modifies the image for viewing by the human eye. Topics covered include the following: sampling and resolution, image processing, edge detection, segmentation, discrete image transforms, restoration and enhancement, and image compression.
Data mining refers to a family of techniques used to detect interesting knowledge in data. With the availability of large databases to store, manage and assimilate data, the new thrust of data mining lies at the intersection of database systems, artificial intelligence and algorithms that efficiently analyze data. The course will use concepts from pattern recognitions, statistics, data analysis and machine learning. The size of databases and high complexity of techniques present many interesting computational challenges.
An advanced course in artificial intelligence (AI). The course will consider philosophical, mathematical, experimental, and implementation aspects of such topics as problem solving, searching, game playing, genetic algorithms, learning, neutral networks, natural language processing, vision, knowledge representation, logic, expert systems, reasoning under uncertainty, fuzzy sets, planning, and robotics. In addition to a theoretical introduction, students will also gain experience using one or more of the popular AI tools.
CSCI 6691 - 6699 Special Topics in Computing Science 3 credit hours This course covers advanced topics in computing science chosen according to the interests of the students and instructor, and requires some measure of independence and initiative from the student.
CSCI 6800 – 6825 Special Topics in Computing Science 6 credit hours Course content varies from year to year.
CSCI 6826 – 6849 Special Topics in Computing Science 3 credit hours Course content varies from year to year.
Send Page to Printer
Print this page.
Download Page (PDF)
The PDF will include all information unique to this page.