Go to Main Content

UNBC Direct Access Web

 

HELP | EXIT

Catalog Entries

 

2019 September Semester
Aug 24, 2019
Transparent Image
Information Select the Course Number to get further detail on the course. Select the desired Schedule Type to find available classes for the course.

CPSC 100 - Computer Programming I
This course introduces the fundamental concepts of programming from and object-oriented perspective. Topics include fundamentals of programming style, syntax, data types, arithmetic and logical expressions, assignments, control structures, arrays, functions, file i/o, classes, inheritance, and dynamic storage allocation. The course emphasizes the development of problem solving and programming skills, including testing techniques and the use of debugging tools. Students must also register in a lab and a tutorial section. Credit will not be awarded for both CPSC 110-3 and CPSC 100-4. Refer to major for required course.

Please note: You must register separately in lecture, tutorial, and lab components.


Credits: 0.000 OR 4.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Lec/Lab/Tut Combination, Laboratory, Tutorial
All Sections for this Course

CPSC 101 - Computer Programming II
This course is a continuation of CPSC 100-4. Objects, classes, inheritance and polymorphism are discussed in depth. Other topics include object-orieted program design and development using principles of software engineering; modeling with UML; GUI components and graphics; dynamic storage allocation, the heap, and garbage collection; run-time support for program execution; and the use of standard libraries. Students work cooperatively to complete a medium-sized project. This course requires both tutorial and laboratory components.

Please note: You must register separately in lecture lab, and tutorial components.


Credits: 0.000 OR 4.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Lec/Lab/Tut Combination, Laboratory, Tutorial

CPSC 110 - Introduction to Computer Systems and Programming
The course provides an introduction to computer systems and programing, concepts in computer architecture including the central processing unit, buses, memory units, input/output and communication devices. The introduction to operating systems emphasizes the file system and program development utilities. Programing concepts and techniques include problem analysis, program design, coding, and testing, as well as language elements such as data types, variables and assignment statements, expressions, mixed-mode arithmetic, input/output operations, basic data structures and control structures, procedures and abstract data types. Basic database management concepts will also be introduced. Students will develop small applications programs. CPSC 110-3 is a first course in computer science and computer programing. CPSC 110-3 cannot be counted as a computer science course by computer science majors. Credit will not be awarded for both CPSC 110-3 & CPSC 100-4. Refer to major for required course.

Please note: You must register separately in lecture, lab, and tutorial components.


Credits: 0.000 OR 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Lec/Lab/Tut Combination, Laboratory, Tutorial, World Wide Web

CPSC 126 - Introduction to Computing
This course is an introduction to computer science. It introduces and exposes the student to the many facets and fields of computer science. Topics discussed include history of computing; algorithms, the hardware and software models of the computer, computer security, problem solving using computers and computer programming; basic and emerging concepts and applications of computer science; the basics of computer networking, and the Internet.

Please note: You must register separately in lecture and lab components.


Credits: 0.000 OR 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Lec/Lab/Tut Combination, Laboratory, Tutorial

CPSC 141 - Discrete Computational Mathematics
This course provides an introduction to set theory, elements of combinatorics and probability theory, logical and formal reasoning using predicate and propositional calculus, together with narrative proof techniques. Other topics include well ordered sets, recursive definitions and mathematical induction; introductory number theory including the division algorithm, Euclidean algorithm, prime numbers and the fundamental theorem of arithmetic; properties of functions and relations including bijections, projections, inverses, composition, and Cartesian products.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 150 - Computer Applications
Taught through the use of common applications, beginning with word processing, this course prepares students for future as well as present needs in computing literacy by reaching beyond examples to recognition of principles. Students gain a practical grasp of data formats, program behaviour, using documentation, and the role of hardware. Communications (including World Wide Web), and cross- platform transference of data, feature prominently, in addition to traditional office applications such as spreadsheets and databases. Students attend lectures and work from web-mounted lab material. Each student undertakes a personal project, which documents independent learning. May not be counted as a computer science course by computer science majors.

Please note: You must register separately in lecture and lab components where applicable.


Credits: 0.000 OR 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Lec/Lab/Tut Combination, Laboratory, World Wide Web

