2004-2005 Undergraduate Calendar

Computer Science  
Chair Jonathan Radue Professors Ivo Düntsch, Brian Ross Associate Professors Jerzy Barchanski, Sheridan Houghten, David Hughes, Thomas Jenkyns, David McCarthy, Ke Qiu, Jonathan Radue, Michael Winter, Vladimir Wojcik Assistant Professor Beatrice Ombuki Adjunct Professors Günther Gediga, Jack Miller Instructor David Bockus Student Support Co-ordinator Gordon Dunkley Course Co-ordinator / Mentor Baoling Bork Director, Co-operative Programs Cindy Dunne  
General Information Go to top of document
Administrative Assistant TBA 905-688-5550, extension 3513 Mackenzie Chown, J314 http://www.cosc.brocku.ca The Department of Computer Science offers three- and four-year programs of study leading to single or combined BSc (honours), single Computer Science Co-op BSc (honours), combined Mathematics/Computer Science Co-op BSc(honours), single BSc with a Major in Computer Science, combined BA (honours) and a single BSc (Pass) degree program. There are two concentrations available as part of an honours program: software engineering and intelligent systems. An Internship program is also available in the honours program. There are cross-disciplinary programs in Computing and Business, Computing and Solid-State Device Technology, the Information Technology stream in the Department of Communications, Popular Culture and Film and Computing and Network Communications. See relevant calendar entries for a listing of program requirements.  
Co-op Program Go to top of document
The Computer Science Co-op program combines academic and work terms over a four and one-half year period. Students spend one and one-half years in an academic setting studying the fundamentals of computer programming, algorithms, data-structures and object-oriented programming prior to their first work placement. Successful completion of courses in the core areas of Computer Science provides the necessary academic background for the work experience. In addition to the current fees for courses in academic study terms, Co-op students are assessed an annual administration fee (see the Schedule of Fees). Admission to the Computer Science Co-op program is on the basis of marks, a review of personal résumés and employer availability. An interview may be required. The normal requirement is a minimum 80 percent average on 6 OACs including two OAC Mathematics including calculus (with a minimum 75 percent grade on at least one mathematics) and one OAC English. As this is a limited enrolment program admission is not guaranteed by attainment of the minimum requirement. The Computer Science Co-op Admission Committee will facilitate admissions decisions. Prospective students with lower grades may be accepted. For additional information, prospective students should contact the Co-op Office. Students admitted to the Computer Science Co-op program must follow an approved Co-op pattern. Failure to adhere to the pattern may result in the removal from the Computer Science Co-op program. Eligibility to continue is based on the student's major average and non-major average. Students will be required to maintain a minimum 70 percent major average and a minimum 60 percent non-major average in order to continue in the Co-op program. If a student subsequently raises his/her major average to 70 percent, the student may be readmitted only if approved by the Computer Science Co-op Admissions Committee. The Computer Science Co-op program designation will be awarded to those students who have honours standing and have successfully completed a minimum of twelve months Co-op work experience.  
Internship Option Go to top of document
The Internship option combines academic and work experience in a five-year program. It is available in Computer Science honours (single or combined), Computing and Business and Computing and Solid-State Device Technology programs. Students complete the normal four-year honours program and an 8-16 month work placement after second or third year. In order to complete the Internship placement, students will be required to submit an acceptable placement report which will be graded by the Department. In addition to the usual fees for courses, a one-time administration fee will be levied during the work term (see the Schedule of Fees). Students enrolled in the program may apply for admission to the Internship Option during the Fall Term of year 1 or year 2 (depending on whether they plan a work term after year 2 or 3, respectively). As this is a limited enrolment program admission is not guaranteed by attainment of the minimum requirement. Admission will be based on the achievement (as of January of the application year) and maintenance of a minimum 70 percent major average. Prior to the placement, the student must have completed at least 10, but preferably 15 credits, including COSC 1P12, 2P03, 2P32 and 2P90 and one or more of COSC 2P13, 2P50, 2P89. The Computer Science Internship Admissions Committee will make admission decisions.  
Department Facilities Go to top of document
A campus-wide fibre optic network links all the University's academic computing facilities. The department's computers form an integral part of this resource. Most computers on campus can be accessed from microcomputers in any of the laboratories. In particular, the department maintains a laboratory of Silicon Graphics O2 UNIX work stations (J327) served by a 16 CPU Silicon Graphics Origin 2000 server. The department has three microcomputer laboratories: D205, J301 and J310 containing Pentium PCs. Students also have access to scanners, a CD-ROM recorder, video cards, digitizers, robot arms, a mobile robot, a robot vision system, transputers, computer graphics software (Bryce, Poser, SoftImage), and database software (ORACLE, Access). Wireless Access In order to accommodate students who own laptops, the Campus has wireless Internet connection available. Suitable PCMCIA cards need to be fitted to the laptop. Printer Usage Fees A non-refundable printer usage fee may be charged for all courses which use departmental or User Services laboratories. Additional printing beyond the initial quota will incur an additional fee. Service Courses COSC 1P93, 1P95 and 1P96 are intended for non-Computer Science majors who require an introduction to the use of computers. Students without previous computing experience are directed to COSC 1P95. COSC 1P93 is intended for students who require an introduction to programming. COSC 1P96 introduces the Internet and its resources and is open to all, but some previous computing experience is desirable. These courses may not be held for major credit by COSC (single or combined) majors, Computing and Business students, Computing and Solid-State Device Technology students and Computing and Network Communications. Major Credits In calculating the major average for a Computer Science major or co-major, all COSC courses (with the exception of the service courses COSC 1P93, 1P95 and 1P96), MATH 1P66, 1P67, 3F65 and 4P61 are included. Mathematics in Computer Science Mathematics is fundamental to the study of Computer Science and thus MATH credits are required in each year of the honours and 3 Year (Pass) degrees. In order to be more competitive in the workplace and if considering graduate studies, students are strongly encouraged to take as many MATH courses as possible. Computer Hardware Students interested in computer hardware are advised to elect PHYS 2P31, 2P32, and 3P92 within their Computer Science program. PHYS 1P21 or 1P91 (recommended) and one of PHYS 1P22, 1P23, 1P92 (recommended), 1P93 are required as a prerequisite for PHYS 2P31. Students may also wish to consider the Computing and Solid-state Device Technology program. (See separate calendar entry.)  
Program Notes Go to top of document
1.  Prior computer programming experience is not required for entry to the COSC programs. Students with considerable prior programming experience in a high-level language such as Pascal, Java, C or Ada may be granted exemption from COSC 1P02 at the discretion of the Chair.  
2.  In choosing electives, students should consider: MGMT 1P51, 1P52, WRIT 2P15 and, if considering graduate school, additional MATH courses. Students are advised to take special care in selecting elective credits (both COSC and general), especially in year three, to ensure access to subsequent courses required to complete the four-year programs. Students without high-school calculus should consider electing MATH 1P97 as a preliminary to later taking MATH 1P01 and 1P02.  
3.  MATH 1P01 and 1P02 for Chemistry; MATH 1P97 and 1P98 for Earth Sciences.  
4.  One elective credit if the required course in year 1 in the other discipline is a Social Science context credit or Humanities context credit for the combined degree with Social Science context credit or Humanities context credit, respectively.  
5.  Students may take MATH 1P01 and 1P02 in place of MATH 1P97 and 1P98 in year 1. MATH 1P98 would then be taken in year 2 in place of a one-half credit elective.  
6.  For students with a special interest in geographic information systems, the following courses are strongly recommended as GEOG and COSC elective credits: GEOG 3P04, 3P05, 3P07, COSC 3P98.  
7.  In all 20 credit degree programs, at least 12 credits must be numbered 2(alpha)00 or above, six of which must be numbered 2(alpha)90 or above and of these, three must be numbered 3(alpha)90 or above. In all 15 credit degree programs, at least seven credits must be numbered 2(alpha)00 or above, three of which must be numbered 2(alpha)90 or above.  
Honours Programs Go to top of document
Year 1
- COSC 1P02, 1P03 and 1P12 (see program note 1)
- MATH 1P66 and 1P67
- one Humanities context credit
- one Science context credit
- one-half elective credit (see program note 2)
Year 2
- COSC 2P03, 2P13, 2P32, 2P50 and 2P90
- MATH 1P01, 1P02 and 1P12
- one Social Science context credit
Year 3
- COSC 2P91 or 2P93
- COSC 3F00
- one of COSC 3P01, 3P71, 3P92
- one COSC credit (see program note 7)
- MATH 3F65
- one elective credit (see program note 2)
Year 4
- Three COSC credits (see program note 7)
- MATH 1P98 and 4P61
- one elective credit (see program notes 2 and 7)
 
