summary - cs.ryerson.caquigley/committees/prc/report/report…  · web viewthe csci program was...

110
PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES --- Version 5.0 --- October 24, 2002 By Program Review Committee School of Computer Science Ryerson University Page 1 of 110

Upload: others

Post on 13-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAMCURRICULUM CHANGES

--- Version 5.0 --- October 24, 2002

By

Program Review Committee

School of Computer Science

Ryerson University

Page 1 of 77

Page 2: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Members of the Program Review Committee

ChairSophie Quigley

SCS Faculty RepresentativesAlex FerwornJosh PanarDenise WoitVic KushnirMarcus SantosAlireza SadeghianDavid GrimshawEric HarleySophie Quigley

SCS Student RepresentativesDebra Clark Derek MockGreg Toomey

Page 2 of 77

Page 3: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

TABLE OF CONTENTS1 SUMMARY...........................................................................................................................................................5

2 BACKGROUND..................................................................................................................................................5

2.1 HISTORY OF THE PROGRAM...........................................................................................................................52.2 PERIODIC PROGRAM REVIEW........................................................................................................................62.3 CSCI/CSCC PROGRAM REVIEW COMMITTEE..............................................................................................72.4 ACM/IEEE RECOMMENDATIONS..................................................................................................................7

3 CURRENT CSCI PROGRAM...........................................................................................................................8

3.1 SUMMARY.....................................................................................................................................................8First Semester. (Fall)............................................................................................................................................8Second Semester. (Winter).....................................................................................................................................8Third Semester. (Fall)............................................................................................................................................8Fourth Semester. (Winter)......................................................................................................................................8Fifth Semester. (Fall for most students, Winter for some CSCC students)............................................................9Sixth Semester. (Winter for most students, Fall for some CSCC students)............................................................9Seventh Semester. (Fall).........................................................................................................................................9Eighth Semester. (Winter)......................................................................................................................................9

3.2 OPTIONS......................................................................................................................................................10Mathematics Group..............................................................................................................................................10Professionally Related Group..............................................................................................................................10Core Computer Science Group............................................................................................................................10Computer Science Group.....................................................................................................................................11

4 RATIONALE FOR CSCI PROGRAM MODIFICATIONS.........................................................................12

4.1 ISSUES IDENTIFIED IN CC2001 REPORT.....................................................................................................124.1.1 Partitioning of computing into Computer Engineering, Software Engineering, Computer Science, and Information Technology.......................................................................................................................................124.1.2 Core Curriculum....................................................................................................................................124.1.3 Shifts in Emphases in Computer Science...............................................................................................154.1.4 First Year Instruction.............................................................................................................................17

4.2 ISSUES IDENTIFIED BY PERIODIC PROGRAM REVIEW.................................................................................184.2.1 Advisory Committee...............................................................................................................................184.2.2 Student Survey........................................................................................................................................194.2.3 Peer Review - First reviewer.................................................................................................................204.2.4 Peer Review - Second Reviewer.............................................................................................................204.2.5 Ryerson Academic Council and Standards Committees........................................................................21

4.3 PRC’S RESPONSE TO PROGRAM REVIEW ISSUES........................................................................................224.3.1 Mathematics curriculum in the CSCI program.....................................................................................224.3.2 Retention Problems in First and Second Years.....................................................................................254.3.3 Communication Skills............................................................................................................................284.3.4 Lack of Guidance for 3rd and 4th Year Options Selection.......................................................................294.3.5 Preparation for Graduate Studies.........................................................................................................304.3.6 Homogeneity of Graduates....................................................................................................................30

5 PROPOSED CHANGES TO PROGRAM......................................................................................................31

5.1 PROGRAM OVERVIEW.................................................................................................................................315.2 NEW PREREQUISITE STRUCTURE FOR THE COMPULSORY COMPONENT.....................................................325.3 OPTIONS......................................................................................................................................................33

5.3.1 Mathematics Group...............................................................................................................................335.3.2 Professionally Related Group................................................................................................................335.3.3 Core Computer Science Group..............................................................................................................335.3.4 Computer Science Group.......................................................................................................................34

Page 3 of 77

Page 4: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

5.4 CONCENTRATIONS.......................................................................................................................................355.5 LIBERAL STUDIES........................................................................................................................................355.6 CO-OPERATIVE PROGRAM...........................................................................................................................355.7 PART-TIME DEGREE PROGRAM..................................................................................................................365.8 CHANGES TO COURSES...............................................................................................................................36

5.8.1 New Courses..........................................................................................................................................365.8.2 Modified Courses...................................................................................................................................375.8.3 Renamed Courses..................................................................................................................................375.8.4 Courses whose compulsory status is changed.......................................................................................385.8.5 Moved courses.......................................................................................................................................385.8.6 Deleted Courses.....................................................................................................................................38

6 COSTS.................................................................................................................................................................39

6.1 TEACHING...................................................................................................................................................396.2 OTHER FACILITIES......................................................................................................................................40

6.2.1 Classrooms............................................................................................................................................406.2.2 Equipment..............................................................................................................................................40

7 IMPLEMENTATION DETAILS.....................................................................................................................40

8 CONCURRENT AND FUTURE CHANGES TO PROGRAM....................................................................40

8.1 NEW PROFESSIONALLY-RELATED ELECTIVES............................................................................................408.2 REPLACEMENT OF CPS211/EES208...........................................................................................................41

APPENDIX A - CC2001 CORE TOPICS COVERAGE.........................................................................................42

A.1 SUMMARY OF CC2001 CORE TOPICS.........................................................................................................42A.2 CORE COVERAGE IN CURRENT PROGRAM..................................................................................................44

A.2.1 Survey Methodology..............................................................................................................................44A.2.2 Current Core Coverage in CSCI by Unit...............................................................................................44

A.3 CORE COVERAGE IN PROPOSED PROGRAM.................................................................................................47

APPENDIX B – COURSE OUTLINES.....................................................................................................................49

CPS109 --- COMPUTER SCIENCE I............................................................................................................................49CPS 1XX – SOCIAL AND PROFESSIONAL ISSUES IN COMPUTER SCIENCE................................................................51CPS209 COMPUTER SCIENCE II..............................................................................................................................54CPS 3XX (FORMERLY CPS611) – OBJECT-ORIENTED PROGRAMMING, ANALYSIS & DESIGN................................56CPS 405 – SOFTWARE ENGINEERING........................................................................................................................60CPS 4XX – NETWORK-CENTRIC COMPUTING..........................................................................................................63CPS 6XX – THEORY OF PARSING.............................................................................................................................65MTH 110 – DISCRETE MATHEMATICS I...................................................................................................................67MTH 210 – DISCRETE MATHEMATICS II..................................................................................................................68MTH 716 – DESIGN AND CODES..............................................................................................................................70MTH 816 – CRYPTOGRAPHY....................................................................................................................................71

APPENDIX C – ADVISORY COMMITTEE FEEDBACK...................................................................................73

C.1 MINUTES OF THE ADVISORY COMMITTEE MEETING..................................................................................73C.2 CORRESPONDENCE AND ENDORSEMENTS...................................................................................................74

From Grant Davis:...............................................................................................................................................74From Mikk Anyas-Weiss......................................................................................................................................75From Anne Lawrence...........................................................................................................................................77Endorsement from David Jones, Tony Ponzo, and Paul Salvini..........................................................................77

Page 4 of 77

Page 5: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

1 SUMMARY

This document is a proposal for a revision of the CSCI/CSCC programs that the Department of Mathematics, Physics, and Computer Science would like to implement starting in the fall 2003 academic term. It is the result of two years of work by the Program Review subcommittee of the School of Computer Science Council and has been developed in response to changes in the field of computer science as reflected in the new report from the ACM/IEEE-CS Joint Task Force on Computing Curricula 2001, as well as suggestions made in the 2001 periodic program review of the CSCI/CSCC programs.

These proposed revisions have been approved by the School of Computer Science Council on September 12th 2002 and the MPCS Departmental Council on September 19th 2002. They have also been reviewed by the CSCI/CSCC Advisory Committee and endorsed by them in September 2002 (See Appendix C). All three bodies recommended the early adoption of these proposed changes, in fall 2003 if possible, to meet the special educational requirements of the OSS tier of the “double-cohort”.

2 BACKGROUND

2.1 History of the programIn 1852, Egerton Ryerson officially opened the province's first Normal school for teachers on the site of what would become Ryerson. His intent was to create a school that would provide students with a solid education.

In 1948 Ryerson Institute of Technology emerged with Howard Kerr as its first principal.It had an enrolment of 250 students paying annual fees of $25 each. This first Ryerson offered courses in trades such as watch making, barbering and auto mechanics. Its intent was to draw students from the large population of returning servicemen.

Ryerson’s main campus was opened in 1964 and renamed Ryerson Polytechnical Institute and acquired a board of governors. Tuition was set at $125 per semester with a $5 lab fee. The Institute suggested that students set aside $1941 to cover all costs of living in Toronto for one academic year. The department of Mathematics and Physics was a service organization whose faculty was not even mentioned in the calendar.

However, by 1968 the department was well on its way to planning a diploma program in Computer Science. By 1970 the department offered a three year program in Computer Applications Technology (CPTR). At this time the institute used a state-of-the-art IBM360 mainframe as its only computing resource and employed three people whose only job was to "key punch" cards to program it.

Within a decade, the CPTR program had become an integral part of the new Department of Mathematics, Physics and Computer Science (MPCS). In 1980 a new program was introduced, The Applied Computer Science Program (ACPS), administered by the School of Computer

Page 5 of 77

Page 6: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

Science within MPCS. ACPS was a four year program whose successful completion resulted in a Bachelor of Technology degree.

In 1989, the ACPS program was modified to introduce numerous Fall-Winter option pairs in third and fourth years to replace compulsory courses. Then in the early 1990’s a significant change in emphasis in the mathematics component of the program occurred when the balance between calculus and discrete mathematics was changed in favour of the latter.

In 1992, a sub-committee of the Computer Science Program Committee, Committee 13, was set up to survey the whole ACPS program with a view to a thorough updating in response to changes in the discipline of Computer Science as expressed in the Computing Curricula 1991 (CC1991): Report of the ACM/IEEE-CS Joint Curriculum Task Force (see 2.4)

In spring 1993, Ryerson acquired university status and became Ryerson Polytechnic University. The need for a thorough revision then became even more urgent as the ACPS program needed to be brought in line with other Computer Science programs in the Ontario university sector, in particular with respect to workload which was much heavier at Ryerson than in comparable programs at other universities.

In winter 1995, Academic Council approved changes to the ACPS program proposed by Committee 13 and the MPCS Department. These reduced the graduation requirements from 49 credits to 40, resulting in an average semester workload of 5 courses instead of 6, changed the compulsory curriculum to follow suggestions in CC1991, decoupled 3rd and 4th year option pairs, made the 4th year project optional and added a Minor in Mathematics. It was also structured to facilitate the introduction of a co-operative option.

Starting in fall 1995, the ACPS program was phased out over several years and replaced by the CSCI (for “Computer Science” pronounced Sea Sigh) program. In 1995 a cooperative education option (CSCC) was also added to CSCI, and in the summer of 1996 this co-op option was implemented on a pilot basis with the last two promotions of the ACPS program. These provided students with the opportunity to supplement their formal education with work experience and extended the degree requirements over five years.

Since 1997, students who have successfully completed an Applied Computer Science program have been granted a Bachelor of Science degree from Ryerson Polytechnic University (renamed “Ryerson University” in 2002).

2.2 Periodic Program ReviewIn 2000 the School of Computer Science initiated the first Periodic Program Review of the Applied Computer Science Program culminating in a report in April 2001. This process included reviews by the School of Computer Science Advisory Committee, peer reviews from two external faculty members, and a final review by the Standards subcommittee of Ryerson’s Academic Council. These reviews produced several observations and recommendations. We have addressed the issues related to the CSCI undergraduate curriculum in this report.

Page 6 of 77

Page 7: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

2.3 CSCI/CSCC Program Review CommitteeAt the April 16th, 2000 SCSC (School of Computer Science Council) meeting, SCSC also created the Program Review Committee (PRC), an ad-hoc subcommittee of SCSC. Its mandate is to review the CSCI/CSCC programs and prepare a proposal for revised CSCI/CSCC programs to present to SCSC during the summer of 2002. This report is the proposal presented.

Note: none of the recommendations brought up during the periodic program review concerned the co-op stream (CSCC) of the Computer Science program, and none of the changes proposed in this document will impact this program in any negative way. Some of the proposed curriculum changes will even have a positive effect on the CSCC program, because some material with immediate practical applications is moved earlier in the program. Therefore, to simplify matters, the rest of this document will refer simply to the CSCI program rather than the CSCI/CSCC programs. However it is intended that all the proposed changes to the CSCI program will be applied to the CSCC program.

2.4 ACM/IEEE recommendationsIn the spring of 1988, the ACM (Association for Computing Machinery) and the Computer Society of the IEEE (Institute of Electrical and Electronic Engineers Inc., the largest professional engineering association in the world), who had been developing computing curricula separately decided to combine their efforts and formed the ACM/IEEE Joint Curriculum Task Force. The charter of this task force was to present recommendations for the design and implementation of undergraduate (baccalaureate) curricula in the discipline of computing.

As mentioned above, the present CSCI program is loosely based on their first report, Computing Curricula 1991 (CC1991), available at http://www.acm.org/education/curr91/.

In the decade since then a number of significant changes have taken place in the field of Computer Science and the ACM/IEEE Joint Task force decided to update this document. This resulted in the Computing Curricula 2001 – Computer Science (CC2001) report. The final version of this report was published on December 15th, 2001 and is available at http://www.acm.org/sigcse/cc2001/

The PRC used the final CC2001 report and its preceding drafts to prepare this proposal.

Page 7 of 77

Page 8: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

3 CURRENT CSCI PROGRAM

3.1 Summary

First Semester. (Fall)Course Lec Lab DescriptionCPS 109 3 1 Computer Science IPCS110 4 2 PhysicsMTH110 3 1 Discrete MathematicsMTH108 3 1 Linear AlgebraLIB 1 3 0 A Lower Level Liberal Studies elective from Group A1

Total Hr: 16 5

Second Semester. (Winter)Course Lec Lab DescriptionCPS209 3 1 Computer Science IICPS211* 3 Introduction to Computer SystemsCPS393 3 1 Introduction to C & UNIXEES208* 1 2 Digital CircuitsMTH207 3 1 Calculus & Computational Methods ILIB 2 3 0 A Lower Level Liberal Studies Elective from Group ATotal Hr: 16 5* These two courses each have a weight of .50

Third Semester. (Fall)Course Lec Lab DescriptionCPS305 3 1 Data StructuresCPS310 3 2 Computer Organization and Assembly Language Programming CPS611 3 0 Object Oriented Programming and DesignMTH310 4 0 Calculus & Computational Methods IICMN300 0 3 Communication in the Computer IndustryTotal Hr: 13 6

Fourth Semester. (Winter)Course Lec Lab DescriptionCPS405 2 2 Advanced Data Structures and Software EngineeringCPS590 2 2 Introduction to Operating SystemsCPS721 4 0 Artificial Intelligence MTH405 3 1 Formal LanguagesBUS400 3 1 Introduction to BusinessTotal Hr: 14 6

1 Table A on page 442 of the Ryerson Undergraduate Program Calendar 2001/2002

Page 8 of 77

Page 9: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

Fifth Semester. (Fall for most students, Winter for some CSCC students)Course Lec Lab DescriptionMTH304 3 0 Probability and Statistics IOPT 1 3 1 A Technical Elective2

OPT 2 3 0 A Technical ElectiveOPT 3 3 1 A Technical ElectiveLIB 3 3 0 An Upper Level Liberal Studies Elective from Group B3

Total Hr: 15 2

Sixth Semester. (Winter for most students, Fall for some CSCC students)Course Lec Lab DescriptionCPS600 3 1 Assembly Language ProgrammingOPT 4 3 0 A Technical ElectiveOPT 5 3 1 A Technical ElectiveOPT 6 3 0 A Technical ElectiveLIB 4 3 0 An Upper Level Liberal Studies Elective from Group BTotal Hr: 15 2

Seventh Semester. (Fall)Course Lec Lab DescriptionOPT 7 3 1 A Technical ElectiveOPT 8 3 1 A Technical ElectiveOPT 9 3 0 A Technical ElectiveOPT 10 3 0 A Technical ElectiveLIB 5 3 0 An Upper Level Liberal Studies Elective from Group BTotal Hr: 15 2

Eighth Semester. (Winter)Course Lec Lab DescriptionOPT 11 3 1 A Technical ElectiveOPT 12 3 1 A Technical ElectiveOPT 13 3 0 A Technical ElectiveOPT 14 3 0 A Technical ElectiveLIB 6 3 0 An Upper Level Liberal Studies Elective from Group BTotal Hr: 15 2