CPSC 199 - Introductory Special Topics I
The intent of this course is to provide timely offering of courses that either reflect rapid change in Computer Science, provide supplementary material in specific concrete topics or skills, or expose non-majors to advances in Computer Science. Consequently, the topic and availability of this course varies. The course may be retaken any number of times, provided all topics are distinct.
Credits: 1.000 TO 3.000

Levels: Undergraduate
Schedule Types: Lecture, Self-Directed, Final Exam

CPSC 200 - Algorithm Analysis and Development
This course introduces the development and analysis of algorithms. Topics include asymptotic complexity and notation, algorithm, analysis, comparison of sorting algorithms, NP Completeness, assertions, and loop and data type invariants. An introduction to program correctness is given and correctness proofs of simple programs are discussed. Recursion relationships are examined. Applications of algorithms are considered.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 222 - Introduction to Concurrent and Distributed Programming
This course introduces the core concepts, techniques, and tools for concurrent and distributed programming. Topics include concurrent programming in shared memory systems and distributed programming in message passing systems. After introducing the necessary concepts, various coordination problems are discussed and then solved using different synchronization mechanisms. Relevant programming environments are introduced and students gain hands-on experience through programming assignments in both shared memory systems and message passing systems.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 230 - Introduction to Logic Design
Topics include: Principles of digital circuit design, boolean algebra, basic switching functions and gate-level implementation, canonical forms, algebraic simplifications, Karnaugh maps, Quine-McCluskey tables, voltage assignments, logic technologies, combinatorial logic circuits, decoders, encoders, multiplexers, demultiplexers, comparators, adders, sequential logic circuits, clocked flip-flops, registers, counters, register transfer logic, central processing unit, instruction set, addressing modes, arithmetic and logic units, control unit, bus organization, designing a minicomputer PDP-8.

Please note: You must register separately in lecture and lab components.


Credits: 0.000 OR 4.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Lec/Lab/Tut Combination, Laboratory
All Sections for this Course

CPSC 231 - Computer Organization and Architecture
This course introduces computer organization and architecture. Topics include computer abstractions and technology, characteristics of good computer architecture, instruction set architecture, Reduced Instruction Set Computer (RISC), Complex Instruction Set Computer (CISC), processor datapath and control, pipelining, hyper-threading, memory systems, I/O systems, bus, multiprocessors, parallel computers, and Flynn's Taxonomy. Students gain hands-on experience throuhg a series of assembly level programming lab assignments using a simulator of a simple machine.

Please note: You must register separately in lecture and lab components.


Credits: 0.000 OR 4.000

Levels: Undergraduate
Schedule Types: Lecture, Self-Directed, Final Exam, Lec/Lab/Tut Combination, Laboratory

CPSC 242 - Mathematical Topics for Computer Science
This course introduces topics in graphs and trees: terminology, trails, paths, cycles, and shortest paths. As well, this course discusses counting methods: principles of inclusion and exclusion, combinatorial identities and arguments, and generating functions. Topics in probability theory are introduced.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 250 - Applied Business Computing
This course examines core computing knowledge and techniques as they apply to business applications. The course covers database design and information retrieval techniques with emphasis on web-database integration, advanced features of spreadsheets, recoding/analyzing basic business transactions using a variety of accounting software, and implementation of selected financial models. Presentational and interface design techniques are also covered. Students complete a term project that solves a typical business problem using the software and procedures of their choice. This course may not be counted as a computer science course by computer science majors.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 260 - Ethics in Computing Science
This course focuses on codes of ethics of computing professional societies, technology and human values, costs and benefits of technology, the social context of work in computer science and engineering, copyright, patents, access, and other concepts.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 270 - Human Interface Design
The course examines the theory and practice of human- computer interaction and interface design. Human aspects of the interaction: cognition, perception, attention and memory constraints, knowledge representation, interface metaphors, learning, communication. Technological aspects of interface design: input-output devices, interaction styles, windowing systems and tools, client-server models, interfaces for collaborative work, virtual environments. A project with a substantial user interface component, involving interface design, validation, implementation, testing, and evaluation will be completed.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Self-Directed, Final Exam, Laboratory

