Navigate Up
Sign In
home |  mail |  workspaces |  moodle |  intranet |  contact 

 SCI 351 - Topics in Computer Science


This course gives an overview of several important topics that have not been covered in Introduction in Computer Science and Database Management. The first topic covered is a superfast overview of data structures we covered in Database Management: linked lists, stacks, queues and trees, plus balanced binary trees. The second topic is Mathematical Logic for which we will use lecture materials published on the internet. The third topic is computer graphics, in particular parallel and perspective projections, wire frame models, and ray tracing. Implementations will be done in C++ and OpenGL. The last topic is formal languages and grammar. The students will also study an area of computer science of their own choice, such as Artificial Intelligence, Software Engineering, Image Processing, Graphics, Operating Systems, Algorithm Design or Human Computer Interaction. Students will present their findings to each other in short lectures. Starting in week 5, the second lecture in each week will be used for student presentations. Students are expected to choose their computing science topic in week 3. They are allowed to propose a topic that is not on the list, provided that it is approved by the instructor. There are text books available for most topics. The students may use those, or find other materials in the library or on the web. The students should also search the literature and discover some currently active research areas. Three times during the term they will have to present their findings to the class. After each presentation there will be time for discussions. Each student is expected to write a report on their chosen topic. The report should contain on overview of the topic, written in such a way that other students in the class can understand it. The report should contain a section on current research. Each student should consult regularly with the instructor on the material that should be covered in the report. The final version of the report becomes required reading for the whole class and in the final exam questions about the reports may be asked. Reports should be between 15 pages and 30 pages (double spaced).

The following topics will be covered: 

  • Quick review: asymptotic functions, stacks, queues, linked lists, trees, hash tables, (balanced) binary trees
  • Logic: propositional Logic, predicate logic
  • Graphics: Bressenham's algorithms, projections, wire frame models, shading, hidden surface removal, ray tracing
  • Automata theory: nite automata, regular languages, push-down automata, context free languages, Turing machines, decidability



Dr. Andrew Brooks​


Computer Science


The following courses are required in order to take this course:

  • Introduction to Computer Science with a C grade or higherto Computer Science with a C grade or higher
  • Database Management