Note: The hours listed for the technical elective courses are average. About half of computer Science and Mathematics options are 3 hours, and half are 4 hours. So each course has been averaged to 3.5 hours. Since the 3 hour courses are usually 3(lecture) + 0(lab) or 2+1, and the 4 hour courses are 4+0, 3+1, or 2+2, this has been averaged out by showing half of the OPT

2 A course from Table 1, pp. 143-144 of the Ryerson Undergraduate Program Calendar, 2001/2002. These courses are also listed in Section 3.2.3 Table B, p. 445 of the Ryerson Undergraduate Program Calendar, 2001/2002.

Page 9 of 77

Page 10: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

courses as 3+1 and half as 3+0. Individual students may have heavier or lighter workloads depending on their course selections.

3.2 OptionsA total of 14 option courses (technical electives) are required between 5th and 8th semester. Available option courses and their restrictions are described below.

Mathematics GroupStudent must take a minimum of 1 and a maximum of 2 courses from this group.

Semester Course Number

Course Title Lecture Lab

Fall MTH401 Differential Equations 3 0MTH501 Numerical Analysis I 4 0MTH503 Operations Research I 3 0MTH505 Calculus III 3 2MTH540 Geometry 3 1MTH607 Graph Theory 3 1MTH714 Logic and Computability 3 1

Winter MTH404 Probability and Statistics II 3 0MTH601 Numerical Analysis II 4 0MTH603 Operations Research II 3 1MTH609 Number Theory 3 1MTH640 Complex Analysis 3 1MTH710 Fourier Analysis 3 0MTH712 Differential Equations II 3 0MTH814 Computational Complexity 3 1

Professionally Related GroupStudent must take a minimum of 1 and a maximum of 2 courses from this group.

Semester Course Number

Course Title Lecture Lab

Fall PCS510 Fundamentals of Astrophysics 3 0Winter PCS610 Solid State Applications in Computing 3 0

ENT500 New Venture Startup 3 0Any With departmental permission, any course outside of the department.

Core Computer Science GroupA minimum of three courses must be taken from the Computer Science core group

Semester Course Number

Course Title Lecture Lab

Fall CPS506 Comparative Programming Languages 3 0CPS510 Database Systems I 3 1CPS511 Computer Graphics 2 1

Page 10 of 77

Page 11: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

CPS710 Translators I 2 1Winter CPS613 Human-Computer Interaction and GUI

Development2 2

CPS706 Introduction to Data Communications 3 0CPS707 Software Verification & Validation 4 0CPS801 Operating Systems 2 2CPS811 Distributed Systems & Networks 3 0CPS815 Analysis of Algorithms 3 1

Computer Science GroupThe remaining OPT courses may be selected from this group or the core Computer Science group.

Semester

Course Number

Course Title Lecture Lab

Year CPS040 Thesis ** 0 3Both CPS530 Component-Based Prog. for the Web 3 0

CPS607 Autonomous Mobile Robotics 3 0Fall CPS509 Control Systems 3 0

CPS520 Comp. Assisted Instruction and Learning 3 1CPS606 Advanced Computer Organization 3 0CPS720 Artificial Intelligence Programming 3 0CPS731 Software Engineering I 2 2CPS752 Parallel Computer Systems 3 0

Winter CPS610 Database Systems II 3 0CPS621 Introduction to Multimedia Systems 2 1CPS630 Web Applications 1 2CPS711 Introduction to CAD/CAM 1 2CPS750 Telecomm. Networks: Perform.& Algor. 3 0CPS809 Systems Simulation II 3 0CPS812 Translators II 2 1CPS820 Knowledge-Based Systems 3 0CPS831 Software Engineering II 2 2CPS840 Selected Topics in Computer Science 3 0CPS841 Advanced Topics in Computer Science 3 0

** Only students whose G.P.A. is 2.5 or greater or who have permission from the School of Computer Science may elect to do a thesis in their final year. CPS040 is a 3 hour a week full year course. The thesis credit is equivalent to two OPT courses

Page 11 of 77

Page 12: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

4 RATIONALE FOR CSCI PROGRAM MODIFICATIONSIn our analysis of the reports mentioned in Section 2, we have identified some issues that impact the CSCI program. They are summarized in this section along with the PRC’s proposed response to these issues. To the issues “formally” identified by the ACM/IEEE and Periodic Program Review reports, we have added some others garnered through informal discussions with students and faculty members of the department and computer science community.

The PRC’s recommendations in this section will often be described as “decisions”. This refers to decisions made by the PRC to recommend particular courses of action. As explained in 2.3, the PRC’s mandate is to recommend changes to the current program, not to implement them. However for simplicity, we will use the future tense to describe our proposed changes instead of the conditional. This is not intended to imply that these changes are a “fait accompli”, only that it is easier to discuss them as such.

4.1 Issues Identified In CC2001 Report

4.1.1 Partitioning of computing into Computer Engineering, Software Engineering, Computer Science, and Information Technology

The CC2001 Report notes the immense expansion in the field of Computing over the past decade and accommodates this by identifying four major branches of the field which have emerged. Two of these major branches, Computer Science and Software Engineering, have been and continue to be the backbone of the Applied Computer Science B.Sc. program offered by the School of Computer Science within the Department of Mathematics, Physics, and Computer Science at Ryerson.

The two other major branches identified in the Report, which are quite independent of the first two, are covered by other programs at Ryerson: Computer Engineering by the Department of Electrical and Computer Engineering, and Information Systems by the School of Information Technology Management.

The natural orthogonality of these latter two branches from those in the CSCI program, as identified in the Report, is fully consistent with the approach taken at Ryerson over the past decade, and is maintained in its entirety by our proposed modifications.

4.1.2 Core Curriculum

The CC2001 report introduces the concept of “core curriculum”. The explanation of “core curriculum” underneath is taken nearly verbatim from section 5.1.1 of the report: We have edited it for clarity in the context of our own report.

Page 12 of 77

Page 13: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

“One of the goals of the CC2001 Task Force in proposing curricular recommendations was to keep the required component of the body of knowledge as small as possible. To implement this principle, it has defined a minimal core consisting of those units for which there is a broad consensus that the corresponding material is essential to anyone obtaining an undergraduate degree in this field. Units that are taught as part of an undergraduate program but which fall outside the core are considered to be elective.

The following points are emphasized:

The core refers to those units required of all students in all computer science degree programs. Several topics that are important in the education of many students are not included in the core. This lack of inclusion in the core does not imply a negative judgment about the value, importance, or relevance of those topics. Rather, it simply means that there was not a broad consensus that the topic should be required of every student in every computer science degree program.

The core is not a complete curriculum. Because the core is defined as minimal, it does not, by itself, constitute a complete undergraduate curriculum.

The core must be supplemented by additional material. Every undergraduate program must include additional elective topics from the body of knowledge. The CC2001 report does not define what those topics must be, as this additional work can and should vary based on institutional mission, the areas of concentration offered by a given institution, and individual student choice.

Core units are not necessarily those taken in a set of introductory courses early in the undergraduate curriculum. Although many of the units defined as core are indeed introductory, there are also some core units that clearly must be covered only after students have developed significant background in the field. For example, the task force believes that all students must develop a significant application as some point during their undergraduate program. The material that is essential to successful management of projects at this scale is therefore part of the core, since it is required of all students. At the same time, the project course experience is very likely to come toward the end of a student's undergraduate program. Similarly, introductory courses may include elective units alongside the coverage of core material. The designation core simply means required and says nothing about the level of the course in which it appears.”

Along with a description of the core topics, the CC2001 report recommended minimum hours of instructions for these core topics. These are detailed in Appendix A.

Page 13 of 77

Page 14: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

PRC’s response:

The PRC was in near-complete agreement with the CC2001’s selection of core topics and decided to follow their recommendations as much as possible.

The PRC conducted a survey of all the CS and math courses of the CSCI program to determine whether, where and how well the recommended core material is currently covered in the CSCI program. We also met with the course coordinators of the compulsory courses in the CSCI program to discuss the specifics of their particular courses. The results of this process are in section 3.3. Based on these results, we propose adjustments the program to ensure that the majority of CSCI graduates would have covered most of the core material. This proved more difficult than anticipated.

As can be seen in Appendix A, the CC2001 recommends both core topics and hours that should be dedicated to them. The total number of such core hours is 280. A typical compulsory CSCI course has three hours of lectures and 1 hour of lab for 13 weeks. As a result, most courses dedicate 39 to 52 hours to new material, depending on whether the labs are used to introduce new material or to further elaborate on lecture material. Looking strictly at the hours involved, this means that CC2001 recommends 5 to 7 compulsory courses in computer science and discrete mathematics. Since the CSCI program currently has 13 such compulsory courses, 12 of which are in the first two years of the program, it would seem at first possible to reorganize these courses to make sure that the core material ends up being covered. Unfortunately this simplistic analysis does not work in practice because

Many of the core topics are not related to each other (they come from 13 separate areas of computer science) and cannot be covered coherently together in the same courses.

Much (but not all) of the core material is at an introductory level. Grouping this core material into courses covering only core material would result in many superficial courses at an introductory level. The PRC was not opposed to introducing a few superficial courses in the CSCI program in an effort to solve big gaps in its coverage of the core material and lighten students’ loads (e.g., the new courses CPS1XX (Social and Professional Issues in Computer Science) and CPS4XX (Network-Centric Computing)), but we felt that these should not be the mainstay of our program which currently produces extremely competent computer scientists successfully by offering them a challenging program of studies.

The CSCI program has many well-designed optional courses in which core material is covered along with elective material. Creating new courses to cover this core material would damage these courses.

As a result, the PRC took various approaches to ensure that the core material would be covered in the new program:

When the number of core hours in an area fit very well into one or more compulsory courses (e.g. software engineering with 31 core hours), we discussed the course description with the course coordinator and instructors to confirm that all the core material would be covered. When necessary, we redesigned the course outline with them so as to cover all core.

Page 14 of 77

Page 15: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

We created a few new courses to cover large gaps in core material: CPS1XX (Social and Professional Issues in Computer Science) for social and professional issues (called “SP” in CC2001) and CPS4XX (Network-Centric Computing) for net-centric computing (NC).

We made one optional course compulsory. This was a difficult decision. In the current structure of the CSCI program, the first two years include only compulsory courses, the third year has two compulsory courses and the rest optional, and the fourth year has only optional courses. This structure is considered a feature of our program by students, faculty, and external reviewers, because the final two years give the students time to explore in more depth the computer science areas in which they are interested, and it gives faculty the opportunity to share their interests with students. A strict reading of the CC2001 core recommendations would have resulted in a mostly compulsory third year, which would have seriously damaged this structure. Therefore, we considered making only some of the option courses which covered core material compulsory. When selecting which courses to make compulsory, we favoured courses with many core hours and courses which are prerequisites for other courses. The latter factor helps students schedule their program of studies. As a result, we chose CPS510 (Database Systems I) to become compulsory, since it includes 10 core hours of information management (IM) and serves as a prerequisite for another course. CPS721 (Artificial Intelligence) also remained compulsory for similar reasons: it includes 10 core hours of intelligent systems (IS) and is a prerequisite to two other courses. On the other hand, CPS613 (Human-Computer Interaction) and CPS 511 (Graphics) were not made compulsory, since they have less core hours (8 core human-computer interaction (HC) hours and 3 core graphics and visual computing (GV) hours respectively) and no successors. CPS613 is a very popular course taken by nearly all CSCI students anyway, so leaving it optional simply gives students more scheduling flexibility.

4.1.3 Shifts in Emphases in Computer Science

New Emphases:Two of the most striking changes in Computer Science concern networks and programming paradigms.

- Net-centric Computing: The development of the World Wide Web in the early 1990’s was of great significance not only to computing but also to society as a whole. Networking topics have since become much more significant. This increased importance must be reflected in any new curriculum. Net-centric computing is already one of the strengths of the CSCI curriculum which boasts 5 courses in the subject (CPS530 (Component-Based Programming for the Web), CPS630 (Web Applications), CPS706 (Introduction to Data Communications), CPS811 (Distributed Systems & Networks), and CPS750 (Telecommunication Networks: Performance & Algorithms)). We have decided to reinforce this strength by introducing CPS4XX (Network-Centric Computing), a new compulsory course in net-centric computing in the fourth semester of the CSCI program. Since much of the material from CPS630 (Web Applications) would be moved into CPS4XX, CPS630 will be eliminated from the program.- Object Oriented Programming: In 1990 there was a general belief that the imperative programming paradigm was no longer sufficient for the development of large, bug free systems. Various new methodologies were proposed such as functional

Page 15 of 77

Page 16: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

programming, constraint programming, logic programming, and object oriented programming. By 2001 it is clear that the winner is, at least for now, Object Oriented Programming. The CSCI program already has a strong emphasis on OOP which is covered formally in the compulsory courses CPS209 (Computer Science II) and CPS611 (Object Oriented Programming and Design) and informally by our choice of Java as a first programming language. We have decided that our OOP focus is sufficient for the time being.- Design Tools: Along with OOP has come a great interest in OO design, and design tools such as UML. OO tools, APIs and languages need a much larger place in an updated curriculum than they had in the old. Our new program introduces CPS1XX (Social and Professional Issues in Computer Science), a new first semester course with a strong lab component which will collect simple lab material from other first year courses, so as to free up lab periods in these courses to cover more advanced tools. The new program also shifts the focus of CPS405 (Advanced Data Structures and Software Engineering) to OO Design as described in detail in Section 4.3.4.

Other increasingly important topics:There are a number of other topics demanding increased attention. These include

- Discrete Structures: we are proposing adding a second compulsory Discrete Mathematics course, MTH210, in second semester.- Social and Professional Issues: these issues would be covered in the new proposed compulsory course, CPS1XX (Social and Professional Issues in Computer Science).- Graphics and multimedia, human-computer interaction: these topics are currently covered in three extremely popular options, CPS511 (Computer Graphics), CPS621 (Introduction to Multimedia Systems) and CPS613 (Human-Computer Interaction and GUI Development). The high registration in these courses makes them close to equivalent to compulsory courses. As explained in Section 4.1.2, since most students take them anyway, there is no need to make these courses compulsory. This decision may need to be revisited during our next program review, however.- Software safety and security: This topic would be addressed partially in the new compulsory courses MTH210 (Discrete Mathematics II) and CPS4XX (Net-Centric Computing) and in the new mathematics option, MTH816 (Cryptography).

De-emphasis of “traditional” CS areas:

All these new and expanded topics have to go somewhere. However, it is necessary to avoid the “stuff ‘em ‘till they burst” syndrome. Some topics must be either much reduced or left out altogether. Even though the CC2001 report very explicitly states what computer science areas need to be emphasized, it shies away from giving explicit suggestions for downsizing. Instead, as explained in Section 4.1.2, the report has reclassified computer science topics into “core” topics which they consider essential and “elective” topics which are not, recommends minimal hours for the core topics, and lets readers draw their own conclusions. To determine which areas the ACM/IEEE has de-emphasized in the new curriculum, one must thus compare the core hours dedicated to specific areas with the similar number of

Page 16 of 77

Page 17: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

hours (called “lecture hours”) in the 1991 report. This is a very imperfect methodology, as the correspondence between topics and hours between the two reports is certainly not complete. However, there is enough overlap to be able to notice some broad trends, including the new emphases already described, and seemingly downward shifts in emphasis for the following areas:

- Architecture, organization, and assembly language programming (59 to 36 core hours)- Software engineering (44 to 31 core hours)These two changes must be interpreted in the context of the emerging partition of computer science into 4 branches, as explained in Section 4.1.1. These areas are not becoming less important as would seem from the reduction in hours but actually so important that they are becoming separate CS branches. The PRC proposes adjusting the CSCI program accordingly by removing redundancies in the architecture area (CPS211 (Introduction to Computer Systems) and EES208 (Digital Circuits) will be merged in the future, and CPS600 (Assembly Language Programming) becomes an option) and strengthening the compulsory software engineering courses (CPS3XX (Object-Oriented Programming, Analysis and Design) and CPS405 (Software Engineering) – see Section 4.3.2) - Operating systems (31 to 18 core hours)No adjustment to the program is necessary as the 18 core hours warrant CSCI’s one compulsory course in operating systems, CPS590 (Introduction to Operating Systems).- Programming languages, formal languages, and compiler theory (46 to 21core hours)The CSCI program currently covers these areas with one compulsory course in formal languages (MTH405), and three optional courses: CPS506 (Comparative Programming Languages), CPS710 (Translators I), and CPS812 (Translators II). The PRC proposes to change CSCI’s approach to this area by the following steps.