CPSC 281 - Data Structures I
Topics include: Program performance, data representation, arrays and matrices, lists, stacks and queues, skip lists and hashing, binary trees, balanced and B-trees, AVL trees, splay trees, tree traversals using stacks, expression trees, prefix, infix, and postfix expressions and conversions, priority queues and heaps, search trees, Huffman codes, graphs, graph algorithms (weighted and unweighted shortest-path, Dijkstra's algorithm, critical paths), minimum-cost spanning trees (Prim's, Kruskal's, and Solin's algorithms). Implementation of various data structures using object-oriented programming language.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Laboratory

CPSC 299 - Introductory Special Topics II
The intent of this course is to provide timely offering of courses that either reflect rapid change in Computer Science, provide supplementary material in specific concrete topics or skills, or expose non-majors to advances in Computer Science. Consequently, the topic and availability of this course varies. The course may be retaken any number of times, provided all topics are distinct. This course normally supposes some first-year exposure to Computer Science.
Credits: 1.000 TO 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 300 - Software Engineering
Fundamental problem-solving concepts, the software development process, software requirements and specifications, software design and implementation, verification and validation, organization and management of programming teams, and documentation are discussed. Students work on a team project.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Laboratory

CPSC 320 - Programming Languages
This course is a general introduction to programming languages. Topics include: an overview of programming languages and language design objectives, specification of syntax and semantics, virtual machines and language translation, lambda calculus and theoretical fundamentals, program correctness and reasoning about programs, programming language constructs, declarations and types, abstraction mechanisms, and programming paradigms. An interpreter-based approach is used to describe the semantics of language constructs. Assignments include case studies and laboratory work.
Credits: 0.000 OR 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Laboratory

CPSC 321 - Operating Systems
This course introduces the fundamental concepts of operating systems. Topics include tasking and processes, process co-ordination and synchronization, scheduling and dispatch, physical and virtual memory organization, paging and segmentation, device management, file systems, and security and protection. Students study a simple operating system and have an opportunity to make modifications to it in laboratory exercises.
Credits: 0.000 OR 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Lec/Lab/Tut Combination, Laboratory, Tutorial
All Sections for this Course

CPSC 324 - Introduction to Database Systems
This course focuses on the relational database model. Topics include storage structure and access methods, data definition and data manipulation language, relational algebra and calculus, and SQL. An introduction to database design using entity-relationship model, functional dependencies, and theory of normalization is provided. A relational DBMS is used for understanding SQL and application development in SQL-like languages and general purpose host languages with application program interfaces.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 340 - Theory of Computation
This course examines regular expressions, deterministic and non-deterministic finite automata, context-free and other grammars, pushdown automata, Chomsky and Greibach normal forms. Chomsky hierarchy, pumping lemmas, Turing machines, undecidability, computability, recursive function theory, computational complexity, NP-hard and NP-complete problems.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Self-Directed, Final Exam, Lec/Lab/Tut Combination, Laboratory

CPSC 344 - Data Communications and Networking
This course provides an understanding of basic concepts underlying data communications and networking. Topics covered include data transmission and encoding, Internet and Internet2, Network Layer model, multiplexing, circuit switching, network protocols, and data communication hardware. Students also learn about protocols and topologies of Local Area Networks (LANs), Wireless LANs, Wide Area Networks (WANs), Metropolitan Area Networks (MANs), and Backbone Networks (BNs). The basic concepts of network design and implementation, network management, and network security are also introduced.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 351 - Management Information Systems
This course emphasizes the strategic role of information systems in modern business. Topics include the technical foundations of information systems, the impact of information systems on business operations and decision- making, and the processes that are required for successful implementation of business information systems.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Laboratory

CPSC 354 - Introduction to Business Intelligence
This course provides students with an understanding business intelligence which involves onversion of mass data into effectively communicated information through visual, interactive media that enables evidence-based strategic decision making. Course topics include: data extract-transform-load (ETL); data quality; master data management (MDM) ; data warehouse models; conformance; star/snowflake dimensional models; online transaction processing (OLTP) ; online analytical processing (OLAP) ; effective data visualization (lead/lag key performance indicators, scorecards, dashboards, reports) , governance, success/failure factors, and emerging trends. Students apply the concepts in a term project using leading technologies and business intelligence tools.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 370 - Functional and Logic Programming
This course provides an introduction to programming in symbolic languages such as the functional language Scheme and the logic programming language PROLOG, with applications to systems programming, symbolic computation, artificial intelligence, and other areas.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Laboratory