Computer Science Co-op (honours only) Go to top of document
Students admitted to the Computer Science program must follow an approved program pattern. The most common pattern is listed below. For other approved patterns, consult the Co-op Office. Failure to adhere to an approved pattern may result in removal from the program. Year 1
- COSC 1P02, 1P03 and 1P12 (see program note 1)
- MATH 1P66 and 1P67
- one Humanities context credit
- one Science context credit
- one-half elective credit (see program note 2)
Year 2 Fall Term:
- COSC 2P03, 2P13 and 2P90
- MATH 1P01 and 1P12
- SCIE 0N90
Winter Term:
- COSC 0N01
Spring/Summer Sessions:
- COSC 2P32 and 2P50
- MATH 1P98
- one elective credit (see program note 2)
Year 3
- COSC 3F00
- COSC 2P91 or 2P93
- one of COSC 3P01, 3P71, 3P92
- one-half COSC credit (see program note 7)
- MATH 1P02 and 3F65
- one Social Science context credit
Spring/Summer Sessions:
- COSC 0N02
Year 4 Fall Term:
- COSC 0N03
Winter Term:
- one and one-half COSC credits (see program note 7)
- one elective credit (see program notes 2 and 7)
Year 5 Fall Term:
- two COSC credits (see program note 7)
- MATH 4P61
 