Replace MTH405 by another compulsory course, CPS6XX (Theory of Parsing), whose focus will be more applied and which will combine material from MTH405 and CPS710. MTH405 would be deleted from the program, and CPS710 would be restructured. Place CPS6XX in semester 6, whereas MTH405 was in semester 4. Reorganize MTH405 material not covered in CPS6XX into the two mathematics options, MTH714 (Logic and Computability) and MTH814 (Computational Complexity).

- Computational Science (7 to 0 core hours)Currently all our courses in this field (numerical analysis, operations research, etc.) are optional so there is no need to change our approach.- MathematicsFinally, while the ACM/IEEE remains officially neutral about the value of “traditional” mathematics courses such as calculus, the trend towards discrete mathematics and away from calculus and linear algebra that was already apparent in the 1991 curriculum is even more apparent in the actual curriculum recommendations in Curriculum 2001. The issue of mathematics curriculum in the CSCI program is discussed in Section 4.3.1.

Page 17 of 77

Page 18: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

4.1.4 First Year InstructionThe ACM/IEEE proposes 6 possible approaches for 1st year:

- Imperative first: uses the traditional imperative paradigm- Functional first: introduces algorithmic concepts in a language with a simple functional syntax, such as Scheme.- Object Oriented (OO) first: emphasizes early use of objects and object-oriented design.- Breadth first: begins with a general overview of the discipline.- Algorithms first: focuses on algorithms over syntax.- Hardware first: begins with circuits and then builds up through increasingly sophisticated layers in the abstract machine hierarchy.

We discussed which approach would be more appropriate for our program and considered the following points. The hardware approach is more suitable to computer engineering programs. The algorithmic approach is too abstract for our program. The functional approach, which we already tried for a few years with Scheme in CPS109/209, is also too abstract. The breadth first approach has many good points, which we will try to incorporate in our program, mostly through labs, but we felt it necessary for students to focus on learning to program well early on in the program.

We concluded that a combination of the objects first and imperative first approaches would be best suited to our program at present, although the OO first approach is still experimental and not fully thought out in CC2001. We have already started implementing this approach in the current CSCI program and recommend continuing to do so as it is successful so far. Java is the first programming language that students learn in the program, but it is introduced in an imperative fashion in CPS109 (Computer Science I), and OO elements of the language are introduced formally in CPS209 (Computer Science II). Then in second year CPS611 (Object-Oriented Programming, Analysis and Design) and CPS405 (Software Engineering) would focus on OO design and OO software engineering practices.

4.2 Issues Identified by Periodic Program ReviewThe issues, comments, and recommendations stemming from the Applied Computer Science Periodic Program Review Report of April 2001 which are relevant to the undergraduate curriculum are described in this section. The CSCI program was reviewed by multiple committees and individuals so there is significant repetition of issues and concerns. Some of these issues have already been addressed in Section 4.1. To improve legibility, we are discussing the remaining concerns, issue by issue in Section 4.3 instead of this section.

4.2.1 Advisory CommitteeThe Advisory Committee made the recommendations listed below. In Sections 4.2.3 and 4.2.4, we include relevant external peer reviewers’ comments on these recommendations. In Sections 4.3.3 and 4.3.1 the PRC comments on Recommendations 2 and 3, respectively.

Page 18 of 77

Page 19: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

Recommendation 1: additional elective courses in emerging hot topics in computer science are required, such as network technology, web design and e-commerce.

Recommendation 2: mastery of spoken and written communication is essential for successful business transactions and careers. Therefore, the first year Liberal Studies Electives I and II should be replaced with mandatory courses with a focus on written and presentation skills.

Recommendation 3: two members of the Advisory Committee pointed out that for most graduates; Calculus has little or no relevance in their future professional experience. Therefore, the two Calculus courses should be replaced with elective mathematics courses.

4.2.2 Student SurveyComplete Student Survey data is available in the Program Review Report (April 2001.) In this section, we highlight only those areas of the program with which students seemed dissatisfied.

Current studentsA survey provided by Ryerson was given to students in CPS600 in winter 2000. 54 students participated in the survey. 94% of responding students were in year 3. Questions to which students responded negatively are as follows:

Workload: 30% rated the CSCI workload as “excessively high”

Advising:Over half of those who felt that the questions were relevant responded “ineffective or very ineffective” to:

- “How effective was the program department in providing helpful academic advising?”

- “How effective was the program department at directing you to useful sources of academic advising outside the department?”

Outcomes:When asked “To what extent has your program helped you to improve your ability in the following areas?” students rated these areas poorly:

Somewhat (%) Very little or not at all (%) Area39 45 Written communication54 35 Oral communication44 35 Leadership skills41 38 Entrepreneurship

24 58 Understanding people from different cultures

Graduates of the ProgramStudents graduating in 1996 and 1997 were surveyed in 1998 and 1999, respectively. A total of 27 graduates responded to the 1996 survey, and 24 to the 1997 survey.

Page 19 of 77

Page 20: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

- 1996 Graduates

50% would advise potential Ryerson students to prepare for a heavy course load.However, their “Overall satisfaction with Ryerson” was generally positive:

22% Very satisfied63% Satisfied15% Neither 0% Dissatisfied

- 1997 Graduates

These graduates criticised the same aspects of the CSCI program as the current graduates. When asked to describe the extent to which Ryerson education has improved student’s abilities in specified areas, the negative responses were for:

Somewhat (%) Very little or not at all (%)

Question

42 4 Critical Thinking63 8 Creativity41 21 Written communication58 17 Oral communication54 25 Understanding Ethical responsibilities58 38 Entrepreneurship50 29 Managing your own career

4.2.3 Peer Review - First reviewer- To address the high drop-out rate in the first two years, review the first two years of the program with the goal of reducing the workload but not significantly sacrificing the knowledge provided to the students. Students interviewed agreed:

- Problems are caused more by the demanding workload than by conceptual difficulties with the material.- Reducing overlap of topics, streamlining material, and reducing assignment sizes would help.

- Retain the positive aspects of the program which include the relatively small classes, hands-on approach, structured curriculum, helpful faculty, and non-competitive environment at Ryerson.- Establish a graduate program in Computer Science. This may require more foundational undergraduate courses in theoretical aspects of computing and needs faculty support. This may be accomplished without losing the “applied” focus by introducing a special honours stream with two or more theoretical computing courses during fourth year. Theoretical courses may also be cross-listed as graduate courses.

Page 20 of 77

Page 21: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

4.2.4 Peer Review - Second Reviewer- First year is extremely difficult, especially when the instructor is not talented. Instructor variability is a problem.- Since half the courses are “chosen” by students, there is the possibility that students produced are not too homogeneous. Monitor this to observe student selection patterns.- The only obvious gap in curriculum, however, is that students can avoid taking a database course.- Students are positive about small class size (especially in final year). Preserve this by adequately funding teaching.- The curriculum prepares students for graduate school, but students are not given a great deal of encouragement for applying to graduate school. This is not uniform among faculty members, and understandable given that the School has no graduate program.- Improve students’ written and spoken communication skills. Keep the existing liberal studies courses, however. If particular skills are not addressed by the liberal studies courses, the School should run its own course to fill the gap.- Do not necessarily provide electives in “hot-topics” (e-commerce, web-design)- Calculus is relevant to computer science. Many areas such as Robotic control, statistical analysis, financial forecasting, etc require calculus. Calculus also trains young minds to be nimble and comfortable with mathematical reasoning. As we cannot predict the future of computer science, a broad study of basic math, theory of computation, traditional computing sciences, statistics, systems analysis and liberal arts help prepare a well-rounded professional who can adapt to the ever-changing environment of computer science.

4.2.5 Ryerson Academic Council and Standards CommitteesThe Applied Computer Science Periodic Program Review Report of April 2001 was approved as submitted by Academic Council at its October 2, 2001 meeting. Several observations were put forth. Those relevant to our report are as follows:

- Develop more explicit strategies to address improving graduation and retention rates. Focus on first semester dropout rates.- Give serious attention to improving communications skills, both oral and written.- Teach in a systematic way ethics and professional practice.

Page 21 of 77

Page 22: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

PROPOSAL FOR CSCI PROGRAM CURRICULUM CHANGES

4.3 PRC’s Response to Program Review IssuesThis section addresses the issues brought up in the Program Review that were not already discussed in 4.1. Some of these issues require changes in the administration of the program, which is outside the mandate of this committee. Therefore they are not addressed in this report, which only deals with curriculum issues.

4.3.1 Mathematics curriculum in the CSCI programSome of issues relevant to the mathematical curriculum in the CSCI program are discussed below.

There is little consensus on this issue. The issue of the nature and quantity of the mathematics component of the CSCI program is a highly divisive one. As can be noted in the previous section, external reviewers of the program do not agree on this issue. Members of the MPCS Department, be they faculty or students, also have widely different opinions concerning the appropriateness and quantity of specific mathematical topics that should be compulsory for computer science students. This problem is not specific to Ryerson. We know through informal discussions with colleagues outside of Ryerson that this is a contentious issue in other computer science programs. We also noted that CC2001 decided to more or less opt out of the discussion except for the case of discrete mathematics material, for which they seemed to be able to reach a consensus on the required material. However, its predecessor CC1991 contained very precise and reasonable recommendations for mathematical curriculum which we used in our decision-making on this issue along with all the other collected opinions:

Page 22 of 77

Page 23: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

“Mathematical maturity, as commonly attained through logically rigorous mathematics courses, is essential to successful mastery of several fundamental topics in computing. Thus, all computing students should take at least one-half year of mathematics courses. These courses should cover at least the following subjects:

- Discrete Mathematics: sets, functions, elementary propositional and predicate logic, Boolean algebra, elementary graph theory, matrices, proof techniques (including induction and contradiction), combinatorics, probability, and random numbers.- Calculus: differential and integral calculus, including sequences and series and an introduction to differential equations.

Note that some of the discrete mathematics topics should be treated early in the curriculum, because they are needed for some of the basic knowledge units.

The half-year mathematics requirement should also include at least one of the following subjects:- Probability: discrete and continuous, including combinatorics and elementary statistics.- Linear Algebra: elementary, including matrices, vectors, and linear transformations. - Advanced Discrete Mathematics: a second course covering more advanced topics in discrete mathematics. - Mathematical Logic: propositional and functional calculi, completeness, validity, proof, and decision problems.

Many implementations will have additional mathematics requirements beyond this minimum set. For example, professionally-oriented programs will normally require five or six mathematics courses. Students who wish to pursue graduate study in computing are also well-advised to take more mathematics.”

Page 24: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

The Ontario high school mathematics curriculum has just changed.The changes proposed in this document will be implemented at the earliest for September 2003, the first year of the “double-cohort”. So, except possibly for the OAC tier of the fall 2003 promotion, all CSCI students impacted by these changes will have gone through the new Ontario Secondary School (OSS) Curriculum. The changes in the OSS Mathematics curriculum can be found at http://www.edu.gov.on.ca/eng/document/curricul/secondary/grade1112/math/math.html.

To determine the impact of these curricular changes on the CSCI program, members of the MPCS Department and PRC attended a Transition Committee Meeting hosted by the Fields Institute on January 17, 2002 on the topic of the Transition from school to university under the new OSS curriculum. Minutes of this meeting are available at http://www.fields.utoronto.ca/programs/mathed/meforum/minutes/02/01-26.html. The following expected changes in the mathematical (and general) abilities of OSS graduates were outlined:

- Due to the elimination of one year of high school, graduates will be one year younger and generally less mature. This will probably exacerbate CSCI’s existing retention problems.- The exact impact of the curriculum changes on students’ actual mathematical abilities will not be known for quite a few years as there have been many difficulties with the implementation of the new curriculum and it will take some time to evaluate the actual mathematical abilities of Ontario high school graduates as opposed to the theoretical expected outcomes of the curriculum changes. There is also an extremely high variation in how schools actually implement these changes which only compounds the problem. However, high school teachers are making the following educated guesses about differences in the mathematical abilities of high school graduates based on the official curriculum documentation and their experiences so far with its implementation:- Students may have weaker backgrounds in trigonometry, algebra, the usage of mathematical notation, abstraction, and proofs.- Students may have stronger backgrounds in geometry (even though their trigonometric skills will be weaker!), modelling, representing and manipulating data, using technology to analyse problems, and reasoning (i.e., the intention is to put more focus on explicitly explaining the reasoning leading to the solution of a problem instead of just stating that solution).

PRC Recommendations:

Implement the changes proposed in this document in fall 2003 to benefit the OSS tier of the double-cohort. It was predicted at the Transition Committee Meeting that this particular group of students will be severely disadvantaged when they enter university in the Fall of 2003 because not only will they be competing with older students who have had one more year of high school education, but they will also be entering university after what will have been for many a somewhat traumatizing few years of high school. For fours years in a row (grades 9 to 12), this group of students will have been on the front line of curriculum changes, changes which were apparently not always implemented very gracefully and with very uneven results. The changes that we are proposing making to our program, in particular

Page 25: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

in first semester, are designed to improve retention rates by easing the transition from high school to university. The OSS tier of the double-cohort will probably need these more than any other group of students going through our program. These changes will also have a positive effect on the OAC tier of the double cohort.

The PRC agreed with the CC2001 recommendations in favour of a very strong discrete mathematics component in the program and introduced a second compulsory discrete mathematics course in the program, MTH210. This does not, however completely double the discrete mathematics content of the CSCI program: some MTH110 topics were moved to MTH210 in anticipation of the difficulties new OSS students will have with mathematical notation, abstraction, and algebra. It is expected that it will be necessary to slow down the pace of MTH110 and possibly add supplementary OAC material to help students deal with the MTH110 material. Unfortunately, it is still too difficult to determine exactly what material will be needed at this stage. However, almost all the core discrete structures (DS) material will now be covered in MTH110/210.

We have also reorganized the order of the remaining compulsory mathematics courses:

- MTH108 (Linear Algebra) will be moved from semester 1 to semester 4 to make room for the new CPS1XX (Social and Professional Issues in Computer Science) in first semester.- MTH207 (Calculus 1) has been moved from semester 2 to semester 3 to make room for MTH210 (Discrete Mathematics II).- MTH310 (Calculus II) now becomes optional. - MTH304 (Probabilities and Statistics I) will now have a precursor of MTH207 instead of MTH310.- Also, as explained in Section 4.1.3, MTH405 (Formal Languages) (which actually contains computer science material) will be replaced by CPS6XX (Theory of Parsing).

Some of these curriculum changes will probably need to be re-evaluated once the impact of the OSS curriculum changes is better known.

We have also made changes to the mathematics options:

- The number of mathematics options that students can take has changed from 1 to 3 instead of 1 to 2. We hope that this will result in more choices for students.- The list of mathematics options has also been modified for the same reason. The second course of each current mathematics option pair will be removed in an attempt to encourage students to gain mathematical breadth rather than depth.- We have added some mathematics options which were designed for the proposed program in Mathematical Modeling and which are relevant to computer science and for which our 3rd and 4th year students will have the appropriate prerequisites.

4.3.2 Retention Problems in First and Second YearsCSCI has traditionally had a low retention rate in the first two years of the program. While 100% retention cannot be expected in glamorous but intellectually difficult programs with very heavy workloads such as computer science, engineering, and medicine, the CSCI retention rate can

Page 26: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

probably be improved from its current level which is slightly below 50%. Ryerson has formed a retention committee to look into this issue across all Ryerson programs, and this committee will undoubtedly investigate the CSCI situation and come up with recommendations to improve our retention rates. We expect that this investigation will need to look at many factors including curriculum, workload, grading, student preparation, study skills, and cultural issues. While the mandate of the PRC does not include improving retention rates, we felt that since this was clearly an important issue, we could at least start to address it from a curricular and workload point of view. It is clear from all reports on this matter that this problem is mostly a first and second year problem, i.e., most students who manage to complete second year eventually graduate. Therefore, we decided to focus our efforts on the first two years of the program. When doing so, two dominant issues emerged: the difficulty students are having dealing with the first term material, and the heaviness of the student workload in fourth term.

Difficulty of first term curriculumThe main cause of the difficulties first term students have with the CSCI curriculum do not seem to stem from the curriculum itself, but rather from the unevenness of the computer literacy and mathematical skills of program entrants. Student surveys show that students are highly divided on their estimation of the difficulties of the first term compared with their evaluation of other terms. This problem will only be exacerbated in the Fall of 2003 with the changes in the high school mathematics curriculum and younger age of the program entrants, so even though the source of the problem does not lie with the first term CSCI curriculum, its solution must be found there, both in the computer science and mathematics courses offered that term.