CPSC 371 - Artifical Intelligence
Productions and matching, knowledge representations, search, logical reasoning and use of PROLOG in learning, natural-language understanding, computer vision, expert systems.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Laboratory

CPSC 377 - Introduction to Robotics
This course is an introduction to hardware architecture and control architecture of robotic and mechatronic devices. Topics include electronics, sensor capabilities, calibration of sensors, control of sensor I/O, motor and motion control through duty cycle and pulse width modulation. Laboratory topics include the development of interfaces between sensors, their control boards and digital circuitry including microprocessors. Microprocessor control of sensors and motors is developed, including the use of reasoning embedded in onboard microprocessor software for control of robotic actions.

Please note: You must register separately in lecture and lab components if applicable.


Credits: 0.000 OR 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Laboratory

CPSC 400 - Software Engineering Project
The course provides students, working in groups, with a significant project experience in which they can integrate much of the material they have learned in CPSC 300 Software Engineering, including matters relating to requirements, design, human factors, professionalism, and project management.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Self-Directed, Final Exam

CPSC 424 - Advanced Database Systems
This course is an introduction to advanced concepts in database design and applications. Topics discussed include transaction management, concurrency control, query processing and optimization, recovery and security, data warehousing and data mining, handling of special data types such as multimedia, spatial data, and XML documents. An introduction to object-oriented and object-relational models, parallel and distributed databases, and special purpose databases is also provided. Support for complex applications, information retrieval and data analysis is examined.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 425 - Introduction to Compiler Design
This course is an introduction to programming language translation, compilers, interpreters, and other language processors. Topics include the phases of a compiler, lexical analysis and scanner design, syntax analysis and parsing techniques, semantic analysis, code generation, compiler generation tools, compile time and run time aspects of semantics, execution environment and run time support, code optimization, and testing. Students design and implement a compiler for a small language.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 430 - Undergraduate Thesis
This undergraduate thesis allows students to examine and research a topic in the field of computer science. Students must have completed at least 90 credit hours and be computer science majors. This thesis may be taken in one or two semesters. CPSC 430 is normally taken over two semesters and requires that a student find an Undergraduate Thesis research supervisor. Therefore, students are encouraged to apply to potential supervisors well in advance of completing 90 credit hours. This course may be repeated for a total of 6 credit hours.
Credits: 3.000 TO 6.000

Levels: Undergraduate
Schedule Types: Undergrad Thesis

CPSC 441 - Distributed Systems
This course covers the fundamental principles and paradigms underlying the design of distributed computing systems. Coverage includes the definition and types of distributed systems, communication, processes, naming, synchronization, consistency and replication, fault tolerance, and security. Term projects focus on case studies of specific systems representing web-based, peer-to-peer, mobile, grid, and other modern paradigms.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Laboratory

CPSC 442 - Parallel Computing
This course introduces students to concepts in high performance computing. Topics include classification of parallel architectures, basic communications operations, interconnection networks, topologies of dynamic and static networks, performance issues and techniques for optimization, and dynamic programming. Parallel algorithm design for high-performance computing such as applications in computational biology, finite-element and finite-difference methods for numerical simulations., dense/sparse matrix algorithms, and multidimensional data structures is also discussed. Message passing (MPI and OpenMP) is used for implementation of algorithms on high performance cluster computers.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam, Laboratory

CPSC 444 - Computer Networks
This course explores essential topics in computer networks including TCP protocol, TCP reliable transport service, Internet protocol IP addresses, IP datagram and datagram forwarding, IPv6, network applications, real time interactive applications protocols (RTP, RTCP, SIP, H.323), security in computer networks, and network management. Network applications discussed include client-server interaction, naming and domain name system DNS, multimedia networking, VoIP, audio and video streaming.
Credits: 0.000 OR 3.000

Levels: Undergraduate
Schedule Types: Lecture, Self-Directed, Final Exam, Laboratory

