The School of Computing Science at SFU is large and diverse school within the Faculty of Applied Sciences. As of 2010, the School has 750 undergraduate and 180 graduate students enrolled. At the undergraduate level, the School offers:
- A major and and honours BSc degree in Computing Science. Once students are in third year, they have the option to follow one of these concentrations: artificial intelligence, computer graphics and multimedia, programming languages and software, information systems, computing systems, or theoretical computing. Additionally, students may choose to do a joint major with Business, Molecular Biology and Biochemistry (Bioinformatics), Linguistics (Computational Linguistics), Philosophy, Honours in Philosophy, or a joint major or honours in Mathematics and Computing Science (MACM).
- The School offers a BSc in Software Systems (an applied discipline within the field of computing science), a program based entirely at the Surrey campus.
- A dual degree in Computing Science and Engineering is offered by the School in conjunction with Zhejiang University in China.
- Interdisciplinary programs are offered in Cognitive Science, Management and Systems Science, and Geographic Information Science.
In addition to the undergraduate majors in Computing Science, the School also offers a minor in Computing Science, a certificate, and a Post Baccalaureate Diploma (PBD)
At the graduate level, the School of Computing Science offers programs leading to the M.Sc. (via either thesis, project or course) and Ph.D. degrees in Computing Science. Faculty research strengths include:
- Algorithms and complexity theory
- Artificial intelligence
- Databases, data mining, and computational biology
- Graphics, HCI, audio, vision, visualization, and medical image analysis
- Networks and systems
- Programming languages and software engineering
The Computing Science profile is set up to capture the following books and forms on the profile:
Hardware: Control structures and microprogramming (control design styles, control structure performance analysis and design aids, control structure reliability, testing, and fault-tolerance, microprogram design aids, microcode applications), Arithmetic and logic structures (design styles, performance analysis and design aids, reliability, testing, and fault-tolerance, high-speed arithmetic), Memory structures (semiconductor memories, design styles, performance analysis and design aids, reliability, testing, and fault-tolerance), Input/output and data communications (data communications devices, input/output devices, interconnections, performance analysis and design aids, reliability, testing, and fault-tolerance), Register-transfer-level implementation (design, design aids, reliability and testing), Logic design (design styles, reliability and testing, design aids), Integrated circuits (types and design styles, design aids, reliability and testing), Performance and reliability (reliability, testing, and fault-tolerance, performance analysis and design aids)
Computer Systems Organization: Processor architectures (single data stream architectures, multiple data stream architectures, other architecture styles, parallel architectures), Computer-communication networks (network architecture and design, network protocols, network operations, distributed systems, local and wide-area networks, internetworking), Special-purpose and application-based systems, Performance of systems, Computer system implementation (large and medium computers, minicomputers, microcomputers, vlsi systems, servers)
Software: Programming techniques (applicative programming, automatic programming, concurrent programming, sequential programming, object-oriented programming, logic programming, visual programming), Software engineering (requirements/specifications, design tools and techniques, coding toolsand techniques, software/program verification, testing and debugging, programming environments, distribution, maintenance, and enhancement, metrics, management, design, software architectures, interoperability, reusable software), Programming languages (formal definitions and theory, language classifications, language constructs and features, processors), Operating systems (process management, storage management, file systems management, communications management, reliability, security and protection, organization and design, performance, systems programs and utilities)
Data: Data structures, Data storage representations, Data encryption, Coding and information theory, Files
Theory of Computation: Computation by abstract devices (models of computation, modes of computation, complexity measures and classes), Analysis of algorithms and problem complexity (numerical algorithms and problems, nonnumerical algorithms and problems, tradeoffs between complexity measures), Logics and meanings of programs (specifying and verifying and reasoning about programs, semantics of programming languages, studies of program constructs), Mathematical logic and formal languages (mathematical logic, grammars and other rewriting systems, formal languages)
Mathematics of Computing: Numerical analysis (interpolation, approximation, numerical linear algebra, quadrature and numerical differentiation, roots of nonlinear equations, optimization, ordinary differential equations, partial differential equations, integral equations, applications), Discrete mathematics (combinatorics, graph theory, applications), Probability and statistics, Mathematical software
Information Systems: Models and principles (systems and information theory, user/machine systems), Database management (logical design, physical design, languages, systems, heterogeneous databases, database machines, database administration, database applications), Information storage and retrieval (content analysis and indexing, information storage, information search and retrieval, systems and
software, online information services, library automation, digital libraries), Information systems applications (office automation, types of systems, communications applications), Information interfaces and presentation (multimedia information systems, user interfaces, group and organization interfaces, hypertext/hypermedia, sound and music computing)
Computing Methodologies: Symbolic and algebraic manipulation (expressions and their representation, algorithms, languages and systems, applications), Artificial intelligence (applications and expert systems, automatic programming, deduction and theorem proving, knowledge representation formalisms and methods, programming languages and software, learning, natural language processing, problem solving, control methods, and search, robotics, vision and scene understanding, distributed artificial intelligence), Computer graphics (hardware architecture, graphics systems, picture/image generation, graphics utilities, computational geometry and object modeling, methodology and techniques, three-dimensional graphics and realism, applications), Image processing and computer vision (digitization and image capture, compression, enhancement, restoration, reconstruction, segmentation, feature measurement, scene analysis, applications, image representation), Pattern recognition (models, design methodology, clustering, applications, implementation), Simulation and modeling (simulation theory, simulation languages, applications, model validation and analysis, model development, simulation output analysis, simulation support systems, types of simulation), Document and text processing (document and text editing, document preparation, index generation, electronic publishing, document capture)
Computer Applications: Administrative data processing, Physical sciences and engineering, Life and medical sciences, Social and behavioral sciences, Arts and humanities, Computer-aided engineering, Computers in other systems
Computing Milieux: The computer industry, History of computing, Computers and education (computer uses in education, computer and information science education), Computers and society (public policy issues, social issues, organizational impacts, electronic commerce), Legal aspects of computing (hardware/software protection, governmental issues), Management of computing and information systems (project and people management, installation management, software management, system management, security and protection), The computing profession (occupations, organizations, testing, certification, and licensing, professional ethics), Personal computing (application packages, hardware, management/maintenance)
Collection development is the responsibility of the Computing Science Liaison Librarian. Liaison with the School is maintained through the Departmental Representative as well as with other faculty members when required. Regular contact with other liaison librarians and teaching departments is nurtured through the sharing of relevant review material.
The WAC Bennett Library is the major location for the University’s print Computing Science collection, however, the Surrey campus library has a collection of print Computing Science titles as well. However, a large number of both our academic and technical/professional Computing Science books are purchased in eBook format, providing accessiblity to these materials to a wide range of library users, regardless of physical location. SFU Library's eBook collection is complemented by our wide range of online resources such as journals and databases.
The University of British Columbia also has a large Computing Science collection comprehending many branches of the discipline.
The Computing Science collection is augmented by collections in other fields it has strong interdisciplinary ties with, such as: Engineering, Mathematics, Biology, Geography, Criminology, Philosophy and Linguistics.
Consortia and Document Delivery
The SFU Library benefits from active participation in several library consortia. Specifically, the SFU Library participates in the following:
- BC Electronic Library Network, representing 30 post-secondary libraries in BC
- Council of Prairie and Pacific University Libraries (COPPUL), representing 20 university libraries in western Canada
- Canadian Research Knowledge Network (CRKN), representing 73 university libraries across Canada
Document delivery agreements exist with all three of these consortia which allow delivery of journals articles and books from these libraries in a timely manner. Holdings and direct requesting from over 40 libraries are accessible through the Interlibrary Loan webpage and from many databases.
General Collection Guidelines
Language: the emphasis is on the acquisition of materials in English.
Treatment of subject: history of, practical, political, biographical treatment, statistical/mathematical, economics of, business/mgt/admin, legal aspects, social aspects, teaching of college or postgraduate level, general, psychological aspects
Types of materials: collecting is split between books and journals, with an emphasis on e-journals and web resources.
Date of Publication: emphasis is on current publications. Retrospective acquisitions are normally only for the replacement of important titles which have deteriorated or disappeared.