The PRC’s approach to solving the mathematical component of this problem was explained in Section 4.3.1 and is therefore not repeated here. We decided to solve the computer science part of this problem by introducing a new “semi-bridging” course, CPS1XX (Social and Professional Issues in Computer Science), in the course slot vacated by MTH108. The purpose of CPS1XX is to introduce new CSCI students to professional practices in the computer industry and at Ryerson. It is intended as a course with a light workload and light intellectual content. The lecture material will cover all CC2001 Social and Professional Issues core material (which was not previously covered in the CSCI program); while the labs will introduce students to systems and tools that they will need during their program of studies and professional practice.

Heavy fourth term student workloadThe student workload in the fourth semester of the CSCI program has traditionally been very heavy. This is due to multiple factors all related to the fact that fourth semester is the last fully compulsory term in the program. Therefore almost all the material that is deemed necessary to a computer science education must be completed by the end of fourth term, and some of the more advanced portions of the compulsory curriculum are delayed until that semester, in particular the full scale project. Not only is this problem noticeable in specific courses with heavy workloads or difficult material, but also in the concurrence of these courses in the fourth semester. We have identified three main problems:

Page 27: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

- CPS405 (Advanced Data Structures and Software Engineering) is a course with a very heavy workload. In this course students not only have to complete a sizeable project, but also have to incorporate a wealth of new design and classical Software Engineering concepts. This situation would be eased considerably by a sequence of topic movements:

The new CPS1XX (Social and Professional Issues in Computer Science) course will help students in their other programming courses in first year. With this improved foundation, first year students can better grasp introductory level OO paradigm concepts which can now be moved down from the second year CPS611 (Object Oriented Programming and Design) course to CPS209 (Computer Science II) in second semester. The OO paradigm will still be reinforced in CPS611, but more at a review level. The movement of these introductory OO concepts into CPS209 will in turn permit CPS611 to cover even more of the introductory aspects of OO Software Engineering, expanding upon the existing coverage of these topics already in that course. This has two effects on CPS405. Much of the introductory Software Engineering Analysis and Design theory will be moved out of that course and down into CPS611 where it will be taught in an OO instead of procedural mode; simultaneously, the CPS405 Software Engineering project will be shifted to the OO paradigm. In this way CPS611 will become an effective lead-in to CPS405, with the current CPS611 mini-project being rolled into a continuous OO project with the CPS405 full scale project. Collectively, these actions will simplify the 405 project development, move it into the more current Object-Oriented mainstream, and reduce the amount of new Analysis and Design theory material specifically presented in CPS405. This will allow students to concentrate more fully on the project work itself in CPS405, and most importantly, this will reduce the overall workload in that semester. An even greater workload saving in the fourth semester is evident in this proposal, because, as noted, a portion of the CPS405 project (the initial A&D stages) will begin in the previous (third) semester with CPS611. These changes in the CPS611 material are significant enough to require a renumbering of its course code to CPS3XX, and this is the code that we will use in the rest of this document to refer to this course.

- MTH405 (Formal Languages): the workload of MTH405 is relatively light compared to CPS405. However, MTH405 is a very advanced course requiring a mathematical maturity that is rare for second year undergraduate computer science students (and will be even rarer with the changes in the high school curriculum). As a matter of fact, in other undergraduate computer science programs, the course equivalent to MTH405 is often offered as a fourth year CS course. We have dealt with this problem by reorganizing some of the material in this course and some of the material in another related course, CPS710 (Translators I) into a new compulsory 6th semester course CPS6XX (Theory of Parsing), and moving the much lighter first year linear algebra course, MTH108, into the MTH405 slot.- CPS721 (Artificial Intelligence) and CPS590 (Operating Systems): these two courses are perhaps less problematic than the CPS405 in terms of workload, but since they are taken in the fourth semester along with CPS405 and MTH405, the overall

Page 28: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

workload can be especially challenging. We propose therefore to move CPS721 to the fifth term, and add to the fourth term a lighter course, CPS4XX (Network-Centric Computing) CPS4XX is intended to cover all the core material of the CC2001 Net-Centric Computing area and expose students to the development of web applications. Much of its material will be taken from the current optional course CPS630 (Web Applications), which will be gradually eliminated from the program as a result of this change.

The PRC notes that the curriculum changes proposed in this section would have a significant impact on the Continuing Education certificates.

4.3.3 Communication Skills

The lacklustre communication skills of students and graduates of computer science programs is an old and well-know problem both at Ryerson and at other universities. It is caused by a few factors: the high proportion of ESL students in computer science (especially at Ryerson), the admissions processes which appropriately select students based on their high school performances in mathematics and science, and most importantly the perception by computer science students that communication skills are not essential to a successful career in the computer industry.

This issue has been brought up during each review of the Applied Computer Science program and steps have been taken to address this problem during each program revision with mixed results. So far these have included (but are not limited to):

In Semester 1:

- In PCS110 (Physics) the students do 10 labs, and are expected to write two Formal Reports, which are to take the format of a paper that would be suitable for publication in a journal. The students also write up an abstract on each of the ten experiments, not to exceed 200 words or so, which must summarize the entire experiment.- In MTH110 (Discrete Mathematics) students must make at least 2 oral presentations of their solutions to mathematics homework during the lab periods, and receive feedback on their performance.

In Semester 3:

- Students must take CMN300 (Communication in the Computer Industry).

In Semester 4:

- CPS405 (Advanced Data Structures and Software Engineering) has substantial written documentation requirements and requires an oral presentation. Students are not instructed on presentation skills but tutorial help and feedback on the material presented are provided.

In years 3 and 4:

- In CPS607 (Autonomous Mobile Robots) students are forced to provide a written technical description of each robot they build. The description is no longer than one

Page 29: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

printed page, and it is graded on grammar and spelling as well as content, format and presentation.- In CPS613 (Human-Computer Interaction and GUI Development): students must participate in usability testing sessions for the project, both as experimenters and subjects. They receive instruction on verbal protocols, appropriate speech patterns and body language when conducting such sessions. They also receive feedback on their performance.- Co-op students receive additional assistance in this matter. As part of the application process they must take courses dealing with resume writing and interviewing skills. Their resumes are reviewed by the Computer Science co-op officer and plans are under way to add mock interviews to the process. Co-op students also have to write co-op reports as part of the evaluation of co-op placements. These reports are marked for the quality of the written expression as well as their content, and students who clearly need help with their written English must rewrite their reports and are referred to the Writing Center for assistance in this matter.

We propose to deal with this issue further in our revised program by assessing the written communication skills of our program entrants in the first semester and referring them to the Writing Center when needed. We will do this in the new CPS1XX (Social and Professional Issues in Computer Science) course, where students will be given a tour of the Writing Center in the first week of classes and then be required to write essays individually as part of the evaluation for this course. We hope to be able to work in partnership with the Writing Center on this matter. We will be discussing this proposal with them, but as they have been very responsive in the past, we are optimistic that we can work out a good arrangement with them. We hope that by formally identifying communication problems very early in the program and introducing students to the Ryerson resources available to help them deal with such matters, we will be able to convey the importance of this issue to students and enable them to start working on improving their skills straight away.

4.3.4 Lack of Guidance for 3rd and 4th Year Options SelectionDuring the PRC’s discussions with student representatives, an issue that had not been brought up during any of the other program reviews came up: while students enjoy the flexibility of the option structure of 3rd and 4th year and would not want to give it up, they would appreciate more guidance in their course selection and in manoeuvring through the prerequisite structures of these options.

The PRC decided to respond to this concern with an optional “concentration” structure that will be communicated to students in the calendar. A concentration is a grouping of optional courses which may or may not be officially related by their prerequisite structure, but that, when taken by a student will result in that student having a deeper knowledge of a particular area of computer science. (Note that concentrations are often called “streams” but since this word already has an alternate meaning at Ryerson, we opted to use the word “concentration” in this document for clarity.)

The available concentrations are described in Section 5. One of the proposed concentrations will be “breadth”, for students who prefer to focus on breadth rather than depth.

Page 30: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

4.3.5 Preparation for Graduate StudiesThe foundational undergraduate courses in theoretical aspects of computing have been available in the program for years as mathematics options, but they do not run very often due to lack of student interest and restrictions on the number of mathematics options that students can take.

One of the concentrations described in Section 5 will outline options that students should take to prepare them for graduate studies. Coupled with the changes to the mathematics options described above, we hope that this will generate enough interest in these courses to make them viable.

However, since relatively few students choose to pursue graduate studies, it is quite likely that these courses will need special funding support in order to run. This problem could probably be alleviated by cross-listing these courses as graduate courses as was suggested in the Periodic Review, but this is not possible with the current academic structure of the School of Graduate Studies.

4.3.6 Homogeneity of GraduatesOne of the external reviewers of the program expressed concerns about the possible heterogeneity of CSCI graduates resulting from the optional structure of the last two years of the program.

The PRC does not generally share this concern. Computer Science has become a very broad discipline that employs individuals with a wide variety of knowledge and skills. Therefore, we believe that our optional structure which gives students the flexibility to explore different areas of computer science based on their tastes, temperaments, and aptitudes, producing graduates with a variety of skills is an asset of the CSCI program.

This said, we do believe that all CSCI graduates should have a set of common knowledge and skills which are basic to the computer science field and necessary for computer professionals. This is also the underlying philosophy of CC2001, and the reason behind the identification of core topics in their proposed curriculum. We believe that by following CC2001’s core recommendations, we have dealt with this issue in the manner most appropriate to our program.

Page 31: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

5 PROPOSED CHANGES TO PROGRAM

5.1 Program Overview

The structure of the proposed computer science program is very similar to that of the current program:

The first two years would consist of compulsory courses.

Semester 1 Semester 2 Semester 3 Semester 4CPS109 (3+1)Computer Science I

CPS209 (3+1)Computer Science II

CPS3XX (3+0)OO Prog. & Design

CPS405 (2+2)S/W Engineering

CPS1XX (2+1)CS Prof. Practice

CPS393 (3+1)Intro to C & Unix

CPS305 (3+1)Data Structures

CPS4XX (2+2)Net-centric comp.

PCS110 (4+2)Physics

CPS211/EES208 (4+2)Comp. Syst./Dig. Circ.

CPS 310 (3+2)Comp. Organization

CPS 590 (2+2)Operating Systems

MTH110 (3+1)Discrete Mathematics I

MTH210 (3+1)Discrete Math. II

MTH207 (3+1)Calculus I

MTH108 (3+1)Linear Algebra

Liberal elective (3+0)Group A

Liberal elective (3+0)Group A

CMN300 (0+3) Communications in CS

BUS400 (3+1)Intro. to Business

The latter two years would consist mostly of options with a sprinkling of compulsory courses:

Semester 5 Semester 6 Semester 7 Semester 8MTH304 (3+0)Probability & Statistics

CPS6XX (3+1)Theory of Parsing  Option Option

CPS510* (3+1)Databases I

CPS721 (3+1)Artificial Intelligence Option  Option

Option Option Option  OptionOption Option Option  OptionLiberal elective (3+0)Group B

Liberal elective (3+0)Group B

Liberal elective (3+0)Group B

Liberal elective (3+0)Group B

Legend:

Shading of text indicates changes in curriculum: Shading of background indicates changes in course placement:

At most very minor changes. Some curricular revisions and reorganization Course has moved At least 40% new compulsory curriculum Course has not moved

* CPS510 (Database Systems I) is an option course that would become compulsory. Its curriculum has not changed.

Page 32: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

5.2 New Prerequisite Structure for the Compulsory Component

Page 33: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

5.3 OptionsA total of 12 option courses are required between 5th and 8th semester. Available option courses and their restrictions are described below. Changes are bolded and deletions are struck out.

5.3.1 Mathematics GroupStudent must take a minimum of 1 and a maximum of 3 courses from this group.

Term Course Code Course Title Comments Lecture Lab

Fall MTH310 Calc. and Comp. Methods II Now optional 4 0MTH501 Numerical Analysis Renamed 4 0MTH503 Linear Programming Renamed 3 0MTH505 Calculus III 3 2MTH540 Geometry 3 1MTH607 Graph Theory 3 1MTH714 Logic and Computability Modified 3 1MTH716 Design & Codes New 3 1

Winter MTH401 Differential Equations Moved from fall 3 0MTH404 Probability and Statistics II 3 0MTH601 Numerical Analysis II 4 0MTH603 Operations Research Renamed 3 1MTH609 Number Theory 3 1MTH640 Complex Analysis 3 1MTH710 Fourier Analysis 3 0MTH712 Differential Equations II 3 0MTH814 Computational Complexity Modified 3 1MTH816 Cryptography New 3 1

5.3.2 Professionally Related GroupThis group remains unchanged.

5.3.3 Core Computer Science GroupNote that this group does not exist anymore. All computer science options are now together in the Computer Science Group described in the next section.

Page 34: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

5.3.4 Computer Science GroupThe remaining option courses may be selected from this group.

Term Course Code Course Title Comments Lecture Lab

Year CPS040 Thesis ** 0 3Both CPS530 Component-Based Prog. for the Web 3 0

CPS607 Autonomous Mobile Robotics 3 0Fall CPS506 Comparative Programming Languages 3 0

CPS509 Control Systems 3 0CPS511 Computer Graphics 2 1CPS520 Comp. Assisted Instruction and Learning 3 1CPS606 Advanced Computer Organization 3 0CPS710 Translators I Modified 2 1CPS720 Artificial Agents Renamed 3 0CPS731 Advanced Software Engineering I Renamed 2 2CPS752 Parallel Computer Systems 3 0

Winter CPS610 Database Systems II 3 0CPS613 Human-Computer Interaction 2 2CPS621 Introduction to Multimedia Systems 2 1CPS706 Introduction to Data Communications 3 0CPS707 Software Verification & Validation 4 0CPS711 Introduction to CAD/CAM 1 2CPS750 Telecomm. Networks: Perform.& Algor. 3 0CPS801 Operating Systems 2 2CPS809 Systems Simulation II 3 0CPS811 Distributed Systems & Networks 3 0CPS812 Translators II 2 1CPS815 Analysis of Algorithms 3 1CPS820 Knowledge-Based Systems 3 0CPS831 Advanced Software Engineering II Renamed 2 2CPS840 Selected Topics in Computer Science 3 0CPS841 Advanced Topics in Computer Science 3 0

** Only students whose G.P.A. is 2.5 or greater or who have permission from the School of Computer Science may elect to do a thesis in their final year. CPS040 is a 3 hour a week full year course. The thesis credit is equivalent to two optional courses.

Page 35: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

5.4 ConcentrationsIt is recommended that students interested in developing a particular specialization of computer science consider selecting courses from the concentrations below. These concentrations are groups of related courses which, when taken together, will help students study a sub-discipline of computer science in more depth. They do not have any official status in the program but are merely suggestions to help students select options. Students should take note of course prerequisites when doing so.

The concentrations we have identified are described below. Even though these are intended to help students select their options, we also include compulsory courses (in italics) in these groupings for completeness.

Breadth (general knowledge with no particular specialisation): CPS506, 510, 511, 6XX, 613, 706, 707, 721, 815, MTH501, 503, 603, 814

Theory (recommended as preparation for graduate studies): CPS305, 6XX, 707, 710, 815, MTH110, 210, 310, 607, 714, 814

Hardware: PCS110, 610, EES208, CPS211, 310, 606, 607, 752, EES512

Networks and Distributed Systems: CPS4XX, 530, 590, 706, 720, 750, 811, MTH716

Operating Systems: CPS590, 752, 801

Software Engineering: CPS1XX, 109, 209, 305, 3XX, 393, 405, 530, 613, 707, 731, 831

Artificial Intelligence and Robotics: CPS509, 520, 607, 720, 721, 820

Algorithms: CPS109, 209, 305, 815, MTH503, 603, 607, 814, 816

Human Interfaces: CPS511, 520, 613, 621, 711, MTH310, 540

Information Management: CPS209, 305, 510, 610

Security: CPS1XX, 4XX, 530, MTH110, 210, 609, 816

Scientific and Mathematical Applications: MTH108, 207, 310, 401, 501, 814, CPS815

Programming Languages: CPS109, 209, 393, 3XX, 506, 530, 6XX, 710, 812

5.5 Liberal StudiesThe liberal studies requirements have not changed.

5.6 Co-operative programThe co-operative option has not changed.

Page 36: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

5.7 Part-Time Degree ProgramOnce the program has been approved, the Continuing Education Coordinator for Computer Science has agreed to make the necessary accommodations to ensure that students may complete this program on a part-time basis.

5.8 Changes to CoursesCourse changes are summarized in this section. Detailed course outlines for new and substantially modified courses are in Appendix B.

5.8.1 New Courses