CPSC 450 - Bioinformatics
This course introduces computational techniques for solving biological problems and presents an overview of the tools and the methods used to analyze large biological data sets. After introducing molecular biology for computer scientists—cells and organelles, chromosome, gene, DNA, RNA, proteins, transcription and translation—the course explores pairwise and multiple sequence alignment, sequence database searches, pattern identification of genes, promoters and transcription factor binding sites, as well as secondary and tertiary structure prediction for RNA and proteins. Markov models for gene prediction are introduced.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Self-Directed, Final Exam, Lec/Lab/Tut Combination, Laboratory

CPSC 472 - Knowledge Based Systems
This course introduces students to Expert Systems. The two major topics addressed are Rule-based systems and Fuzzy Logic systems. Goal driven forward-chaining and ackward-chaining paradigms are introduced. Automatic theorem provers, inference engines and problems of knowledge representation and knowledge acquisition are discussed. Approaches to reasoning about uncertainty are covered including Bayesian probabilities, certainty factors, non-monotonic logics and reasoning with beliefs. A Fuzzy Logic system is implemented and an application is developed and tested.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 473 - Introduction to Data Mining
This course introduces algorithms and paradigms that allow computers to discover previously hidden patterns in databases or datasets. Main topics include discovery of frequent patterns, analysis of different types of data (static, dynamic, sequential, uncertain, etc.) clustering and classification. Other topics may include data visualization, social network mining, real-life applications, and parallel/distributed data mining. Students work on assignments, term tests and a course project.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 475 - Multiagent Systems
An introduction to the theoretical and practical aspects of intelligent agents and multiagent systems, this course is open to undergraduate students majoring in different areas and fosters creative multidisciplinary interaction. Coverage includes the basic concepts, agent architectures, decuctive and practical reasoning agents, reactive and hyrbrid agents, multiagent interactions, human-agent interactions, agreements, communication, and teamwork. Individual or team projects allow students to explore specific topics in their areas of interest through theorectical or laboratory work.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 482 - Data Structures II
External sorting and merging, best case, worst case, and average case estimates, time and space estimates for algorithms studied in CPSC 200-3 and 281-3.
Credits: 3.000

Levels: Undergraduate
Schedule Types: Lecture, Final Exam

CPSC 495 - Undergraduate Research Project
This course consists of a small research project undertaken by the student or by teams of students. Projects consist of the definition of a problem in computing and a literature survey of recent work in the field. Students are encouraged to define their own possible solutions and to prototype the solutions where appropriate. Regular review of progress is made in meetings. Students develop skills in the preparation of topic survey notes and in the development of arguments in support of or against published approaches to problems in computing. Students are expected to prepare and present their work. This course may be repeated provided all topics are distinct.
Credits: 0.000 OR 3.000

Levels: Undergraduate
Schedule Types: Self-Directed, Final Exam, Lec/Lab/Tut Combination, Laboratory, Seminar, Undergrad Thesis

CPSC 499 - Special Topics
The topics for this course vary, depending on student interest and faculty availability. This course may be retaken any number of times, provided all topics are distinct.
Credits: 0.000 TO 3.000

Levels: Undergraduate
Schedule Types: Lecture, Self-Directed, Final Exam, Laboratory

CPSC 600 - Software Engineering Project
This course provides students, working in groups, with an opportunity to apply the principles of software engineering, learned in previous courses, in a controlled and yet realistic project environment. They gain a significant integral project experience involving various project phases, such as requirements elicitation, system design, and prototyping, as well as team organization, human factors, professionalism, and project management.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Final Exam

CPSC 624 - Advanced Database Systems
This course introduces advanced concepts in database design and applications. Topics include transaction management, concurrency control, query processing and ptimization, recovery and security, data warehousing and data mining, handling of special data types such as multimedia, spatial data, and XML documents. An introduction to object-oriented and object-relational models, parallel and distributed databases, and special purpose databases is also provided. Support for complex applications, information retrieval and data analysis is examined.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Final Exam

CPSC 625 - Introduction to Compiler Design
This course is an introduction to programming language translation, compilers, interpreters, and other language processors. Topics include the phases of a compiler, lexical analysis and scanner design, syntax analysis and parsing techniques, semantic analysis, code generation, compiler generation tools, compile time and run time aspects of semantics, execution environment and run time support, code optimization, and testing. Students design and implement a compiler for a small language.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Final Exam