BSc with a Major Program Go to top of document
Year 1
- COSC 1P02, 1P03 and 1P12 (see program note 1)
- MATH 1P66 and 1P67
- one Humanities context credit
- one Science context credit
- one-half elective credit (see program note 2)
Year 2
- COSC 2P03, 2P13, 2P32, 2P50 and 2P90
- MATH 1P01 and 1P02 or MATH 1P97 and one-half elective credit
- MATH 1P12
- one Social Science context credit
Year 3
- COSC 3F00
- COSC 2P91 or 2P93
- one and one-half COSC credits (see program note 7)
- MATH 3F65
- one elective credit (see program notes 2 and 7)
Year 4
- Three COSC credits (see program note 7)
- MATH 1P98
- one of MATH 2P71, 2P72, 3P60, 4P61, 4P71, 4P72
- one elective credit (see program notes 2 and 7)
 
Pass Program Go to top of document
Year 1
- COSC 1P02, 1P03 and 1P12 (see program note 1)
- MATH 1P66 and 1P67
- one Humanities context credit
- one Science context credit
- one-half elective credit (see program note 2)
Year 2
- COSC 2P03, 2P13, 2P32, 2P50 and 2P90
- MATH 1P01 and 1P02 or MATH 1P97 and one-half elective credit
- MATH 1P12 or 1P98
- one Social Science context credit
Year 3
- COSC 2P91 or 2P93
- COSC 3F00
- one and one-half COSC credits (see program note 7)
- MATH 1P12 or 1P98 (not taken in year 2)
- one of MATH 2P71, 2P72, 3P60, 4P61, 4P71, 4P72, and one-half elective credit, or MATH 3F65
- one-half elective credit (see program notes 2 and 7)
 
Computer Science as a Second Degree Program Go to top of document
A student holding an honours or 3 Year (Pass) degree in another discipline may obtain a BSc (honours) in Computer Science, a BSc with a Major in Computer Science or a BSc 3 Year (Pass) degree. Students should refer to the University regulations concerning "Requirements for a Second or Subsequent Degree" section for further information. Previous or transfer credits may be used to satisfy some of the following requirements. Applicants must be able to demonstrate an acceptable level of fluency and accuracy in spoken and written English. Prior to admission, an applicant holding a degree from a non-Canadian university will be required to provide evidence of English language proficiency as demonstrated through one of the means outlined in the "Proof of Proficiency in English" section. The additional courses taken for a second degree in Computer Science must include a minimum of five (for a subsequent 20 credit degree) or four (for a second 3 Year [Pass] degree) Brock COSC credits. All elective credits should be at the 2(alpha)00 level or above. A second degree program is often taken as part-time study since the normal prerequisite structure requires a minimum of four (for 20 credit) or three (for 3 Year [Pass]) years of study. A student wishing to pursue full-time study can usually complete the program in three (for 20 credit) or two (for 3 Year [Pass]) years by following the pattern of study below. Permission to take COSC 3F00 concurrent with COSC 2P32 must be sought from the Chair to complete this pattern. Honours Year 1
- COSC 1P02, 1P03 and 1P12
- MATH 1P12, 1P66, 1P67 and 1P97
Spring/Summer Sessions:
- COSC 2P03
Year 2
- COSC 2P13, 2P32, 2P50, 2P90 and 3F00
- COSC 2P91 or 2P93
- one of COSC 3P01, 3P71, 3P92
Year 3
- Two and one-half COSC credits numbered 3(alpha)90 or above
- MATH 3F65 and 4P61
BSc with a Major Year 1
- COSC 1P02, 1P03 and 1P12
- MATH 1P12 or 1P98
- MATH 1P66, 1P67 and 1P97
Spring Term:
- COSC 2P03
Year 2
- COSC 2P13, 2P32, 2P50, 2P90 and 3F00
- one-half COSC credit
- one-half COSC credit numbered 2(alpha)90 level or above
Year 3
- Three COSC credits numbered 3(alpha)90 or above
 