CPS1XX, Social and Professional Issues in Computer Science (2+1). This course introduces students to the social and professional issues that arise in the context of computing. It also introduces them to some of the systems and tools they will use in their studies and professional practice. Topics include: history of computing, social context of computing, methods and tools of analysis, professional and ethical responsibilities, risks and liabilities of computer-based systems, intellectual property, privacy and civil liberties. Tools and practices: SCS S/W environments including introduction to UNIX from a user’s point of view, basic web page development in HTML, the use of an IDE, debugging, profiling, multi-module development, etc.

CPS3XX, Object-Oriented Programming, Analysis and Design (3+0). This course provides the student with an in-depth understanding of the concepts related to the Object-Oriented paradigm and an introduction to the development of software using the paradigm. The course follows up on the Object-Oriented paradigm introduction in CPS209 (Computer Science II) and is now essentially paired with the follow-up CPS405 (Advanced Data Structures and Software Engineering).

MTH210, Discrete Mathematics 2 (3+1). This course covers some of the material now in MTH110 as well as discrete structures material recommended by the ACM/IEEE but which is not currently covered in the CSCI program. Topics include: functions (1-1, onto, etc.), graphs and trees, recursion and induction, counting, groups and fields and applications to cryptography.

CPS4XX, Net-centric Computing (2+1). This course introduces students to issues surrounding telecommunications, and computer networking. Topics include: network architectures, communication protocols, networking layers, network security measures, cryptography, and the World Wide Web. Students will also learn how to program web applications.

CPS6XX, Theory of Parsing (3+1). This course will introduce students to scanning and parsing and the automata and formal languages theory behind them. It incorporates some material from MTH405 (Formal Languages) and CPS710 (Translators I) and is meant to be more practical than MTH405 and less advanced than CPS710. At the end of the course, students should: be able to write scanners and parsers by hand or using tools, know all the automata theory required to do so, and have a basic understanding of the areas of computability and complexity, in particular NP-completeness.

Page 37: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

5.8.2 Modified Courses

CPS109 (Computer Science I) – because some lab material is moved to CPS1XX (Social and Professional Issues in Computer Science), existing topics can be explored in more depth.

CPS209 (Computer Science II) – some material is moved from CPS611 (Object Oriented Programming and Design) into this course. Topics in event handling and GUI programming are added.

CPS393 (Introduction to C & UNIX) – because some lab material is moved to CPS1XX, existing topics can be explored in more depth.

CPS405 (Advanced Data Structures and Software Engineering) – some material from this course is moved into CPS3XX (Object-Oriented Programming, Analysis and Design).

CPS710 (Translators I) – some material is moved from this course into the new course CPS6XX (Theory of Parsing) which replaces MTH405 (Formal Languages).

CPS721 (Artificial Intelligence) – the format of the course is changed from 4 lecture hours to 3 lecture hours and 1 lab hour. The course is moved from semester 4 to semester 6.

MTH110 (Discrete Mathematics) – some material is moved to MTH210 (Discrete Mathematics II).

MTH304, (Probability and Statistics) – MTH310 replaces MTH207 as a precursor for this course.

MTH714 (Logic and Computability)/MTH814 (Computational Complexity) – these courses are slightly modified to cover the replacement of MTH405 (Formal Languages) by CPS6XX (Theory of Parsing).

5.8.3 Renamed CoursesWe would like to rename the following courses to better reflect their content or new placement in a sequence of courses.

Course Old Name New NameMTH 110 Discrete Mathematics Discrete Mathematics IMTH 304 Probability and Statistics I Probability and StatisticsMTH 501 Numerical Analysis I Numerical AnalysisMTH 503 Operations Research I Linear ProgrammingMTH 603 Operations Research II Operations ResearchCPS 405 Advanced Data Structures and

Software EngineeringSoftware Engineering

CPS 720 Artificial Intelligence Topics Artificial AgentsCPS 731 Software Engineering I Advanced Software Engineering ICPS 831 Software Engineering II Advanced Software Engineering II

Page 38: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

5.8.4 Courses whose compulsory status is changed

MTH310 (Calculus & Computational Methods II) – was compulsory in third semester and now becomes an option.

CPS600 (Assembly Language Programming) – was compulsory in sixth semester and now becomes an option.

CPS510 (Database Systems I) – was an option and now becomes compulsory in semester 5.

5.8.5 Moved courses

MTH108 (Linear Algebra) – from semester 1 to semester 4.

MTH207 (Calculus and Computational Methods I) – from semester 2 to semester 3.

CPS721 (Artificial Intelligence) – from semester 4 to semester 6.

5.8.6 Deleted Courses

CPS611 (Object Oriented Programming and Design) currently in semester 3 – replaced by CPS3XX (Object-Oriented Programming, Analysis and Design) in semester 3

CPS630 (Web Applications) currently optional – replaced by CPS4XX (Network-Centric Computing) in semester 4

MTH405 (Formal Languages) currently in semester 4 – replaced by CPS6XX (Theory of Parsing) in semester 6

Page 39: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

6 COSTSSince we are proposing to change the existing CSCI program, we do not need to evaluate the cost of the entire program, but rather the cost of the proposed changes to the CSCI program. The biggest factor in this difference will be the difference in course hours and changes in the nature of these hours.

The fourth year of the program will be left intact is our proposal is implemented, so only the first three years need to be investigated. The proposed 3rd year changes are to make a few of the currently optional courses compulsory. This will not change the quantity of courses that 3rd year students take only which courses they take and this which will probably have a positive impact as class size will be increased for the compulsory courses. It is difficult to evaluate the cost of running the other third year courses because they are options which are also taught to 4th year students. The cost of running options varies depending on number of options available, format of each option, registration in each option, all of which can be manipulated by the department’s administration. Therefore we can assume that the cost of 3rd year will not change significantly either and we will focus the rest of this analysis on first and second year only, where registration also happens to be higher. For all the calculations below, we will assume that our current 1st year enrolment will stay constant at 14 lab sections but that first year retention will improve, resulting in 7 labs sections in second year instead of the current 6 . This is a reasonable assumption because there are no plans to increase enrolment in the CSCI program in the near future: CSCI is already participating in ATOP and had recently doubled its enrolment. The only increase in population will come from improved retention rates, not increased first year enrolment. We will also assume that 1st and 2nd year lectures will continue to be team-taught by two instructors on average and labs by teaching assistants.

Here are the changes in course hours per term for the first two years. E=Lecture, A=Lab.

Term Courses Removed Courses Added DifferenceCourse Format Hours Course Format Hours

1 MTH108 3E+1A 6E + 14A CPS1XX 2E+1A 4E + 14A -2E2 MTH207 3E+1A 6E + 14A MTH210 3E+1A 6E + 14A 03 MTH310 4E+0A 8E + 0A MTH207 3E+1A 6E + 7A -2E+7A4 MTH305

CPS7213E+1A 3E+1A

6E + 7A6E + 7A

MTH108CPS4XX

3E+1A2E+2A

6E + 7A4E + 14A

-2E+7A

We will now evaluate the impact of these proposed changes on teaching and other resources.

6.1 TeachingOther than the change in the total number of hours, it is also important to look at the nature of the hours being changed. Lecture hours are taught by faculty members, but labs are taught by TAs who are less expensive. Altogether, this proposal would replace 6 faculty hours by 14 TA hours

Page 40: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

which would give students more time in small groups working directly on problems for more or less the same cost.

6.2 Other FacilitiesIn addition to the factors just investigated, the changes in the subject of the lab hours and the term during which the changes take place are relevant to the calculation of the effect of these proposed changes on the facilities. Generally speaking, all lectures are in large lecture halls. Math labs are in small lecture rooms, and computer science labs in labs.

6.2.1 Classrooms

Fall

- 4 large lecture room hours would be freed up- 7 small lecture room hours would be freed up (MTH108 labs - MTH207 labs)- 14 additional lab hours would be required (CPS1XX)

Winter

- 2 large lecture room hours would be freed up.- 14 additional lab hours would be required (CPS4XX)

6.2.2 EquipmentThese changes would require an extra 14 hours of lab time in the computer science labs per term. Fortunately, since the current teaching labs are not fully booked during the day and more computer science labs are already planned for fall 2004 in the new center for Computing and Engineering, the School of Computer Science would be able to handle this increase.

There will, however, probably be additional support and maintenance costs in the long run, which will hopefully be more than offset by the increase in revenue from the improvement in retention rates.

7 IMPLEMENTATION DETAILSAs explained earlier, we would like to start running this new program in the fall of 2003 to improve the retention rate of the first OSS promotion.

8 CONCURRENT AND FUTURE CHANGES TO PROGRAMThe original version of this proposal contained some changes that have been removed from this proposal to expedite implementation. It is still the desire of the department of MPCS that these changes be implemented. However, they will be dealt with independently of this proposal, in the next few months and years. These changes are:

8.1 New Professionally-Related ElectivesThis proposal originally contained additions to the professionally-related group of the Professionally Related Electives table. These were courses offered by other departments that we

Page 41: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

wished to include as part of the choice of electives that CSCI students could take in 3rd and 4th year. However, since each of these courses had to be approved by another department, MPCS and the School of Computer Science decided to add these courses independently of this report. This issue has been referred to the standing Computer Science Curriculum Committee of the School of Computer Science which will undertake the required negotiations with the departments involved. These new electives will come up for approval as they are worked out with each department and are intended to complement this proposal rather than contradict it.

8.2 Replacement of CPS211/EES208The PRC originally proposed to merge these two courses, which are currently worth half a credit each, into one CPS2XX course with the same number of hours and very similar curriculum. The intention of this merger was to improve the integration of the EES208 labs with the CPS211 theory. However MPCS does not currently have the appropriate lab facilities to support such a course, so this reorganization was contingent on the Department’s move to the new Center for Computer Science and Engineering where a new Computer Science hardware lab will be constructed. Since the status of this building seems unclear right now, MPCS decided to delay this change in the program until the building plans firm up. This proposed replacement does not have any impact on the rest of the program, therefore it can be implemented at a later date. Like the change in the professionally-related electives, it is also intended to complement this proposal rather than contradict it.

Page 42: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Appendix A - CC2001 Core Topics Coverage

A.1 Summary of CC2001 Core Topics