CPSC 641 - Distributed Systems
This course covers the fundamental principles and paradigms underlying the design of distributed computing systems. The coverage includes the definition and types of distributed systems, communication, processes, naming, synchronization, consistency and replication, fault tolerance, and security. Term projects focus on case studies of specific systems representing web-based, peer-to-peer, mobile, grid, and other modern paradigms.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Final Exam

CPSC 642 - Parallel Computing
This course introduces students to concepts in high performance computing. Topics inlcude classification of parallel architectures, basic communications operations, interconnection networks, topologies of dynamic and static networks, performance issues and techniques for optimization, and dynamic programming. Parallel algorithm design for high-performance computing-such as applications in computational biology, finite-element and finite-difference methods for numerical simulations, dense/sparse matrix algorithms, and multidimensional data structures-is also discussed. Message passing (MPI and OpenMP) is used for implementation of algorithms on high performance cluster computers.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Final Exam

CPSC 644 - Computer Networks
This course explores essential topics in computer networks including TCP protocol, TCP reliable transport service, Internet protocol IP addresses, IP datagram and datagram forwarding, IPv6, network applications, real time interactive applications protocols (RTP, RTCP, SIP, H.323), security in computer networks, and network management. Network applications discussed include client-server interaction, naming and domain name system DNS, multimedia networking, VoIP, audio and video streaming.
Credits: 0.000 OR 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Final Exam, Laboratory

CPSC 650 - Bioinformatics
This course introduces computational techniques for solving biological problems and presents an overview of the tools and methods used to analyze large biological data sets. After introducing molecular biology for computer scientists—cells and organelles, chromosome, gene, DNA, RNA, proteins, transcription and translation—the course explores pairwise and multiple sequence alignment, sequence database searches, pattern identification of genes, promoters and transcription factor binding sites, as well as secondary and tertiary structure prediction for RNA and proteins. Markov models for gene prediction are introduced.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Final Exam

CPSC 672 - Knowledge Based Systems
This course introduces students to Expert Systems. The two major topics addressed are Rule-based systems and Fuzzy Logic systems. Goal-driven forward-chaining and backward-chaining paradigms are introduced. Automatic theorem provers, inference engines and problems of knowledge representation and knowledge acquisition are discussed. Approaches to reasoning about uncertainty, including Bayesian probabilities, certainty factors, non-monotonic logics and reasoning with beliefs, are covered. A Fuzzy Logic system is implemented and an application is developed and tested.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Final Exam

CPSC 673 - Introduction to Data Mining
This course introduces algorithms and paradigms that allow computers to discover previously hidden patterns in databases or datasets. Main topics include discovery of frequent patterns, analysis of different types of data (static, dynamic, sequential, uncertain, etc.) clustering and classification. Other topics may include data visualization, social network mining, real-life applications, and parallel/distributed data mining. Students work on assignments, term tests and an individual course project.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Final Exam

CPSC 675 - Multiagent Systems
An introduction to the theoretical and practical aspects of intelligent agents and multiagent systems, this course is open to graduate students in different areas and fosters creative multidisciplinary interaction. Coverage includes the basic concepts, agent architectures, deductive and practical reasoning agents, reactive and hybrid agents, multiagent interactions, human-agent interactions, agreeements, communication, and teamwork. Individual or team projects allow students to explore specific topics in their areas of interest through theoretical or laboratory work.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Final Exam

CPSC 682 - Data Structures II
External sorting and merging, best case, worst case, and average case estimates, time and space estimates for algorithms studied in CPSC 200-3 and CPSC 281-3.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Final Exam

CPSC 690 - Computing Project I
This course consists of a large computing project undertaken by the student or by teams of students. Projects will be geared to industrial or research needs and designed to give the senior students first-hand experience in applying their knowledge and skills to the design and implementation of medium to large software systems. Students will employ standard software engineering practices. Regular project team meetings will be held to review project milestones.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed

CPSC 699 - Special Topics
The topics for this course vary, depending on student interest and faculty availability. The course may be repeated any number of times, provided all topics are distinct from one another.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Final Exam