Pass Program Go to top of document
Satisfactory completion of the first two years of the above BSc with a Major program entitles the student to apply for a Pass degree.  
Combined Major Programs Go to top of document
Students may take a combined major in Mathematics and a second discipline. For requirements in the other discipline, the student should consult the relevant department/centre. It should be noted that not all departments/centres provide a combined major option.  
BSc (honours) Computer Science and another Science Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- MATH 1P66 and 1P67
- one MATH credit (see program note 3)
- one credit in the co-major discipline
- one Social Science context credit
Year 2
- COSC 1P12 and 2P03
- one Science credit
- two credits in the co-major discipline
- one Humanities context credit
Year 3
- COSC 2P13, 2P32, 2P50 and 2P90
- MATH 1P12
- two credits in co-major discipline
- one-half elective credit
Year 4
- COSC 3F00
- two COSC credits numbered 3(alpha)90 or above
- two credits in the co-major discipline numbered 3(alpha)90 or above
 
BSc (honours) Computer Science and Mathematics Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- MATH 1P01, 1P02, 1P66 and 1P67
- one Science context credit
- one Social Science context credit
Year 2
- COSC 1P12, 2P03, 2P32 and 2P90
- MATH 1P12, 1P40, 2P03 and 2P81
- one Humanities context credit
Year 3
- COSC 2P13, 2P50 and 3F00
- MATH 2F40, 2P82 and 3F65
- one-half elective credit
Year 4
- Two COSC credits numbered 3(alpha)90 or above
- MATH 3P60, 4P61
- one MATH credit (see program note 7)
- one elective credit
 
BSc Computer Science and Mathematics Co-op (honours only) Go to top of document
Consult the Mathematics entry for a listing of program requirements.  
BSc (honours) Computer Science and Physics Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- PHYS 1P21 or 1P91 (recommended) and one of PHYS 1P22, 1P23, 1P92 (recommended), 1P93
- MATH 1P01 1P02, 1P66 and 1P67
- one Social Science context credit
Year 2
- COSC 1P12 and 2P03
- MATH 2F05
- PHYS 2P20, 2P31, 2P50 and 2P51
- one Humanities context credit
Year 3
- COSC 2P13, 2P32, 2P50 and 2P90
- MATH 1P12
- two credits from MATH 3P08, 4P09, PHYS 3P20, 3P35, 3P36, 3P41, 3P70
- one-half elective credit
Year 4
- COSC 3F00
- two COSC credits numbered 3(alpha)90 or above
- two credits from PHYS 4P51, 4P52, 4F90, 4P41, 4P70
 
BA (honours) or BSc (honours) Computer Science and a Humanities or a Social Science Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- MATH 1P66 and 1P67
- one credit in the co-major discipline
- one Science context credit
- one Social Science context credit (see program note 4)
Year 2
- COSC 1P12, 2P03, 2P32 and 2P90
- two credits in the co-major discipline
- one Humanities context credit (see program note 4)
Year 3
- COSC 2P13, 2P50 and 3F00
- MATH 1P97 and 1P98
- two credits in the co-major discipline
Year 4
- Two COSC credits numbered 3(alpha)90 or above
- two credits in the co-major discipline numbered 3(alpha)90 or above
- one elective credit
 
