Brock University Undergraduate Calendar

COURSES Aboriginal Education (ABED) Tecumseh Centre for Aboriginal Research and Education (ABST) Aboriginal Teacher Education (ABTE) Accounting (ACTG) Adult Education (ADED) Business Administration (ADMI) Academic English as Subsequent Language (AESL) Applied Computing (APCO) Arabic (ARAB) Astronomy (ASTR) Biochemistry (BCHM) Biology (BIOL) Biophysics (BPHY) Biotechnology (BTEC) Canadian Studies (CANA) Chemistry (CHEM) Community Health Sciences (CHSC) Child and Youth Studies (CHYS) Classics (CLAS) Communications Studies (COMM) Computer Science (COSC) Dramatic Arts (DART) Economics (ECON) Education (EDUC) English (ENGL) Entrepreneurial Studies (ENTR) Earth Sciences (ERSC) Education Science (ESCI) Ethics (ETHC) Film (FILM) Finance (FNCE) French (FREN) Geography (GEOG) German (GERM) Greek (GREE) History (HIST) Interactive Arts and Science (IASC) Iberian and Latin American Studies (IBLA) Intercultural Studies (INTC) Italian (ITAL) Information Technology Information Systems (ITIS) Japanese (JAPA) Labour Studies (LABR) Liberal Arts (LART) Latin (LATI) Linguistics (LING) Mandarin Chinese (MAND) Medieval and Renaissance Studies (MARS) Mathematics (MATH) Management (MGMT) Marketing (MKTG) Music (MUSI) Neuroscience (NEUR) Nursing (NUSC) Organizational Behaviour and Human Relations (OBHR) Oenology and Viticulture (OEVI) Operations Management (OPER) Popular Culture (PCUL) Physical Education and Kinesiology (PEKN) Philosophy (PHIL) Physics (PHYS) Political Science (POLI) Portuguese (PORT) Psychology (PSYC) Recreation and Leisure Studies (RECL) Russian (RUSS) Science (SCIE) Studies in Comparative Literatures and Cultures (SCLC) Sociology (SOCI) Spanish (SPAN) Sport Management (SPMA) Studies in Arts and Culture (STAC) Swahili (SWAH) Tourism and Environment (TREN) Visual Arts (VISA) Women's Studies (WISE) Writing (WRIT)
Computer Science Courses
COSC 0N01 Co-op Work Placement I First co-op work placement (4 months) with an approved employer. Restriction: open to COSC and BCB Co-op students. COSC 0N02 Co-op Work Placement II Second co-op work placement (4 months) with an approved employer. Restriction: open to COSC and BCB Co-op students. COSC 0N03 Co-op Work Placement III Third co-op work placement (4 months) with an approved employer. Restriction: open to COSC and BCB Co-op students. COSC 0N04 Co-op Work Placement IV Optional co-op work placement (4 months) with an approved employer. Restriction: open to COSC and BCB Co-op students. COSC 0N05 Co-op Work Placement V Optional co-op work placement (4 months) with an approved employer. Restriction: open to COSC and BCB Co-op students. COSC 1P02 Introduction to Computer Science Computers and computer programming in a high-level language (normally Java). Topics include computer fundamentals, problem solving and software development, programming language syntax and semantics, methods, input/output, control structures and data types. Lectures, 2 hours per week; lab, 2 hours per week; tutorial, 1 hour per week. Note: students with considerable prior programming experience in a high-level language such as Pascal, Java, C++ or Ada may be granted exemption from this course at the discretion of the Chair. COSC 1P03 Data Structures and Abstraction Programming and problem solving in a high-level programming language (normally Java). Data structures including arrays, strings and linked-lists. Modularity, abstraction and abstract data types including stacks, queues and lists. Introduction to searching and sorting, algorithm analysis and object-orientation. Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week. Prerequisite(s): COSC 1P02 (minimum 60 percent) or permission of the Chair. Note: Students with a minimum 80 percent in APCO 1P00 and changing their major to COSC may be permitted to enter directly into COSC 1P03. Consult the Chair. *COSC 1P50 Integrity and Literacy in the Information Age (also offered as APCO 1P50 and IASC 1P50) Professional issues in computing including historic and social perspectives, legal issues, licensing and copyright, social and ethical issues, professional conduct and information literacy. Lectures, 3 hours per week; seminar, 2 hours per week. Note: This course involves seminars and considerable written work. A good command of written and spoken English is required. COSC 2C01 Co-op Reflective Learning and Integration I Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB, COSC and CNET Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 0N01. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. COSC 2C02 Co-op Reflective Learning and Integration II Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB and COSC Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 2C02. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. COSC 2C03 Co-op Reflective Learning and Integration III Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB and COSC Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 0N03. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. COSC 2C04 Co-op Reflective Learning and Integration IV Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB and COSC Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 0N04. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. COSC 2C05 Co-op Reflective Learning and Integration V Provide student with the opportunity to apply what they've learned in their academic studies through career-oriented work experiences at employer sites. Restriction: open to BCB and COSC Co-op students. Prerequisite(s): SCIE 0N90. Corequisite(s): COSC 0N05. Note: students will be required to prepare learning objectives, participate in a site visit, write a work term report and receive a successful work term performance evaluation. COSC 2N90 Internship Work placement of 8-16 months duration with an approved employer. Restriction: open to students accepted into the Internship option. Note: interviews with employer and student and completion, by the student, of a work report. COSC 2P03 Advanced Data Structures Implementation and usage of data structures. Topics include trees, graphs, advanced list structures, sorting and searching, analysis of algorithms, program proofs. Lectures, 3 hours per week; lab, 2 hours per week; tutorial, 1 hour per week. Restriction: open to COSC (single or combined), BCB, CAST and CNET majors. Prerequisite(s): COSC 1P03 (minimum 60 percent), MATH 1P66 and 1P67. COSC 2P12 Computer Organization and Assembly Language Basic computer organization including functional units, instruction cycle, control, buses and memory. Assembly-level programming including machine representation, instruction sets and addressing modes. Role of assemblers, linkers and loaders. Lectures, 3 hours per week; lab, 2 hours per week. Prerequisite(s): COSC 1P03 (minimum 60 percent). COSC 2P13 Introduction to Operating Systems Operating systems from a user's viewpoint. Emphasis on the functionality of operating systems rather than their implementation. Topics include file, processor, I/O and memory management; concurrent processes; mainframe and microcomputer operating systems; UNIX. Lectures, 3 hours per week. Prerequisite(s): COSC 2P12 (minimum 60 percent). *COSC 2P32 File and Database Systems (also offered as APCO 2P32) File organizations and access methods, fundamental data base concepts: specification and design of databases and applications; various database models including the relational model; processing with SQL; database administration; security. Practical database experience (normally ORACLE). Lectures, 3 hours per week; lab, 2 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent). Note: students minoring in Applied Computing requesting permission to register should have completed APCO 1P00 and 1P93 with a minimum 60 percent. Contact the Department. *COSC 2P89 Internet Technologies (also offered as APCO 2P89 and IASC 2P89) Concepts and techniques required for building and maintaining advanced interactive Web sites. Topics include XML and SGML, database connectivity and forms handling, basic animation, graphics optimization for the Web, scripting, advanced searching, Web design for accessibility. Lectures, 3 hours per week; lab/seminar, 2 hours per week. Prerequisite(s): COSC 1P03 (minimum 60 percent) or APCO 1P00 (minimum 60 percent) and 1P01 (minimum 60 percent). COSC 2P90 Programming Languages and Object-Orientation Fundamental concepts of programming languages including syntax, semantics, control, data types and abstraction. Programming paradigms including imperative, applicative, logic and object-oriented. Object-orientation including inheritance and polymorphism. Introduction to object modelling. Lectures, 3 hours per week; lab, 2 hours per week. Prerequisite(s): COSC 1P03 (minimum 60 percent). COSC 2P91 Procedural Programming Programming in procedural languages including procedures and functions, data representation, control structures and program organization. Procedural languages such as Ada, C and COBOL Lectures, 3 hours per week; lab, 2 hours per week. Prerequisite(s): COSC 1P03 (minimum 60 percent). COSC 2P93 Logic Programming Predicate logic, symbolic and declarative programming, resolution theorem proving, applications. Introduction to logic languages such as Prolog. Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent). #COSC 2P96 Introduction to 3D Modelling and Animation (also offered as IASC 2P96 and VISA 2P96) Concepts and skills of 3D modelling and rendering. Approaches to building models, using texturizing, lighting, cameras and rendering as well basic animation techniques. Relevant historic and theoretical perspectives on 3D and virtuality situating 3D within creative process and broader critical practices in cultural production. Lectures, lab, 5 hours per week. Restriction: open to VISA (single or combined) and VISA (Honours)/BEd (Intermediate/Senior) majors until date specified in Registration guide. Prerequisite(s): one of, 4.0 COSC credits, IASC 1F00, VISA 1P97. Note: enrolment limited to 24 students. Materials fee required. Students must supply any additional materials and equipment. COSC 3F00 Software Engineering Scientific principles and managerial skills required for the construction of reliable software. Attributes of large complex software systems and software process models for managing the phases of software development; software requirements: analysis, tools and document preparation; software specification methods, software design concepts and alternate methodologies such as prototyping and object-oriented paradigms; several software testing, verification and validation methods. Lectures, 3 hours per week; lab, 2 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent) and one and one-half COSC credits or permission of the instructor. Note: this course requires considerable written work and presentations. A good command of written and spoken English is required. Completion of COSC 1P50 and concurrent registration in COSC 2P91 is recommended for this course. Major group project is required. COSC 3P01 Introduction to Computer Networking Overview of computer network services and principles of operation using the Internet as an example. Topics include layering of services and protocols; functionality of application layer services: world wide web, file transfer and electronic mail; addressing and naming in wide and local area networks; principles of operation of communication-oriented layers: transport, network and data link layers; physical media of interconnection. Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent), 2P13 (minimum 60 percent) and MATH 1P67; MATH 1P01 or 1P05 or permission of the instructor. COSC 3P03 Algorithms Design and analysis of computer algorithms. Topics include asymptotic notations, solving recurrences, order statistics, general algorithm design techniques such as divide-and-conquer, greedy algorithms, dynamic programming, backtracking and branch-and-bound. Graph and string algorithms, and introduction to NP-Completeness and complexity theory. Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent) or permission of the instructor. COSC 3P40 Advanced Object-Oriented Programming Topics may include graphical user interfaces, animation, sound, music, networking, parallelism, client-server and XML using game design as an example. Object-oriented program design including UML and design patterns. Introduction to advanced Java APIs such as awt, swing, io, nio, sound, net and xml. Lectures, 3 hours per week; lab, 2 hours per week. Prerequisite(s): two COSC credits or permission of the instructor.
COSC 3P71 Artificial Intelligence Topics include heuristic programming, analysis of solution space, searching, pattern recognition, machine learning, game playing, genetic algorithms and problem solving. Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent) or permission of the instructor. Note: completion of COSC 2P93 is recommended before taking this course. COSC 3P92 Computer Architecture Topics include buses, internal and external memory, I/O and interfacing, computer arithmetic, instruction sets, RISCs, microprogrammed control, parallel organization. Lectures, 3 hours per week. Prerequisite(s): COSC 2P13 (minimum 60 percent) or permission of the instructor. COSC 3P93 Parallel Computing Origins of parallelism, classification of designs, characterization of performance. Pipelined computers: selection and comparison, case studies. Processor arrays: switching networks, case studies. Parallel languages: general principles, parallel constructs, vectorizing compilers, issues of portability. Practical exposure to a parallel programming language and parallel computing hardware. Parallel algorithms: general principles, recurrences, parallel approach to data structures and computational structures. Future trends: technology, design limitations, future supercomputers. Lectures, 3 hours per week. Prerequisite(s): COSC 2P13 (minimum 60 percent) or permission of the instructor. *COSC 3P94 Introduction to Human Computer Interaction (also offered as APCO 3P94 and IASC 3P94) Human factors in the design and support of computing systems. Design methodologies such as GOMS, TAGs and Task Analysis. Design principles relating to various interaction paradigms. Lectures, 3 hours per week; lab/seminar, 2 hours per week. Prerequisite(s): two credits from APCO (minimum 60 percent), COSC (minimum 60 percent), IASC (minimum 60 percent) or permission of the instructor. COSC 3P95 Embedded Software Real-time execution, concurrency, network and device control. Topics include requirements posed by embedded software; real-time programming languages and operating systems; development of embedded applications. (knowledge of C assumed). Lectures, 3 hours per week; lab, 2 hours per week. Prerequisite(s): COSC 2P13 (minimum 60 percent) or permission of the instructor. Note: completion of PHYS 1P91, 1P92 (1F90) and COSC 2P91 is recommended before taking this course. COSC 3P96 Discrete Event Simulation Classification of modelling and simulation problems: discrete, continuous and Monte Carlo. Concepts of causality, understanding and modelling. Issues of model credibility, validation, verification, tractability, uncertainty and system state. Basic discrete-event simulation methodology. Elements of probability in model building. Random number generation. Statistical analysis of simulated data and design of simulation experiments. Lectures, 3 hours per week. Restriction: open to COSC (single or combined), BCB, CAST and CNET majors. Prerequisite(s): MATH 1P98 or permission of the instructor. Completion of this course will replace previous assigned grade and credit obtained in COSC 4P94 and 4V94. COSC 3P98 Computer Graphics Topics include 2-D and 3-D graphics, curve and surface fitting, light and colour models, real time interfaces, animation and hardware issues (knowledge of C assumed). Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent), three COSC credits and MATH 1P12 or permission of the instructor. Note: completion of COSC 2P91 is recommended before taking this course. COSC 3P99 Computing Project Half-year development project or directed reading essay under faculty supervision. Seminar, 2 hours per week. Restriction: open to COSC (single or combined), BCB, CAST and CNET majors and permission of project co-ordinator. Prerequisite(s): COSC 2P03 (minimum 60 percent). Note: students may propose their own projects for departmental approval or may apply for a project proposed by a faculty member. Further information (including project guidelines and project list) is available on the department Web pages. COSC 3V90-3V99 Computing Topics I Selected topics in computer science. Restriction: open to COSC (single or combined), BCB, CAST and CNET majors. COSC 4F90 Computing Project Full-year project under the supervision of a faculty member. Seminar, 2 hours per week. Restriction: open to COSC (single or combined), BCB, CAST and CNET majors with a minimum 75 percent major average and permission of project co-ordinator. Prerequisite(s): COSC 3F00 (minimum 60 percent). Note: students may propose their own projects for departmental approval or may apply for a project proposed by a faculty member. This course is strongly recommended for students considering graduate school. Students must consult with faculty at the end of year 3 regarding supervision of projects. Further information (including project guidelines and project list) is available on the department Web pages. COSC 4P03 Advanced Algorithms Classical and evolving problems and algorithms in Computer Science. Topics include classical design and analysis techniques, cryptography, combinatorics. Lectures, seminar, 3 hours per week. Prerequisite(s): COSC 3P03 (minimum 60 percent) or permission of the instructor. COSC 4P13 Operating Systems: Design and Implementation Design and implementation of UNIX and other operating systems. Topics include process and thread management, interprocess communication, synchronization and scheduling, multiprocessing, device drivers, kernel memory management, distributed and advanced file systems and STREAMS (knowledge of C assumed). Lectures, 3 hours per week. Prerequisite(s): COSC 2P13 (minimum 60 percent) and 2P91 (minimum 60 percent) or permission of the instructor. COSC 4P14 Computer Networks Advanced topics in computer networking, including computer network security, wireless and high-speed networking, computer network management and performance evaluation. Lectures, 3 hours per week. Prerequisite(s): COSC 3P01 (minimum 60 percent) or permission of the instructor. COSC 4P41 Functional Programming Introduction to functional programming using the languages Haskell and SML. Topics include all data types, type inference, pattern-matching, recursion, polymorphism, higher-order functions, lazy vs eager evaluation, modules and monads. Lectures, 3 hours per week. Prerequisite(s): three and one-half COSC credits or permission of the instructor. Completion of this course will replace previous assigned grade and credit obtained in COSC 4V81. COSC 4P42 Formal Methods in Software Engineering Specification and correctness of software. Topics include algebraic specifications, semantics of programming languages, Hoare/dynamic logic, specification languages, program transformation. Lectures/lab/tutorial, 4 hours per week. Prerequisite(s): three and one-half COSC credits and MATH 1P67 or permission of the instructor. #COSC 4P61 Theory of Computation (also offered as MATH 4P61) Regular languages and finite state machines: deterministic and non-deterministic machines, Kleene's theorem, the pumping lemma, Myhill-Nerode Theorem and decidable questions. Context-free languages: generation by context-free grammars and acceptance by pushdown automata, pumping lemma, closure properties, decidability. Turing machines: recursively enumerable languages, universal Turing machines, halting problem and other undecidable questions. Lectures, 3 hours per week. Restriction: open to COSC (single or combined) majors. Prerequisite(s): MATH 1P67. Note: MATH students may take this course with permission of Department. COSC 4P75 Compiler Construction Topics include lexical, syntactic and semantic analysis of high-level languages; symbol table organization; code generation and optimization. Lectures, 3 hours per week. Prerequisite(s): COSC 2P03 (minimum 60 percent), 2P12 (minimum 60 percent) and 2P90 (minimum 60 percent) or permission of the instructor. COSC 4P76 Machine Learning Fundamental machine learning techniques with emphasis on using these techniques to design and implement small practical learning systems. Topics include learning as a search, inductive bias, concept learning, computational learning, explanation-based learning and reinforcement learning. Lectures, seminar, 3 hours per week. Prerequisite(s): COSC 3P71 (minimum 60 percent) or permission of the instructor. COSC 4P78 Robotics Computer control aspects of robots focusing on behaviour-based robot control architectures. Topics include robot components and subsystems, sensors and perception, object location and manipulation, mobile robot navigation, task planning, control architectures, adaptive and social behaviour. Lectures, 3 hours per week; lab, 1 hour per week. Prerequisite(s): COSC 3P71 (minimum 60 percent) or permission of the instructor. Note: completion of PHYS 1P91 and 1P92 is recommended before taking this course. COSC 4P79 Expert Systems Development of expert systems. Topics include recognition of problems solvable by an expert system; knowledge engineering; languages for expert systems development. Students will experiment with expert system development using an expert system shell and expert system building tool. Lectures, 3 hours per week. Prerequisite(s): COSC 2P93 (minimum 60 percent) and 3P71 (minimum 60 percent) or permission of the instructor. COSC 4P80 Artificial Neural Networks Practical problem solving using artificial neural networks. Supervised learning, single- and multilayer feed-forward networks and backpropagation and refinements; recurrent neural networks; Hopfield networks and Boltzmann machines. Unsupervised learning, competitive learning, Kohonen map and self-organizing feature maps. Lectures, seminar, 3 hours per week. Prerequisite(s): COSC 3P71 or permission of the instructor. Completion of this course will replace previous assigned grade and credit obtained in COSC 4V80. COSC 4P87 Foundations of Reasoning under Uncertainty Uncertain reasoning is based on both deductive and inductive methods. Exploration of formal foundations of both streams. Formal systems such as propositional modal logics and grammars, models of probability, Bayesian reasoning, fuzzy sets, rough sets, concept lattices and knowledge structures. Lectures, 3 hours per week. Prerequisite(s): COSC 3P71 (minimum 60 percent) or permission of the instructor. Completion of this course will replace previous assigned grade and credit obtained in COSC 4V97. COSC 4P98 Topics in Computer Media and Digital Audio Fractals, digital audio fundamentals, Fourier analysis, MIDI, computer composition, music and sound processing and user interfaces. Programming assignments may use C, Java, Supercollider and Csound. Lectures, 3 hours per week. Prerequisite(s): three and one-half COSC credits or permission of the instructor. COSC 4V80-4V99 Computing Topics II Selected topics in computer science. Lectures, seminar, 3 hours per week. Restriction: open to COSC (single or combined), BCB, CAST and CNET majors. COSC 4V82 2010-2011 - Evolutionary Computing Topics include genetic algorithms, genetic programming, particle swarms, comparison of natural and artificial evolution and applications in problem solving, engineering and design. A variety of applications will be developed. Lectures, 3 hours per week. Restriction: Open to COSC (single or combined), BCB, CAST and CNET majors.