CPSC 704 - Graduate Seminar in Computer Science
This course comprises weekly seminar sessions. Students will investigate and present ideas and results pertaining to current computer science research. The offerings may include presentations of current literature, research methodology, and topics related to students' own research or project work. Students will participate in discussions and critiques of the work presented. MSc students are required to attend and participate in all seminar sessions to obtain credit for the course. This is a PASS/FAIL course. [All MSc students must register in a seminar course twice during their program of studies. It is expected that all MSc students will attend the seminar each semester they are available.]
Credits: 1.500

Levels: Graduate
Schedule Types: Final Exam, Seminar

CPSC 706 - Topics in Computer Science Research and Methodology
This course is designed to expose graduate students to research methods, principles and design techniques in computer science, which may include: evolution of fundamental ideas in computer science, theoretical foundations, formal techniques in the areas of system specification, design, verification, validation and performance analysis. The course aims to offer methods and principles widely applicable in computer science. Specific applications studied will vary.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Final Exam

CPSC 720 - Advanced Programming Language
Topics for this course may include advanced study of general programming language design concepts, formal reasoning about programs and languages, pragmatic evaluation of language properties, and case studies of specfic languages. The course may be used to communicate programming language theory and practice specfic to students' project or thesis research needs.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed

CPSC 723 - Transaction Processing and Currency Control
This course provides an introduction to the key principles of transaction processing systems. It includes the architecture of transaction processing systems, including transactional communications paradigms, and mechanisms for recovering from transaction and system failures. Some of the commercial transaction processing systems, transactional aspects of database servers, messaging systems, internet servers, and object-oriented systems, as well as each of their subsystems, are also studied through various examples.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Lec/Lab/Tut Combination, Laboratory

CPSC 740 - Analysis and Modeling of Communication Networks
This course aims to introduce techniques for analysing the performance of communication networks and systems. The techniques to be convered include different queueing models and the applications and limitations of these models for the analysis of communication networks, such as: introduction, probability, queueing analysis, M/M/1 and other models, Performance Modeling, Simple and Complex Packet Switched Networks and other modeling techniques.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Lec/Lab/Tut Combination, Laboratory

CPSC 741 - Advanced Topics in Distributed Computing
This course focuses on exploration of principles of distributed computing through a study of selected advanced topics of research interest to faculty and students.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Final Exam, Lec/Lab/Tut Combination, Laboratory

CPSC 744 - Internet and Mobile Security
This course provides a comprehensive study of issues in internet and mobile security, including types of security devices, firewalls and virtual private networks. Other topics covered include denial of service attacks, virus, worms, Trojan horses, replay violations, cookies, Public key cryptography, hash algorithms, Data Encryption Standard (DES), MD5, Modular arithmetic, primes and Euclid's algorithm, Public key algorithms, Prominent Internet Security Procedures like Diffie-Helleman, authentication, passwords, mutual authentication, authorization, RADIUS and AAA, IPsec, IKE, PKI. The course also covers transport layer security and secure socket layer protocols, authentication of mobile users and privacy operations.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Lec/Lab/Tut Combination, Laboratory

CPSC 760 - Modeling and Simulation
This course covers fundamental modeling and simulation concepts and discrete-event systems in particular. The course introduces systems modeling and simulation concepts, basic probability distributions and random numbers, queueing models, and an overview of relevant object oriented concepts. The fundamental concepts and practical simulation techniques for modeling different types of systems are covered. An in-depth study of modeling elements, simulation protocols, and their relationships including verification and validation are discussed. Various distributed systems are introduced as case studies and a significant part of the course and hands-on experience is through simulation projects. Understanding of distributed systems and object-oriented programming concepts and basic probability theory is required.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Final Exam, Lec/Lab/Tut Combination, Laboratory

CPSC 790 - Graduate Seminar

Credits: 3.000

Levels: Graduate
Schedule Types: Seminar

CPSC 791 - Advanced Special Topics I
This course introduces selected advanced special topics in computer science. The content may vary.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed, Final Exam

CPSC 792 - Advanced Special Topics II
This course introduces selected advanced special topics in computer science. The content may vary.
Credits: 3.000

Levels: Graduate
Schedule Types: Lecture, Self-Directed


Return to Previous New Search XML Extract
Transparent Image
Skip to top of page
Release: 8.7.2