BA (honours) or BSc (honours) Computer Science and Economics Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- ECON 1P91 and 1P92
- MATH 1P66, 1P67, 1P97 and 1P98 (see program note 5)
- one Science context credit
Year 2
- COSC 1P12, 2P03, 2P32 and 2P90
- ECON 2P21, 2P22 and 2P90
- one-half ECON credit numbered 2(alpha)90 or above
- one Humanities context credit
Year 3
- COSC 2P13, 2P50 and 3F00
- ECON 3P21, 3P22, 3P90 and 3P91
- one elective credit
Year 4
- Two COSC credits numbered 3(alpha)90 or above
- ECON 4P13 and 4P14
- one ECON credit numbered 2(alpha)90 or above
- one elective credit
 
BA (honours) Computer Science and Geography Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- GEOG 1F90
- MATH 1P66 and 1P67
- one Humanities context credit
- one Science context credit
Year 2
- COSC 1P12, 2P03, 2P32 and 2P90
- GEOG 2P07 and 2P10
- one credit from GEOG 2P02, 2P03, 2P06
- MATH 1P97 and 1P98
Year 3
- COSC 2P13, 2P50 and 3F00
- GEOG 3P57
- one and one-half GEOG credits numbered 2(alpha)90 to 3(alpha)99 from group A or C (see Geography entry) (see program note 6)
- one elective credit
Year 4
- Two COSC credits numbered 3(alpha)90 or above (see program note 6)
- GEOG 4F99
- one GEOG credit numbered 3(alpha)90 or above from group A or C (see Geography entry)
- one elective credit
 
BSc (honours) Computer Science and Geography Go to top of document
Year 1
- COSC 1P02 and 1P03 (see program note 1)
- GEOG 1F91
- MATH 1P66 and 1P67
- one Humanities context credit
- one Social Science context credit
Year 2
- COSC 1P12, 2P03, 2P32 and 2P90
- GEOG 2P07 and 2P11
- one credit from GEOG 2P04, 2P05, 2P09
- MATH 1P97 and 1P98
Year 3
- COSC 2P13, 2P50 and 3F00
- GEOG 3P56
- one and one-half GEOG credits numbered 2(alpha)90 to 3(alpha)99 from group B or C (see Geography entry) (see program note 6)
- one elective credit
Year 4
- Two COSC credits numbered 3(alpha)90 or above (see program note 6)
- GEOG 4F99
- one GEOG credit numbered 3(alpha)90 or above from group B or C (see Geography entry)
- one elective credit
 
Concentration Programs Go to top of document
Concentration in Software Engineering Go to top of document
This concentration does not lead to a professional engineering degree. Students can earn a Concentration in Software Engineering by successfully completing the courses listed below as part of their academic work leading to an Honours BSc in Computer Science degree:
- COSC 2P03, 2P13, 2P90, 2P91, 3F00 and 3P01
- MATH 3F65 and 4P61
- one credit from COSC 3P92, 3P94, 4F90, 4P03, 4P13, 4P14, 4P75
Upon completion of the sequence, the designation "Concentration in Software Engineering" will be added to the student's transcript and diploma.
 
Concentration in Intelligent Systems Go to top of document
Students can earn a Concentration in Intelligent Systems by successfully completing the courses listed below as part of their academic work leading to an Honours BSc in Computer Science degree:
- COSC 2P03, 2P32, 2P90, 2P93, 3F00 and 3P71
- MATH 3F65 and 4P61
- one credit from COSC 4F90, 4P76, 4P77, 4P78, 4P79, 4V91, 4V97
Upon completion of the sequence, the designation "Concentration in Intelligent Systems" will be added to the student's transcript and diploma.
 