Here is a summary of the Computer science body of knowledge as defined by CC2001. Core topics are underlined. For a complete description, please consult Chapter 5 of the CC2001 (available at http://www.acm.org/sigcse/cc2001/cs-overview-bok.html).

DS. Discrete Structures (43 core hours)    DS1. Functions, relations, and sets (6)    DS2. Basic logic (10)    DS3. Proof techniques (12)    DS4. Basics of counting (5)    DS5. Graphs and trees (4)    DS6. Discrete probability (6)

PF. Programming Fundamentals (38 core hours)    PF1. Fundamental programming constructs (9)    PF2. Algorithms and problem-solving (6)    PF3. Fundamental data structures (14)    PF4. Recursion (5)    PF5. Event-driven programming (4)

AL. Algorithms and Complexity (31 core hours)    AL1. Basic algorithmic analysis (4)    AL2. Algorithmic strategies (6)    AL3. Fundamental computing algorithms (12)    AL4. Distributed algorithms (3)    AL5. Basic computability (6)    AL6. The complexity classes P and NP    AL7. Automata theory    AL8. Advanced algorithmic analysis    AL9. Cryptographic algorithms    AL10. Geometric algorithms    AL11. Parallel algorithms

AR. Architecture and Organization (36 core hours)    AR1. Digital logic and digital systems (6)    AR2. Machine level representation of data (3)    AR3. Assembly level machine organization (9)    AR4. Memory system organization and architecture (5)    AR5. Interfacing and communication (3)    AR6. Functional organization (7)    AR7. Multiprocessing and alternative architectures (3)

   AR8. Performance enhancements    AR9. Architecture for networks and distributed systems

OS. Operating Systems (18 core hours)    OS1. Overview of operating systems (2)    OS2. Operating system principles (2)

HC. Human-Computer Interaction (8 core hours)    HC1. Foundations of human-computer interaction (6)    HC2. Building a simple graphical user interface (2)    HC3. Human-centered software evaluation    HC4. Human-centered software development    HC5. Graphical user-interface design    HC6. Graphical user-interface programming    HC7. HCI aspects of multimedia systems    HC8. HCI aspects of collaboration and communication

GV. Graphics and Visual Computing (3 core hours)    GV1. Fundamental techniques in graphics (2)    GV2. Graphic systems (1)    GV3. Graphic communication    GV4. Geometric modeling    GV5. Basic rendering    GV6. Advanced rendering    GV7. Advanced techniques    GV8. Computer animation    GV9. Visualization    GV10. Virtual reality    GV11. Computer vision

IS. Intelligent Systems (10 core hours)    IS1. Fundamental issues in intelligent systems (1)    IS2. Search and constraint satisfaction (5)    IS3. Knowledge representation and reasoning (4)    IS4. Advanced search    IS5. Advanced knowledge representation and reasoning    IS6. Agents    IS7. Natural language processing    IS8. Machine learning and neural networks    IS9. AI planning systems    IS10. Robotics

IM. Information Management (10 core hours)    IM1. Information models and systems (3)    IM2. Database systems (3)    IM3. Data modeling (4)    IM4. Relational databases    IM5. Database query languages    IM6. Relational database design    IM7. Transaction processing    IM8. Distributed databases    IM9. Physical database design

Page 43: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

   OS3. Concurrency (6)    OS4. Scheduling and dispatch (3)    OS5. Memory management (5)    OS6. Device management    OS7. Security and protection    OS8. File systems    OS9. Real-time and embedded systems    OS10. Fault tolerance    OS11. System performance evaluation    OS12. Scripting

NC. Net-Centric Computing (15 core hours)    NC1. Introduction to net-centric computing (2)    NC2. Communication and networking (7)    NC3. Network security (3)    NC4. The web as an example of client-server computing (3)    NC5. Building web applications    NC6. Network management    NC7. Compression and decompression    NC8. Multimedia data technologies    NC9. Wireless and mobile computing

PL. Programming Languages (21 core hours)    PL1. Overview of programming languages (2)    PL2. Virtual machines (1)    PL3. Introduction to language translation (2)    PL4. Declarations and types (3)    PL5. Abstraction mechanisms (3)    PL6. Object-oriented programming (10)    PL7. Functional programming    PL8. Language translation systems    PL9. Type systems    PL10. Programming language semantics    PL11. Programming language design

   IM10. Data mining    IM11. Information storage and retrieval    IM12. Hypertext and hypermedia    IM13. Multimedia information and systems    IM14. Digital libraries

SP. Social and Professional Issues (16 core hours)    SP1. History of computing (1)    SP2. Social context of computing (3)    SP3. Methods and tools of analysis (2)    SP4. Professional and ethical responsibilities (3)    SP5. Risks and liabilities of computer-based systems (2)    SP6. Intellectual property (3)    SP7. Privacy and civil liberties (2)    SP8. Computer crime    SP9. Economic issues in computing    SP10. Philosophical frameworks

SE. Software Engineering (31 core hours)    SE1. Software design (8)    SE2. Using APIs (5)    SE3. Software tools and environments (3)    SE4. Software processes (2)    SE5. Software requirements and specifications (4)    SE6. Software validation (3)    SE7. Software evolution (3)    SE8. Software project management (3)    SE9. Component-based computing    SE10. Formal methods    SE11. Software reliability    SE12. Specialized systems development

CN. Computational Science and Numerical Methods (no core hours)    CN1. Numerical analysis    CN2. Operations research    CN3. Modeling and simulation    CN4. High-performance computing

Page 44: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

A.2 Core Coverage in Current ProgramThe PRC has conducted a survey of the current CSCI program to determine how well it covers these core areas. The results of this survey are summarised below.

A.2.1 Survey Methodology

CSCI Course coordinators were asked to fill out Course Content Charts (C3) in which they could report time spent on each ACM topic covered in their courses. These charts were combined into the CSCI Master Coverage Chart (CMCC), a large spreadsheet describing the coverage of all ACM topics in all CSCI courses.

There might be some inaccuracies in the results due to the difficulties inherent in the task of answering the survey. Accurate reporting of actual time spent in a course, by topic, is difficult to do from memory. Furthermore, separating core from non-core material after the fact is also difficult. Questions about how to report topics not listed in CC2001 may have lead to additional inaccuracies.

The CMCC is too large to include in this report, but it is available from the secretaries at the Computer Science office on request.

A.2.2 Current Core Coverage in CSCI by Unit

This table shows the coverage of core units by the required courses in the current program in Applied Computer Science at Ryerson which cover core material. This table is modeled after Figure 6-2 of Chapter 6 of the CC2001 report (available at http://www.computer.org/education/cc2001/final/chapter06.htm).

Course coordinators were asked to break down coverage into 10 minute chunks. As a result, some of the entries are not whole numbers.Term 1 2 3 4 5 6 Total

CPS MTH CPS CPS CPS CPS CPS CPS CPS CPS CPS MTH MTH CPSCSCI CC

2001Unit 109 110 209 211* 393 305 310 611 405 590 721 405 304 600

DS1   5.0                   3.0     8 6DS2 1.0 11.0   3.8                     16 10

DS3 0.4 10.0                   11.6     22 12

DS4                             0 5DS5     2.0     4.0           3.8     10 4

DS6                         6.0   6 6

PF1 18.0   7.0   12.0   3.0 4.6             45 9PF2 1.6   2.0   12.6 5.6     0.8           23 6PF3 3.2   15.0 4.0 9.4 9.2 0.6 3.8     2.0       47 14

PF4 0.6 2.0 0.4   0.4 3.8         1.0 1.6     10 5

PF5                             0 4

Page 45: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Term 1 2 3 4 5 6 TotalCPS MTH CPS CPS CPS CPS CPS CPS CPS CPS CPS MTH MTH CPS

CSCI CC 2001Unit 109 110 209 211* 393 305 310 611 405 590 721 405 304 600

AL1 0.2   1.0     4.0           1.6     7 4AL2     0.4     4.4         4.0       9 6AL3 2.0   1.0     13.2         1.0 0.6     18 12AL4                   3.0         3 3

AL5                     1.0 8.2     9 6

AR1   1.4   9.2     0.8               11 6AR2 0.6 0.8   10.8                   2.0 14 3AR3             12.4             20.0 32 9AR4             7.0               7 5AR5             3.8               4 3

AR6       7.0     2.0               9 7

AR7                             0 3

OS1 0.8                 2.0         3 2OS2 0.4               0.2 2.0         3 2OS3                   6.0       2.0 8 6OS4                   3.0         3 3

OS5             2.2     5.0         7 5

NC1 0.2                           0 2NC2                             0 7NC3                             0 3NC4                             0 3

PL1 0.6   0.2   0.8     0.4 0.2   2.0       4 2PL2 0.6                           1 1

PL3                             0 2PL4 0.6   0.2   1.0     0.6             2 3PL5 0.4   0.8   2.6     0.4 0.8           5 3

PL6 1.4   9.0         14.0             24 10

HC1                 0.8           1 6HC2                 0.4           0 2

GV1                           1.0 1 2GV2             2.0               2 1

IS1                     4.0       4 1IS2                     8.0       8 5

IS3                             0 4

IM1                 1.8           2 3IM2                 2.4           2 3IM3               0.2 0.4           1 4

Page 46: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Term 1 2 3 4 5 6 TotalCPS MTH CPS CPS CPS CPS CPS CPS CPS CPS CPS MTH MTH CPS

CSCI CC 2001Unit 109 110 209 211* 393 305 310 611 405 590 721 405 304 600

SP1 0.6     2.2                     3 1

SP2 0.4                           0 3SP3                             0 2SP4 0.4                           0 3SP5               0.2             0 2SP6                             0 3SP7                             0 2

SE1     0.6         7.0 1.6           9 8

SE2               1.2             1 5

SE3 0.2   2.0         1.0 1.0           4 3

SE4               0.4 0.6           1 2SE5               0.8 3.4           4 4

SE6 0.6             0.2 2.4           3 3

SE7               0.6 1.6           2 3SE8               0.6 1.8           2 3

Total 35 30 42 37 39 44 34 36 20 21 23 30 6 25 423 280

*Note: CPS211 in this table refers to the combination of the two courses CPS211 and EES208.

The few areas where the core material is not completely covered are displayed in bold. As can be seen from this table, the CSCI program does follow the CC2001 core coverage recommendations overall.

Page 47: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

A.3 Core Coverage in Proposed Program

This table shows the intended coverage of core units by the required courses in the proposed program in Applied Computer Science at Ryerson which cover core material. It follows the same model as the table in the previous section. This table’s numbers have been rounded to fit the page.

Term 1 2 3 4 5 6  Total

UnitsCPS CPS MTH CPS CPS CPS MTH CPS CPS CPS CPS CPS CPS CPS MTH CPS CPS New

CSCICC

2001109 1XX 110 209 211* 393 210 305 310 3XX 405 590 4XX 510 304 6XX 721

DS1     15       6                 1   22 6DS2 1   18   4                         23 10DS3 0   10       5                     15 12DS4             7                     7 5DS5       2     7 4                   13 4

DS6                             6     6 6

PF1 18     7   12     3 5               45 9PF2 2     2   13   6                   22 6PF3 3     15 4 9   9 1 4           1 2 48 14PF4 1     0   0 3 4               1 1 10 5

PF5                   4               4 4

AL1 0     1       4                   5 4AL2       0       4                 4 9 6AL3 2     1       13                 1 17 12AL4                       3           3 3

AL5                               10 1 11 6

AR1     1   9       1                 11 6AR2 1   1   11                         12 3AR3                 12                 12 9AR4                 7                 7 5AR5                 4                 4 3AR6         7       2                 9 7

AR7                 3                 3 3

OS1 1                     2           3 2OS2 0 1                   2           3 2OS3                       6           6 6OS4                       3           3 3

OS5                 2     5           7 5

NC1 0                       3         3 2NC2                         12         12 7NC3             1           9         10 3

NC4                         15         15 3

Page 48: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Term 1 2 3 4 5 6  Total

UnitsCPS CPS MTH CPS CPS CPS MTH CPS CPS CPS CPS CPS CPS CPS MTH CPS CPS New

CSCICC

2001109 1XX 110 209 211* 393 210 305 310 3XX 405 590 4XX 510 304 6XX 721

PL1 1     0   1       1 0           2 5 2PL2 1                             1   2 1PL3                   1           10   11 2PL4 1     0   1       1           2   5 3PL5 0     2   3         1         1   7 3

PL6 1     7           10               18 10

HC1       1             1             2 6HC2       2             0             2 2

GV1                                   0 2GV2                 2                 2 1

IS1                                 4 4 1IS2                                 8 8 5

IS3                                 4 4 4

IM1                     2     4       6 3IM2                     2     4       6 3

IM3                   0 0     6       7 4

SP1 1 1     2                         4 1SP2 0 3                               3 3SP3   2                               2 2SP4 0 3                               3 3SP5   2                               2 2SP6   3                               3 3

SP7   2                               2 2

SE1       1           7 2             10 8SE2   2               3 1             6 5SE3 0 2   2           1 1             6 3SE4                   1 1             2 2SE5                   2 4             6 4SE6 1                   3             4 3SE7                     3             3 3

SE8                     3             3 3

Total 35 21 45 44 37 39 29 44 37 40 25 21 39 14 6 27 27 530 280

*Note: CPS211 in this table refers to the combination of the two courses CPS211 and EES208.

The few areas where the core material would not be completely covered are displayed in bold. As can be seen from this table, the proposed changes would make the core coverage almost complete.

Appendix B – Course OutlinesCourse outlines for new and modified courses are included in this section. They can also be downloaded individually from the web in Microsoft Word format at http://www.scs.ryerson.ca/~quigley/Committees/PRC/CourseOutlines/ .

Page 49: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

CPS109 --- Computer Science ICALENDAR DESCRIPTIONDescription:An introductory programming course designed to introduce fundamental Computer Science concepts such as abstraction, modeling and algorithm design. Emphasis is placed on producing correct software. This course uses Java as its programming language.

Prerequisites: Precursors: Co-requisites:None None CPS1XX

Format: 1 Semester, 3 lecture hours, 1 lab hours per week.

SYLLABUS

Lecture Topics 1. Introduction to computing --- 4 hours2. Data manipulation --- 4 hours3. Introduction to objects --- 4 hours4. Control of execution (decisions) --- 4 hours5. Control of execution (iteration) --- 4 hours6. Methods --- 4 hours7. Errors, exceptions and testing --- 3 hours8. Arrays --- 3 hours9. Algorithms --- 3 hour10. Introduction to data structures --- 3 hours11. Other topics as time permits or review --- 3 hours

Lab Topics1. Introduction skills required to interact with our system the activity of programming the architecture of computers using the compiler recognising syntax and logic errors working with simple objects writing algorithms in plain English2. Fundamental data types integer and floating-point numbers writing arithmetic expressions in Java the importance of comments and good code layout defining and initialising variables and constants recognising the limitations of the int and double types reading user input and displaying program output changing the values of variables through assignment

Page 50: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

using the Java String class writing simple programs that read numbers and text, process input and display

results3. Introduction to classes and objects implementing simple classes understanding methods and instance variables encapsulation object construction copying object references4. Decisions implementing simple decisions writing expressions with relational operators implementing repeated and nested branches using Boolean variables using Boolean operations5. Iteration loops as repeated decisions types of common code that can be treated iteratively loop conditions and termination programming loops and choosing between while, for and do/while statements using loops to process character, word and line input nested loops6. Methods tracing the flow of a method's execution method naming and commenting parameter passing determining the scope of variables using static methods decomposing complex tasks into simpler ones designing methods that solve practical problems programming recursive methods7. Arrays using arrays to collect objects passing arrays to functions common array algorithms building classes containing arrays using two-dimensional arrays8. Debugging designing stubs for testing components of your programs in isolation the principles of test case selection and evaluation using assertions to document program assumptions strategies for effective debugging9. Algorithms bubble sort, linear and binary search algorithms algorithms for the same task that differ widely in performance big-Oh notation

Page 51: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

estimating and comparing the performance of algorithms10. Introduction to data structures -- linked lists creation of list elements insertion of list elements

FOR DEPARTMENTAL USE

Hardware/Software Support:H/W: Unix/NT workstationsS/W: Java compiler and/or IDE

ACM/IEEE CoverageDS2 Basic logic 1 core hours (of 10)PF1 Fundamental programming constructs 18 core hours (of 9)PF2 Algorithms and problem-solving 2 core hours (of 9)PF3 Fundamental data structures 3 core hours (of 14)PF4 Recursion 1 core hours (of 5)AL3 Fundamental computing algorithms 2 core hours (of 12)AR2 Machine level representation of data 1 core hours (of 3)AR3 Assembly level machine organization 1 core hours (of 9)OS1 Overview of operating systems 1 core hours (of 2)PL1 Overview of programming languages 1 core hours (of 2)PL2 Virtual machines 1 core hours (of 1)PL3 Introduction to language translation 1 core hours (of 2)PL4 Declarations and types 1 core hours (of 3)PL5 Abstraction mechanisms 1 core hours (of 3)PL6 Object-oriented programming 1 core hours (of 10)SP1 History of computing 1 core hours (of 1)SE1 Software design 1 core hours (of 8)SE6 Software validation 1 core hours (of 3)

CPS 1XX – Social and Professional Issues in Computer Science

ObjectivesStudents who complete CPS1XX should have a good understanding of the social and legal issues related to computer science. It is hoped that this will guide them when they have to make difficult decisions throughout their career. The CPS1XX labs will also introduce them to the systems they will use at Ryerson and some tools and techniques for software development. As part of this course’s evaluation, students will have to write individual essays which will also be used to evaluate their English proficiency early in the program. Students who need remedial help will be directed to work with the Writing Center to improve their communication skills.

Page 52: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

CALENDAR DESCRIPTION

Description:This course introduces students to the social and professional issues that arise in the context of computing. It also introduces them to some of the systems and tools they will use in their studies and professional practice.

Prerequisites: Precursors: Co-requisites:None None CPS109

Format: 1 Semester, 2 lecture hours, 1 lab hours per week.

SYLLABUS

Lecture Topics

1. History of Computing – 1 hour Prehistory – the world before 1946 History of computer hardware, software, networking Pioneers of computing2. Social Context of Computing – 3 hours Social implications of computing and networked communication Growth of, control of, and access to the Internet Gender-related issues International issues3. Methods and Tools of Analysis – 2 hours Making and evaluating ethical arguments Identifying and evaluating ethical choices Understanding the social context of design Identifying assumptions and values4. Professional and Ethical Responsibilities – 3 hours Community values and the laws by which we live The nature of professionalism and the role of the professional in public policy Description and analysis of various forms of professional accreditation Maintaining awareness of consequences Codes of ethics, conduct, and practice including ethical dissent and whistle-blowing “Acceptable use” policies for computing in the workplace Harassment and discrimination5. Risks and Liabilities of Computer-Based Systems – 2 hours Historical examples of software risks Implications of software failure Risk assessment and management6. Intellectual Property – 1 hour Foundations of intellectual property Copyright, patents, and trade secrets Software piracy

Page 53: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Transnational issues concerning intellectual property7. Privacy and Civil Liberties – 1 hour Ethical and legal basis for privacy protection Privacy implications of massive database systems Technological strategies for privacy protection Freedom of expression in cyberspace International and intercultural implications8. If time permits: Computer Crime Economic Issues in Computing

Lab TopicsLabs 1 and 2: Introduction to Computing at Ryerson Introduction to computer hardware Ryerson’s and SCS’s system layout Logging into different systems using various methods Methods for remote access to other computers and file transfers Reading mail, news and web browsing Visit of the Ryerson Writing CenterLab 3: UNIX Editors Introduction to PICO, vi, emacsLabs 4 and 5: UNIX and NT File management Hierarchical file, directory and drive structures, filenames, absolute and relative paths SCS’ distributed file system NT file management utilities UNIX file commands and options NT file security and utilities UNIX file security, permissions and associated commandsLab 6: UNIX Commands Glob constructs, special characters and shell regular expressions I/O streams, devices (e.g. /dev/null), I/O redirection, filters and regular expressions (e.g. grep,

find, head, tail, cut, tr, sed), pipes, teeLab 7: UNIX Environment and Processes Processes, jobs, background/foreground, suspend, kill History editing Shell profile and rc files (e.g. .profile, .kshrc) Alias, shell environment (e.g., PATH, HOME)Other labs (order to be determined): Introduction to Web Development (1 lab) Symbolic Computation with MAPLE (1 lab) Spreadsheets (1 lab) Debugging techniques & tools (1 lab) Testing techniques (1 lab)

FOR DEPARTMENTAL USE

Page 54: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Hardware/Software Support:H/W: PC and UNIX Labs, PT classroom for at least one of the lecture hoursS/W: TBA

ACM/IEEE CoverageSP1 History of Computing 1 core hours (of 1)SP2 Social Context of Computing 3 core hours (of 3)SP3 Methods and Tools of Analysis 2 core hours (of 2)SP4 Professional and Ethical Responsibilities 3 core hours (of 3)SP5 Risk and Liabilities of Computer-Based Systems 2 core hours (of 2)SP6 Intellectual Property 1 core hours (of 3)SP7 Privacy and Civil Liberties 1 core hours (of 2)SE3 Software Tools and Environments 1 core hour (of 3)

CPS209 Computer Science II

OBJECTIVESThe objective of this course is to provide students with a solid foundation in computer programming using the object-oriented paradigm. The student is introduced to console applications, applets and graphical applications. Basic data structures (list, queue and stack) are introduced as abstract data types, and their implementation as arrays and linked structures is discussed. Throughout the course emphasis is placed on good programming style and documentation. The programming language for this course is Java.

CALENDAR DESCRIPTIONDescription:This course is a continuation of CPS 109. Whereas the emphasis in CPS 109 is on the procedural paradigm of programming, the emphasis in CPS 209 is on object-oriented programming and design principles. The course introduces inheritance, interfaces, applets, event handling, graphical user interfaces, basic algorithms and data structures (stacks, lists and queues). The Java programming language will be used.

Prerequisites: Precursors: Co-requisites:CPS 109 None None

Format: 1 Semester, 3 lecture hours, 1 lab hours per week.

SYLLABUS

Lecture Topics 1. Introduction – 3 hours

Course overview Review of control structures, methods, primitive data types

Page 55: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Arrays and vectors2. Object-oriented Programming – 6 hours

Classes and objects Encapsulation and information hiding Separation of behaviour and implementation Inheritance, class hierarchies, polymorphism Interfaces

3. Fundamental computing algorithms – 3 hours Sorting: selection sort, insertion sort, merge sort Searching: linear and binary search algorithms

4. Fundamentals of event-driven programming – 6 hours Events, event listeners, event sources Event adapters Frame windows, components and text input

5. Introduction to graphical user interfaces – 6 hours Layout management Buttons, menus, text components

6. Streams and exceptions – 6 hours Streams, readers and writers Reading and writing text files Introduction to exception handling Command line arguments

7. Introduction to data structures – 9 hours Linked data structures List, stack and queue abstract data types

Lab Topics1. Class and Object Hierarchies – A pencil and paper exercise to reinforce the concepts of class versus object and the ‘is a’ versus the ‘has a’ hierarchies.2. Applets – To write applets that display simple graphical shapes, text and color.3. Inheritance -- To become familiar with the object-oriented concept of inheritance using Java by designing and implementing a simple class hierarchy. 4. Interface -- To experiment with the comparable interface. 5. Event-driven programming -- To modify and write applets involving events, event listeners and event sources.6. Event-driven programming – To modify and write graphical programs involving events. 7. Common user interface components – To modify and write graphical programs involving menus, radio buttons, check boxes, and slide bars.8. File I/O – To write a program which reads and writes text files while handling exception and obtaining file names from command line arguments.9. Random access – To write a program which manipulates a file of employee records using random access10. Linked list – A pen and paper exercise to reinforce the concept of a linked list and operations of insertion and deletion.

Page 56: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

11. Abstract data type – To write a class which implements the abstract data type set by using java.util.LinkedList .

FOR DEPARTMENTAL USEHardware/Software Support:H/W: UNIX/NT labsS/W: Java compiler or IDEACM/IEEE CoveragePF1 Fundamental programming constructs 3 core hours (of 9)PF2 Algorithms and problem-solving 3 core hours (of 9)PF3 Fundamental data structures 6 core hours (of 14)PF5 Event-driven programming 3 core hours (of 4)AL3 Fundamental computing algorithms 1 core hours (of 12)PL2 Virtual machines 1 core hours (of 1)PL5 Abstraction mechanisms 2 core hours (of 3)PL6 Object-oriented programming 7 core hours (of 10)HC1 Foundations of human-computer interaction 1 core hours (of 6)HC2 Building a simple graphical user interface 2 core hours (of 2)SE1 Software design 1 core hours (of 8)SE2 Using APIs 1 core hours (of 5)

CPS 3XX (formerly CPS611) – Object-Oriented Programming, Analysis & Design

Objectives

This course provides the student with an in-depth understanding of the concepts related to the Object-Oriented paradigm and an introduction to the development of software using the paradigm. The course follows up on the Object-Oriented paradigm introduction in CPS209 and, as described below, CPS3xx (CPS611) is essentially paired with the follow-up CPS405.The introductory material in the course is a review and extension of the CPS209 coverage, based on the second year students’ relative maturity which lends itself to an appreciation of the often subtle distinctions among the various features in an Object-Oriented exposition. For example, the same syntactical token, the variable, is used for class variables, instance variables, method variables, locally scoped block variables, and method parameters (the latter by value, by address, and by reference - a distinction not fully seen earlier in Java or C). The additional maturity further allows the complex notion of abstraction, first seen in CPS209, to be reinforced. This maturity also helps in the study of collection classes which have traditionally posed a problem for many students, as what would at first appear to be a clear separation between a collection object, its component objects, and both of their instance variables has traditionally presented a marked comprehension

Page 57: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

problem. Likewise, the delicate distinction between typing and classes can also be explored.The short paradigm review is followed by a brief study of the pure Object-Oriented Smalltalk language to cleanly identify the features of the paradigm just discussed: abstraction, encapsulation, inheritance concepts, and especially the notion of message passing which historically has been frequently missed by the beginning student.A study of relationships between classes, between objects, and between classes and objects, is followed by an in-depth study of the Unified Modelling Language which captures these relationships in the context of a programming problem. A UML software tool is used in the major team-based course project which will extend into the follow-up course, CPS405. In this project, teams of four students will perform the initial Analysis and Design iterations of a programming problem presented as a detailed written problem statement. In the follow-up course, a completed set of Use Cases and UML drawings (the "almost right answer" to the CPS3xx project) will start the students off in the implementation (and re-iteration of Analysis and Design) of the project. In this way the students will use CPS3xx to become very familiar with the problem space, and CPS405 to complete the implementation of the problem.The CPS3xx (CPS611) course presents a relatively complete coverage of the C++ language (which will be used in CPS405 to implement the project). The course concludes with an introductory coverage of the sizeable topic of Design Patterns. Time permitting, the concept of Object Brokers may be introduced. CALENDAR DESCRIPTION

Description:Object-Oriented Programming, Analysis and Design. The course further explores the Object-Oriented paradigm emphasizing the Object Model and relationships between the various artefacts. The Unified Modelling Language to capture these relationships is studied in depth throughout the course. The pure Smalltalk language is briefly introduced to reinforce the OO paradigm. A major analysis and initial design project is done in teams using the UML to set the parameters for the problem space; this is used as a basis for the implementation-focused project in the follow-up CPS405 course. An essentially complete coverage of C++ is presented for use in the project. Design patterns are introduced and, time permitting, Object Brokers are also introduced.

Prerequisites: Precursors: Co-requisites:CPS209, CPS393 None None

Format: 1 Semester, 3 lecture hours, 0 lab hours per week (1 Lect. hr per week is used as a lab in weeks 3-6).

SYLLABUS

Page 58: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Lecture Topics 1. Object Oriented Concepts and Paradigm Review

Paradigm Review The Object Model

Abstraction Classes, Objects, and Relationships

Typing vs. Classes UML Introduction

 2. Smalltalk

Smalltalk History, Environment Smalltalk Language Elements Smalltalk Basic Classes

Collection Classes Streams and File Streams

 3. Object-Oriented Analysis and Design

Major Methodologists, Contrasting A&D Approaches Historical Booch A&D Methodology Contemporary OO A&D

Rational Unified Process A&D Notation

The UML for A&D A Simplified Process

Project Introduction4. C++

"Non-Object-Oriented" C++ Extensions Comments Declaration Modifications Explicit Type Conversion Function Prototypes Function Name Overloading Default Parameters Unspecified Number Of/No Arguments Reference Parameters Inline Function Specifier New, Delete

"Object-Oriented" C++ Extensions Classes and Objects Private, Protected, Public This Static Members Program Organization Scope Constructors and Destructors

Page 59: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Inheritance Polymorphism With Inheritance in C++ Operator Overloading Friends Templates Stream I/O and Formatting Exception Handling

5. Patterns Patterns Rationale and History The GHJV SW Pattern Template The GHJV Pattern Catalog Sample Creational Patterns Sample Structural Patterns Sample Behavioural Patterns Patterns and Frameworks

6. Object Brokers Lab Topics1. Smalltalk exercises

FOR DEPARTMENTAL USE

Hardware/Software Support: H/W: NT lab S/W: Smalltalk, Rational Rose, C++

ACM/IEEE CoveragePF1 Fundamental programming constructs 4.6 core hours (of 9)PF3 Fundamental data structures 3.8 core hours (of 14)PL1 Overview of programming languages 0.4 core hours (of 2)PL4 Declarations and types 0.6 core hours (of 3)PL5 Abstraction mechanisms 0.4 core hours (of 3)PL6 Object-oriented programming 14.0 core hours (of 10)SE1 Software design 7.0 core hours (of 8)SE2 Using APIs 1.2 core hours (of 5)SE3 Software tools and environments 1.0 core hours (of 3)SE4 Software processes 0.4 core hours (of 2)SE5 Software requirements and specifications 0.8 core hours (of 4)SE6 Software validation 0.2 core hours (of 3)SE7 Software Evolution 0.6 core hours (of 3)SE8 Software Project Management 0.6 core hours (of 3)SP5 Risks and liabilities of computer-based systems 0.2 core hours (of 1)PL9 Type systems ElectiveHC4 Human-centered software development ElectiveHC6 Graphical user-interface programming Elective

Page 60: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

SP9 Economic issues in computing ElectiveSE9 Component-based computing ElectiveSE10 Formal methods Elective

CPS 405 – Software EngineeringOBJECTIVESThis is primarily a first course in software engineering. The focus of the course is a major Object-Oriented programming project which is a continuation of the major project started in CPS3xx. Whereas in CPS3xx the students focus on the initial Analysis and Design phases thereby obtaining a solid view of the problem space, in CPS405 they are given the “almost right answer” to the Analysis and initial Design phase, consisting of a set of reasonably complete Use Cases and other UML artifacts as required; in teams of 4, they concentrate on the normal Object-Oriented iterations of this initial analysis and design while performing a complete development of the substantial application with the emphasis being on implementation and maintenance. The scheduled lab hours are devoted to the project, comprising tutorials, progress/activity monitoring, oral presentations and software demonstrations/evaluations.

The project, as much as possible, provides a simulation of an actual Object-Oriented software development scenario in industry. A “client” (ideally another faculty member or, failing that, the tutor) provides information about the desired system and essentially becomes a team member. A faculty “administrative manager” (the course professor) provides necessary information about further analysis and the design issues, monitors “personnel issues”, and provides some technical help to address implementation issues. Project evaluation is shared between the two advisors.

The lectures cover topics in Object-Oriented software engineering.

CALENDAR DESCRIPTION

Description:Software Engineering. Basics of software engineering, including a large team based development project continued from CPS3xx (CPS611).

Prerequisites: Precursors: Co-requisites:CPS 305, CPS3xx (CPS611) None None

Format: 1 Semester, 2 lecture hours, 2 lab hours per week.

SYLLABUS

Lecture Topics

1. Introduction Historical Development of the Software Engineering Discipline

Page 61: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Object-Oriented Software Development Lifecycle Classical Software Development Lifecycle Overview Major Project Structure and Expectations Review of CPS3xx Project Initial Analysis and Design

2. Computer Assisted Software Engineering Definition Tools UML Based Analysis Capture Tools

3. Requirements Analysis and Specification System Overview Specification (Review) Functional and Non-Functional Requirements Analysis (Review)

Data Dictionary Object-Oriented Analysis and Design Methodology Overview (Review) Use Case Analysis (Review and Application)

Three Level Use Case Development Overview, Outline, Detail

Use Case Diagrams and System/Subsystem Packages 4. Initial Analysis and Design

Starting from Pre-Defined Project Use Case Initial Analysis Class and Object Identification with UML Diagrams (Review)

UML Static (Class and Object) Interaction Diagrams (Review and Application) Sequence Diagram and Class Diagram Interdependent Project Development

Collaboration Diagram Exposition UML Dynamic (Behaviour) Interaction Diagrams (Review and Application)

Statechart and Activity Diagram Project Development Impact on Initial Class and Sequence Diagrams

UML Component and Deployment Diagrams Component and Deployment Diagram Project Development

User Interface Considerations and Interface Types Selecting an appropriate interface

Additional Program Design Considerations Selecting Algorithms Documenting Algorithms Language Considerations

Design Pattern Project Development as Appropriate

5. Analysis and Design Iteration Iteration Process Methodology Milestones

6. Testing Definition of Testing Levels of Testing

Page 62: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Black and White Box Testing Tools and Techniques for Testing

7. Extreme Programming Pair Programming Test Development

8. Introduction to External Data Structures and DBMS Flat file organization Hierarchical, Network, and Relational Systems Basic Operations on Relations Normalization

Lab Topics

Project Development

FOR DEPARTMENTAL USE

Hardware/Software Support:H/W: NT labS/W: Rational Rose, C++, MySQL

ACM/IEEE CoveragePF2 Algorithms and problem-solving 0.8 core hours (of 6)PL1 Overview of programming languages 0.2 core hours (of 21)PL5 Abstraction mechanisms 0.8 core hours (of 3)OS2 Operating system principles 0.2 core hours (of 2)HC1 Foundations of human-computer interaction 0.8 core hours (of 6)HC2 Building a simple graphical user interface 0.4 core hours (of 2)IM1 Information models and systems 1.8 core hours (of 3)IM2 Database systems 2.4 core hours (of 3)IM3 Database modeling 0.4 core hours (of 4)SE1 Software design 2.4 core hours (of 8)SE2 Using APIs 0.6 core hours (of 5)SE3 Software tools and environments 1.0 core hours (of 3)SE4 Software processes 0.8 core hours (of 2)SE5 Software requirements and specifications 4.0 core hours (of 4)SE6 Software validation 2.8 core hours (of 3)SE7 Software evolution 1.4 core hours (of 3)SE8 Software Project Management 3.4 core hours (of 3)OS8 File Systems ElectiveOS10 Fault tolerance ElectiveOS11 System performance evaluation ElectiveHC4 Human-centered software development ElectiveHC5 Graphical user-interface design Elective

Page 63: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

IM5 Database query languages ElectiveIM6 Relational database design ElectiveIM9 Physical database design [elective] ElectiveSE9 Component-based computing ElectiveSE12 Specialized systems development Elective

CPS 4XX – Network-Centric ComputingObjectivesStudents who have completed this course will have a general understanding of issues surrounding telecommunications and networking. Particular attention will be paid to security issues and the World Wide Web. Students will also gain experience programming active web pages.

CALENDAR DESCRIPTION

Description:This course introduces students to issues surrounding telecommunications, and computer networking. Topics include: network architectures, communication protocols, networking layers, network security measures, cryptography, and the World Wide Web. Students will also learn how to develop active web pages.

Prerequisites: Precursors: Co-requisites:CPS209, CPS393, MTH210 None None

Format: 1 Semester, 2 lecture hours, 1 lab hours per week.

SYLLABUS

Lecture Topics – will not necessarily be covered in this order1. Introduction to net-centric computing– 3 hours

Background and history of networking and the Internet Network architectures The range of specializations within net-centric computing

Networks and protocols Networked multimedia systems Distributed computing Mobile and wireless computing

2. Introduction to Data Communication – 3 hours Network standards and standardization bodies The ISO 7-layer reference model in general and its instantiation in TCP/IP Circuit switching and packet switching

3. Introduction to Networking – 9 hours Streams and datagrams

Page 64: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Physical layer networking concepts (theoretical basis, transmission media, standards)

Data link layer concepts (framing, error control, flow control, protocols) Internetworking and routing (routing algorithms, internetworking, congestion

control) Transport layer services (connection establishment, performance issues)

4. Introduction to Network security- 6 hours Fundamentals of cryptography (review from MTH210) Secret-key algorithms (mono-alphabetic, poly-alphabetic ciphers) Public-key algorithms Authentication protocols Digital signatures

5. The web as an example of client-server computing – 9 hours Web protocols Client-server relationship Characteristics of web servers

Handling permissions File management Capabilities of common server architectures

Web technologies Server-side programs Common gateway interface (CGI) programs Client-side scripts The applet concept

Lab Topics – will not necessarily be covered in this orderLab 1 – Web Site Standardization:

Standardize the look of a given web site using server-side directives, cascading style sheets and frames.

Lab 2 – Browser ScriptingModify an interactive HTML form using Javascript

Lab 3 – Applets Write a Java Applet for a web page.

Lab 4 – Mono-Alphabetic Ciphers Write mono-alphabetic encryption and decryption routines

Lab 5 – Poly -Alphabetic Ciphers Write poly-alphabetic encryption and decryption routines with private keys

Lab 6 – PGP Generate and distribute a PGP key pair and use the PGP package to send an encrypted e-mail message

Lab 7 – CGI Scripting Write a small sh CGI script.

Lab 8 – Server Scripting Add PHP commands to a web page.

Lab 9 – Servlets Write a small Java servlet to process information collected in a web form.

Lab 10 – Cookies

Page 65: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Use cookies to add a layer of security to a web site.

FOR DEPARTMENTAL USE

Hardware/Software Support: H/W: Web server dedicated to CPS4XX. S/W: Perl, Java, PHP, latest version of Apache server, Netscape, Internet Explorer

browsers

ACM/IEEE CoverageNC1 Introduction to Net-Centric Computing 3 core hours (of 2)NC2 Communication and Networking 12 core hours (of 7)NC3 Network security 9 core hours (of 3)NC4 The web as an example of client-server computing 15 core hours (of 3)

CPS 6XX – Theory of ParsingOBJECTIVES

It is expected that students who successfully complete this course will have a basic understanding of finite state automata, Turing machines and their applications to language translation and relationship to computability. These students will be able to write a very simple interpreter using tools such as YACC and LEX.

CALENDAR DESCRIPTION

Description:This course introduces students to scanning and parsing and the theory of computation that supports these activities. Topics include: regular expressions and languages, finite state automata, scanning, context-free languages, pushdown automata, parsing, Turing machines, computability, and NP-completeness.

Prerequisites: Precursors: Co-requisites:MTH210, CPS305 None None

Format: 1 Semester, 3 lecture hours, 1 lab hours per week.

SYLLABUS

Lecture and Lab Topics1. Introduction – 3 hours

Translators, compilers, interpreters and their uses Structure of translators, compilers and interpreters Review of Cartesian product, Strings and sets of strings

Page 66: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

2. Lexical analysis – 9 hours Regular Expressions and Regular Languages Deterministic and non-deterministic Finite State Automata (DFA and NDFA) Scanning Scanner generators: e.g. LEX

3. Languages and grammars – 12 hours Classes of grammars: regular, context-free, context-sensitive, LL, LR Associated languages Backus-Naur Form Chomsky Normal Form Derivations and parse trees Ambiguity, recursion, left-factoring

4. Syntactic analysis – 12 hours Deterministic and non-deterministic push-down automata Recursive descent parsing Shift-reduce parsing Parser generators: e.g. YACC

5. Introduction to Interpretation and Compilation – 4 hours Semantic actions

6. Computability – 8 hours Turing machines and their variants Non-deterministic Turing machines The Church-Turing thesis Uncomputable functions The halting problem

7. Complexity Classes – 4 hours The language classes P and NP NP-Completeness Reduction techniques Evidence for P NP

FOR DEPARTMENTAL USE

Hardware/Software Support: H/W: UNIX labs S/W: Yacc and Lex running on UNIX systems.

ACM/IEEE CoverageAL5 Basic Computability 6 core hours (of 6)AL6 The complexity classes P and NP ElectiveAL7 Automata Theory ElectivePL2 Virtual machines 1 core hours (of 1)PL3 Introduction to language translation 3 core hours (of 3)PL8 Language translation systems Elective

Page 67: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

MTH 110 – Discrete Mathematics I

Objectives

It is expected that students who successfully complete this course will have a basic understanding of logic and discrete mathematics and the ability to structure a proof or argument and to apply mathematical methods to solve programming problems. Students will also get an opportunity to improve their oral presentation skills during the labs, where they will be required to make oral presentations of mathematical material.

CALENDAR DESCRIPTION

Description:This course covers the fundamentals of discrete mathematics with a focus on proof methods. Topics include: naïve set theory, notation for modern algebra, propositional and predicate logic, relations, elementary number theory.

Prerequisites: Precursors: Co-requisites:None None None

Format: 1 Semester, 3 lecture hours, 1 lab hours per week.

SYLLABUS

Lecture Topics 1. Propositional calculus – 12 hours

Statements and connectives Relationship between English statements and statement forms. Truth tables, tautologies, contradictions, Logically equivalent forms, De Morgan's Laws. Applications to circuit design. Logical implication, contrapositive, converse, inverse, if and only if. Arguments, valid conclusions. Bitwise arithmetic and applications to programming.

2. Predicate Calculus – 6 hours Quantifiers and English statements Manipulation of English statements and their equivalent symbolic form. Generalized De Morgan Laws Multiple quantifiers Counter-examples Necessary and sufficient conditions, domain changes Generalized arguments

3. Proof Techniques – 6 hours Axioms, theorems, lemmas and corollaries

Page 68: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Proof structure Direct proofs: existential, by exhaustion, deduction, construction, counterexample Indirect proofs by contradiction, contraposition Common pitfalls and mistakes in proofs

4. Number Theory– 6 hours Number sets Primes and composites, divisibility Unique factorization theorem Div, mod, quotient-remainder theorem Gcd, Euclid's algorithm; rational numbers.

5. Set Theory – 5 hours Naïve set theory and Venn diagrams. Set inclusion and set identities. Empty set, disjointedness, partitions.

6. Relations – 5 hours Binary relations and directed graphs Reflexivity, symmetry, transitivity Equivalence relations, equivalence classes Antisymmetry; partial and total orders.

Lab Topics Mathematical problems related to the lectures.

FOR DEPARTMENTAL USE

Hardware/Software Support: H/W: None S/W: Access to the WWW

ACM/IEEE CoverageDS1 Functions, Relations and Sets (except for functions) 15 core hours (of 6)DS2 Basic Logic 18 core hours (of 10)DS3 Proof Techniques (except for induction) 10 core hours (of 12)

MTH 210 – Discrete Mathematics II

ObjectivesStudents will complete their acquisition of fundamental discrete mathematics concepts begun in Discrete Mathematics I. These basic skills are prerequisite to various later courses.

CALENDAR DESCRIPTION

Description:

Page 69: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

This course is a continuation of Discrete Mathematics I. Topics covered include: functions, graphs, induction, recursion, regular expressions, counting and finite fields with applications to cryptography.

Prerequisites: Precursors: Co-requisites:MTH110 None None

Format: 1 Semester, 3 lecture hours, 1 lab hours per week.

SYLLABUS

Lecture Topics1. Functions – 6 hours

Definitions and notation Functions in computer science One-to-one, onto, and bijective functions Composition of functions Cardinality of sets, diagonalization Generalized pigeonhole principle

2. Graphs and Trees – 7 hours Introduction to graphs and digraphs terminology and special graphs Paths and circuits, Eulerian and Hamiltonian circuits Matrix representations of graphs Isomorphism of graphs

3. Recursion and Induction – 9 hours Weak and strong induction Recursive and iterative sequences Well ordering Solving recurrence relations Proving conjectured solutions using mathematical induction General recursive definitions

4. Regular Expressions – 3 hours Introduction to regular expressions

5. Counting – 7 hours Counting and probability Possibility trees Multiplication and addition rule Permutations and combinations Pascal's triangle The binomial theorem Generating functions

6. Finite Fields – 7 hours Simple group theory, Finite fields, Applications to cryptography (RSA)

Page 70: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Lab Topics Mathematical problems related to the lectures.

FOR DEPARTMENTAL USE

Hardware/Software Support: H/W: None S/W: None

ACM/IEEE CoverageDS1 Functions, Relations, and Sets (Functions) 6 core hours (of 6)DS3 Proof Techniques (Induction) 5 core hours (of 12)DS4 Basics of Counting 7 core hours (of 5)DS5 Graphs and Trees 7 core hours (of 4)NC3 Network Security 1 core hours (of 3)

MTH 716 – Design and Codes

Teaching Modes Three hours classroom lecture, one hour lab.

Objectives Students will learn the basics of design theory, with particular emphasis on error correcting and detecting codes. Such codes are widely used in network communications. The student will also be exposed to other applications of design such as scheduling and routing problems.

Course Evaluation

Term test 30%Labs 20%Final exam 50%

Course Outline

Introduction to codes Hamming distance, minimum distance. Error correction and detection. Perfect codes. Dual codes.

Finite geometries Linear codes.

Designs Latin squares and Transversal Designs. Shannon's Theorem. Authentication codes. Threshold schemes. One time pad.

Block designs Designs from geometries. Triple systems. Block designs and their codes. Scheduling problems.

Page 71: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Codes Assumus Mattson Theorem. Hamming designs/codes. Reed Muller codes. Golay codes. Codes from triple systems.

Prerequisites: MTH 210 (Discrete Mathematics II)

Recommended Texts

Designs, Graphs, Codes and Their Links, J.H. Van Lint, Peter J. Cameron, London Mathematical Society Student Texts, No 22, 1992. Design Theory, Charles C. Lindner, Christopher A. Rodger CRC Press (Series on Discrete Mathematics and Its Applications), 1997. Designs and Their Codes, E. F. Assmus, J. D. Key, Cambridge, 1992

MTH 816 – Cryptography

Teaching Modes Three hours classroom lecture, one hour lab.

Objectives Students will learn the basic cryptographic schemes used in industry and the mathematics behind them. Students will become familiar with both public and private key schemes. The main uses: authentication, validation and encryption will be understood. System vulnerabilities will also be considered.

Course Evaluation

Projects 80%Labs 20%

Course Outline

This course will consider the mathematics of modern cryptographic schemes, including commonly used public and private key systems. System vulnerabilities will also be considered.

Introduction Introduction to Ciphers. Authentication, validation and encryption. Public vs. private keys. Finite fields. Properties of a good cipher.

Simple Ciphers ROT n, Matrix schemes. Probabilistic attacks, brute force.

Authentication and Validation MD5, Digital Signatures, integrity checks, hash functions.

Private key encryption Block ciphers, 3DES, IDEA, AES (Rijndael)

Public key encryption RSA, Rabin-Williams, Integer Factorization problem (IFP). DSA, Diffie, Hellman, Discrete logarithm problem (DFP). ECC, Elliptic Curves, Elliptic curve discrete logarithm problem (ECDLP) (if time permits).

Page 72: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Prerequisites: MTH 210 (Discrete Mathematics II).

Recommended Texts

Cryptography: Theory and Practice, Douglas R. Stinson. CRC Press, 1995. Handbook of Applied Cryptography, Alfred J. Menezes, Paul C. Van Oorschot, Scott A. Vanstone. CRC Press, 1996. Applied Cryptography: Protocols, Algorithms, and Source Code in C, 2nd Edition, Bruce Schneier. John Wiley & Sons, 1995

Page 73: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

APPENDIX C – ADVISORY COMMITTEE FEEDBACKCopies of the previous version of this report were sent to the CSCI Advisory Committee in August 2002 for feedback. A meeting with the Advisory Committee was held on September 12th 2002, the most acceptable date for a majority of the members of the Advisory Committee. Unfortunately 3 members of the Committee cancelled at the last minute, but they sent their comments by electronic mail instead.

Generally speaking the Advisory Committee was pleased with the proposed changes. They drafted an endorsement letter (attached to the end of this document) recommending the early adoption of these changes and stating that “The proposed curriculum enhances the CSCI program y providing relevant and timely changes that will serve to better position students for the needs of the marketplace”. The main criticism was that this proposal still does not go far enough to address the communications problems of CSCI graduates. There were a few other suggestions which are noted below in the minutes of the meeting and in the correspondence received.

C.1 Minutes of the Advisory Committee MeetingTime: September 12, 2002, 6:00PMLocation: Ryerson University Room A250AAttendees:

Advisory Committee:Mr. David Jones – Telus Enterprise SolutionsMr. Tony Ponzo – PlateSpin IncMr. Paul Salvini – Side Effects Software

Ryerson School of Computer ScienceDr. Dave Mason – representing the Chair of the Department of Mathematics, Physics, and Computer ScienceProfessor Sophie Quigley – Chair of the SCSC Program Review CommitteeDr. Josh PanarProfessor Eric. HarleyDr. Marcus Santos

Regrets: (see correspondence)Professor Alain Lan – Chair of the Department of Mathematics, Physics, and Computer ScienceDr. Mikk Anyas-Weiss – Ontario HydroMr. Grant Davis – Grand AssociatesMs. Anne Lawrence - Hewlett-Packard (Canada) Ltd.

Minutes Welcome and Introductions – D. Mason Summary of Proposed Changes – S. Quigley Discussion of Proposed Changes:

- The proposed changes offer a good balance of topics and good choices of options- The changes are current without being trendy

Page 74: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

- The changes seem to address most of the concerns raised at the last meeting of this committee (for the periodic program review)

- Members support the removal of Calculus 2 from the compulsory curriculum.- XML needs to be addressed formally in the curriculum, possibly in CPS405 or CPS4xx.- CSCI should offer an e-commerce elective or e-commerce option.- The program needs to reinforce C++ programming skills. Using C++ in one course

(CPS3xx) is not enough.- It is a shame that CPS040 (Thesis) is not compulsory anymore at it provided a good

opportunity for students to hone their writing skills.

Other Discussions: Once the discussion of the proposed changes was finished, other possible future program issues were discussed:- Changing the name of the degree to “Computer Science” instead of “Applied Computer

Science” would be alright from an employer’s point of view.- Getting the program accredited was not particularly pressing, but also alright provided an

appropriate accreditation body was found.- Offering a software engineering option/program would be a positive improvement to the

program.

C.2 Correspondence and Endorsements

From Grant Davis:Date: Wed, 18 Sep 2002 16:10:51 -0400From: Grant Davis <[email protected]>Subject: CSCI Program curriculum changesTo: [email protected]

Professor Quigley,

I have reviewed the Proposal for CSCI Program Curriculum Changes (v 3.0) and I am pleased to state that I am in strong support of the initiatives described. In particular, three areas caught my attention - Calculus, Net-centric computing and Database theory.

First I must comment on how pleased I was to see the views of the Advisory Committee (section 4.2.1) so accurately and succinctly represented. Recommendations 2 and 3 have been advice that I have offered frequently in my 11 years on the Committee.

Accordingly, I was most pleased to see the de-emphasis of Calculus. I believe that the Discrete Mathematics material will be more relevant to future workplace demands for the large majority of CS graduates.

The new emphasis on Net-centric computing is an obvious and I believe long-term trend in the business world. I commend the Program Review Committee for moving quickly to prepare graduates with these skills.

Page 75: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

The third initiative which I wish to applaud is the increased focus on database theory. This is my professional area so I admit to a bias.

What I experience in my business is that I am called on not only to design and implement storage and retrieval of information but I am very often expected as the 'computer professional' to provide direction in the basic structure of information before the collection stage. Increasingly, all computing tasks are coming to deal with larger amounts of raw data - a student who has been introduced to concepts of normalization, data structuring and query design will be much better equipped to respond professionally when this is requested of him or her.

The one area of weakness, from my perspective as an employer, is in the initiatives described to address the well documented Communications skills deficits of the average CS student.

I am often assisting my clients to interview candidates for a computing position. Almost invariably we must reject the technically strongest candidate because of poor communications skills. Similarly, the employee who eventually has aspirations to management or independent consulting will only succeed on the basis of his or her communications skills.

Naturally, many of the students who are weak in this area will resist the introduction of mandatory coursework which focuses on their weakness. Unfortunately only the most ambitious and forward looking students will choose effective liberal studies electives. I am still of the opinion that the first two years of the CS program need mandatory communication skill courses.

Finally on a personal note, the report's description of the difficulties faced by students coming from grade 12 next year is very accurate. I have a child in the lower half (grade 12) of the 'Double Cohort'. He has experienced 'the front line of curriculum changes' (which you described very well) since grade nine and it has not been pretty. The grade 12 graduates will be significantly disadvantaged academically this coming year and possibly for several years until the high school curriculum is fully 'fleshed out'. On a positive note, Ryerson should see more exceptional applicants since the older universities will not be able to absorb as many of the top applicants from the two cohorts.

I wish you and your committee all the best in the implementation of this report.

Sincerely,

Grant Davis

From Mikk Anyas-WeissDate: Thu, 12 Sep 2002 20:35:10 -0400From: Mikk Anyas-Weiss <[email protected]>To: [email protected]: Sorry I could not make it...

Sophie,

Page 76: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

The workmen just left a few minutes ago, explaining my absence at the meeting. While you took notes during our phone conversation, I thought I would put my thoughts down in an e-mail anyway because I can add a couple more items.

1. I pretty much agree with the proposed changes in the program, but of course I do not have an intimate knowledge of the curriculum. In a field that is evolving as quickly as CSCI, there is always a need to reshape the programs offered. An idle question I might have raised is "to what extent is the program shaped by the tools that are available today (i.e. the operating systems, network systems etc.)"? Is there in the program a challenge to think beyond the currently accepted view of CSCI?

2. As I indicated on the phone, I am concerned that the Program is giving written and oral communications a short shrift. I am concerned for four reasons:

* Your survey of current and past students clearly indicates that they feel badly served by CSCI in these areas,

* Employers are expecting a higher level of communication skills from all graduates, not only those with a business degree or and MBA, * The ability to communicate is a life skill that your students need if they are to be successful on their own (in their own businesses), * Your competitors have been focusing on communications for several years.

McMaster is an example. There students write reports about their co-op experiences, and these reports are marked both by MAC staff and by members of the Advisory Council.. While this is arduous for the council members, it appears to help the students since they get feedback from the business community. The report requirements were very clearly spelled out, so there were criteria for providing feedback.

The Program seems too crowded to get a major segment on communication included. However, it might be possible to include a short session on presentations and business writing (one lab session for example) in those courses where a written report or presentation is expected. I am not familiar with the writing centre, but I suspect they may be more focused on artistic writing than business prose. As an alternative, there are many consultants who could do a 1 -2 hour seminar in this area. Finally, there may be computer based training that could be made a pre-requisite for getting in the third year of the program.

3. From my reading of the proposal I sense there is a real struggle about what to do with respect to the "continuous" math such as calculus. If the focus on analytic tools is reduced, this should be compensated by providing students with information/tools for learning on their own the specifics that they might need.

I sympathize with the struggle of offering the right program with a manageable work load, and I think you are doing an excellent job to balance the various pressures.

Again, I'm sorry to have missed this meeting.

Page 77: SUMMARY - cs.ryerson.caquigley/Committees/PRC/Report/report…  · Web viewThe CSCI program was reviewed by multiple committees and individuals so there is significant repetition

Best regards,

Mikk

From Anne LawrenceSubject: RE: Feedback on Ryerson CSCI curriculum changesDate: Wed, 18 Sep 2002 12:18:55 -0400From: "Lawrence, Anne" <[email protected]>To: "Sophie Quigley - SCS" <[email protected]>

I, in support of the other members of the School of Computer Science External Advisory Board am pleased to support and endorse the changes to the CSCI curriculum proposed in the CSCI Program Curriculum Changes report produced by the CSCI Program Review Committee of the Ryerson School of Computer Science Council and recommend their early adoption.

The proposed curriculum enhances the CSCI program by providing relevant and timely changes that will serve to better position students for the needs of the marketplace.

Kind regards,Anne LawrencePublic Sector Manager - Business SolutionsHewlett-Packard (Canada) Ltd.

Endorsement from David Jones, Tony Ponzo, and Paul Salvini