Brock/Colleges Articulation Agreement Go to top of document
Brock-Sheridan College Articulation Agreement Go to top of document
This agreement allows Brock to admit students from the Sheridan College Computer Science Technology Diploma Program who have a minimum GPA of 3.5 to the Computer Science BSc (Pass), BSc with a Major in Computer Science or BSc (Honours) programs. Students who have a grade of B in all transferred courses will be awarded 10 credits towards any of these three degrees, and can complete the requirements for the Pass degree within one year and the with a Major and Honours degrees within two years. The schedule of transferable courses is available from the Admissions Office.  
Brock - RCC College of Technology Articulation Agreement Go to top of document
This agreement allows Brock to admit students from RCC College of Technology who have a minimum GPA of 3.5 to the Computer Science BSc (Pass), BSc with a Major in Computer Science or BSc (Honours) programs. Students who have a grade of B in all transferred courses will be awarded five and one-half (5.5) credits towards any of these three degrees, and can complete the requirements for the Pass degree within two years and the with a Major and Honours degrees within three years. The schedule of transferable courses is available from the Admissions Office.  
Course Descriptions Go to top of document
Note that not all courses are offered in every session. Refer to the applicable term timetable for details. # Indicates a cross listed course * Indicates primary offering of a cross listed course  
Prerequisites and Restrictions Go to top of document
Students must check to ensure that prerequisites are met. Students may be deregistered, at the request of the instructor, from any course for which prerequisites and/or restrictions have not been met. 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, 3 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: COSC 1P02 or permission of the Chair. COSC 1P12 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; tutorial, 1 hour per week. Prerequisite: COSC 1P03. Note: COSC 1P03 may be taken concurrently. COSC 1P93 Introduction to Computer Programming Modern software techniques: problem solving and design of effective algorithms; structured program design methodology; subprogram library usage; documentation; correctness; floating-point arithmetic; error analysis. Programming assignments are implemented in a high-level language (such as C or FORTRAN). Lectures, 3 hours per week, lab, 2 hours per week; tutorial, 1 hour per week. Restriction: not open to COSC (single or combined), BCB or CAST majors. Prerequisite: OAC mathematics credit. COSC 1P95 Computers and Application Software Introduction to computers and contemporary application software; overview of applications used in industry, science, education, and research. Topics include computer architecture fundamentals; spreadsheets; macro programming; databases; presentation graphics; and integration between different applications. Practical experience using various application packages. Lectures, 3 hours per week, lab, 2 hours per week. Restriction: not open to COSC (single or combined), BCB or CAST majors. Note: some prior computer experience is preferred. Completion of this course will replace previous assigned grade in COSC 1P90 and 1P98. COSC 1P96 Internet Programming and Applications Advanced introduction to the Internet and its use. Topics include the history and composition of the Internet; fundamental communication concepts and applications; the development of web-based applications, including HTML and web programming using JavaScript. Lectures, 3 hours per week, lab, 2 hours per week. Restriction: not open to COSC (single or combined), BCB or CAST majors. Note: some prior computer experience is preferred. Completion of this course will replace previous assigned grade in COSC 1P99. 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 and CAST majors. Prerequisites: COSC 1P03 (minimum 60 percent); MATH 1P66 and 1P67. 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: COSC 1P03 (minimum 60 percent) and 1P12 (minimum 60 percent). COSC 2P32 File and Database Systems 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: COSC 2P03 (minimum 60 percent). COSC 2P50 The Computing Professional Professional issues in computing including historic and social perspectives; legal issues, licensing and copyright; social and ethical issues; professional conduct; technical writing and presentations. Lectures, 3 hours per week, seminar, 2 hours per week. Prerequisite: COSC 1P03 (minimum 60 percent). Note: this course involves seminars and considerable written work. A good command of written and spoken English is required. COSC 2P89 Advanced Internet and Intranet 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: COSC 1P03 (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 modeling. Lectures, 3 hours per week, lab, 2 hours per week. Prerequisite: COSC 1P03 (minimum 60 percent). Completion of this course will replace previous assigned grade in COSC 2P91 and 2P92 taken prior to 2001-2002. 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. Prerequisites: COSC 1P03 (minimum 60 percent), 1P12 (minimum 60 percent) and 2P03 (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. Prerequisites: COSC 2P03 (minimum 60 percent). 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. Prerequisites: COSC 2P03 (minimum 60 percent) and 2P32 (minimum 60 percent). Note: this course requires considerable written work and presentations. A good command of written and spoken English is required. Completion of COSC 2P50 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. Prerequisites: COSC 1P12 (minimum 60 percent), 2P03 (minimum 60 percent) and MATH 1P67; MATH 1P01 or 1P97. COSC 3P40 Advanced Object-Oriented Programming Advanced programming techniques such as graphical user interfaces, networking, parallelism, database connectivity, multi-tiered systems, client-server and e-commerce. Introduction to advanced Java APIs such as swing, net, threads, JDBC, CORBA and JSP. Lectures, 3 hours per week, lab, 2 hours per week. Prerequisites: COSC 2P03 (minimum 60 percent) and 2P90 (minimum 60 percent). 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: COSC 2P03 (minimum 60 percent). 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, micropro-grammed control, parallel organization. Lectures, 3 hours per week. Prerequisites: COSC 1P12 (minimum 60 percent) and 2P13 (minimum 60 percent). 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: COSC 2P13 (minimum 60 percent). COSC 3P94 Introduction to Human Computer Interaction 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: COSC 2P50 (minimum 60 percent). Completion of this course will replace previous assigned grade in COSC 3P04. 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. Prerequisites: COSC 1P12 (minimum 60 percent) and 2P13 (minimum 60 percent). Note: completion of PHYS 1P91, 1P92 (1F90) and COSC 2P91 is recommended before taking this course. Completion of this course will replace previous assigned grade in COSC 3V95. 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. Prerequisites: COSC 2P03 (minimum 60 percent) and MATH 1P12. 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 and CAST majors and permission of project co-ordinator. Prerequisite: 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 and CAST 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 and CAST majors with a minimum 75 percent major average and permission of project co-ordinator. Prerequisite: 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: COSC 2P03 (minimum 60 percent) and MATH 3F65. Note: MATH 3F65 may be taken concurrently. Completion of this course will replace previous assigned grade in COSC 4V92. 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. Prerequisites: COSC 1P12 (minimum 60 percent), 2P13 (minimum 60 percent) and 2P91 (minimum 60 percent). COSC 4P14 Computer Networks Advanced topics in computer networking, including computer network security, wireless and high-speed networking, computer network managementandperformance evaluation. Lectures, 3 hours per week. Prerequisites: COSC 2P13 (minimum 60 percent) and 3P01 (minimum 60 percent). 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. Prerequisites: COSC 1P12 (minimum 60 percent), 2P03 (minimum 60 percent) and 2P90 (minimum 60 percent). 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: COSC 3P71 (minimum 60 percent). Completion of this course will replace previous assigned grade in COSC 4V91. COSC 4P77 Evolutionary Computation Topics include genetic algorithms, genetic programming, evolution strategies, comparison of natural and artificial evolution and applications in problem solving, engineering and design. A variety of applications will be developed. Lectures, seminar, 3 hours per week. Prerequisite: COSC 3P71 (minimum 60 percent). Completion of this course will replace previous assigned grade in COSC 4V93. COSC 4P78 Robotics Computer control aspects of robots focussing 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. Prerequisites: COSC 1P12 (minimum 60 percent), 2P90 (minimum 60 percent), 3P71 (minimum 60 percent) and MATH 1P12. 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. Prerequisites: COSC 2P93 (minimum 60 percent) and 3P71 (minimum 60 percent). 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 and CAST majors. COSC 4V80 2004-2005: 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: COSC 3P71. COSC 4V81 2004-2005: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. COSC 4V94 2004-2005: Discrete Event Simulation Classification of modeling and simulation problems: discrete, continuous and Monte Carlo. Concepts of causality, understanding and modeling. 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. Prerequisites: COSC 2P03 (minimum 60 percent) and MATH 3F65 (minimum 60 percent). Note: completion of MATH 1P98 is recommended before taking this course. COSC 4V97 2004-2005: Foundations of Reasoning under Uncertainty Uncertain reasoning is based on both deductive and inductive methods. In this course we shall explore 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. COSC 4V98 2004-2005: Topics in Computer Graphics and Digital Audio Contemporary topics in computer graphics and audio, including ray tracing, fractals, spline and curve fitting, digital audio fundamentals, MIDI, computer composition, music and sound processing. Programming assignments use C, OpenGL, and Csound. Lectures, 3 hours per week. Prerequisite: COSC 3P98 (minimum 60 percent). COSC 4V99 2004-2005: Computability and Complexity What can and cannot be computed, how quickly, with how much memory and on which type of computational model. Language families, their properties and machines, the Chomsky Hierarchy; the Church-Turing Thesis, the Halting problem, time and space complexity, complexity classes, polynomial reduction. Prerequisite: MATH 4P61 or permission of the instructor.  
CO-OP COURSES Go to top of document
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.  
INTERNSHIP COURSE Go to top of document
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.  
Last updated: February 15, 2005 @ 01:41PM