====== Course Descriptions ====== ===== Introduction ===== These course descriptions are copied from the EECS Supplemental Calendar. The descriptions are provided here as a convenience. In the event that there is a discrepancy between the versions here and the supplemental calendar, the supplemental calendar is the definitive version. Note that the required “formal seminar presentation” sometimes takes the form of a poster presentation seminar. The date for the presentations will be determined by the course director. It is normally held at the end of the term, or in the first week of the following term. ===== EECS 4070 3.0 Directed Studies ===== This is a course for advanced students who wish to carry out independent study on a topic within EECS that is not offered in a regular course during a particular academic session. The student must identify a faculty member with expertise in the area that is willing to supervise the student's work. At the beginning of the term, the student and faculty supervisor must prepare a written description of the course, its content, and the method of evaluation. The work involved must be equivalent to a three-credit course at the 4000 level, and the course coordinator must confirm this before the student is permitted to enrol. The evaluation will generally be based on written work and the student's ability to discuss the course material during meetings with the supervisor. In addition, assigned work could include oral or written presentations of material for non-specialists. The course coordinator, student and supervising faculty member should each retain a copy of the agreed-upon description of the course, and relevant details should be entered into the student’s record via the student information system (SIS). Prerequisites: * cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); * LE/EECS 2030 3.00 or LE/EECS 1030 3.00; * successful completion of 24 credits in LE/EECS major courses; and * permission of course coordinator ===== EECS 4080 3.0 Computer Science Project ===== This is a course for advanced students, normally those in the fourth year of an honours program, or students who have passed 36 computer science credits. Students who have a project they wish to do need to convince a member of the faculty in the Department that it is appropriate for course credit. Alternatively, students may approach a faculty member in the Department (typically, one who is teaching or doing research in the area of the project) and ask for project suggestions. Whatever the origin of the project, a “contract” is required. It must state the scope of the project, the schedule of work, the resources required, and the criteria for evaluation. The contract must be signed by the student and his/her project supervisor and be acceptable to the course director. A critical course component that must be included in the contract is a formal seminar presentation. The course director will arrange the seminar sessions, and students and their faculty supervisors are required to participate. The seminar talks will have a typical length of 15-20 minutes, and will be evaluated by the individual supervisor, the course director and one more faculty member. This talk will be worth 30% of the final mark. The remaining 70% of the course mark is the responsibility of the individual supervisor. Prerequisites: * cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); * LE/EECS 2030 3.00 or LE/EECS 1030 3.00; and * permission of the course coordinator. * Normally restricted to students who have taken 36 credits in computer science. Course Credit Exclusions: EECS 4081 6.00, EECS 4082 6.00, EECS 4084 6.00, EECS 4088 6.00, EECS 4480 3.00, ENG 4000 6.00 ===== EECS 4088 6.0 Computer Science Capstone Project ===== This is a course for students in the fourth year of an honours program. Students who have a project they wish to do need to convince a member of the faculty in the Department that it is appropriate for course credit. Alternatively, students may approach a faculty member in the Department (typically, one who is teaching or doing research in the area of the project) and ask for project suggestions. Whatever the origin of the project, a “contract” is required. It must state the scope of the project, the schedule of work, the resources required, and the criteria for evaluation. The contract must be signed by the student and his/her project supervisor and be acceptable to the course director. /*The course coordinator, student and supervising faculty member should each retain a copy of the agreed-upon description of the course, and relevant details should be entered into the student’s record via the student information system (SIS).*/ A critical course component that must be included in the contract is a final presentation. The course director will arrange the final presentation session, and students and their faculty supervisors are required to participate. The presentations will be evaluated by the individual supervisor, the course director and one more faculty member. This presentation will be worth 30% of the final mark. The remaining 70% of the course mark is the responsibility of the individual supervisor. Prerequisites: * cumulative GPA of 4.50 or better over all major EECS courses (without second digit "5"); * LE/EECS 2030 3.00 or LE/EECS 1030 3.00; and * permission of the course coordinator. * Normally restricted to students who have taken 36 credits in computer science Course Credit Exclusions: CSE4080 3.0, CSE4081 6.0, CSE4082 6.0, CSE4084 6.0, CSE4480 3.0, ENG4000 6.0 ===== EECS 4090 6.0 Software Development Capstone Project ===== A well-designed software product is more than just a computer program. A software product consists of quality code, a well thought out design developed via disciplined professional engineering standards, appropriate literate documentation including requirements, design and testing documents, a manual, and the appropriate installation files and instructions needed to get the product to work. The product has to be correct (i.e. it must satisfy all the requirements specified by the client), usable, efficient, safe and maintainable. The goal of this course is to provide students with an opportunity to integrate what they have learned in earlier computer science courses, deepen their understanding of that material, extend their area of knowledge, and apply their knowledge and skills in a realistic simulation of professional experience. The end result must be a substantial software product. This course is run on a tight schedule over the Fall and Winter Terms; work is ongoing and regular. The course is intended to help with the transition from being a student to being an active professional in industry. During the course students are expected to perform independent study, plan their work, make decisions, and take ownership of the consequences of their mistakes. A combination of teamwork and individual work is required. The requirements elicitation, requirements analysis, design, coding, testing, and implementation of the product will be a team effort. However, individual responsibilities must be clearly identified in every deliverable. This project will be of significant size and like most industrial projects it will be time and resource limited. Students must meet the specified deadlines. As a result, they will have to set their goals and plan their work accordingly. Students must apply sound mathematics, good engineering design, and algorithms throughout the project. However, they will also need to apply heuristics and design patterns, or “rules of thumb”, where sound, well-understood algorithms are not available. Any such heuristics must be clearly identified and supported by arguments that justify their choice. The teams will be required to show that the heuristic cannot fail in a way that will violate safety restrictions or other restrictions designated as critical. Prerequisites: * Only open to students in the Software Development Stream. * EECS 3311 3.0 (with minimum grade of B); * EECS 3101 3.0; and * EECS 3342 3.0. Corequisites: * EECS 4312 3.0 and * EECS 4313 3.0 ===== EECS 4480 3.00 Computer Security Project ===== This is a capstone project course for computer security students. The students engage in a significant research and/or development project that has major computer security considerations. This is a required course for Computer Security students. Students who have a project they wish to do need to convince the course director that it is appropriate for course credit. They also need to find a faculty member that agrees to supervise the project. Alternatively, students may approach a faculty member (typically, one who is teaching or doing research in computer security) and ask for project suggestions. For students that are not able to find a suitable project through the above means, the course director is responsible for preparing appropriate projects. Any of the projects may be individual or team projects at the discretion of the course director (coordinator). Whatever the origin of the project, a “contract” is required. It must state the scope of the project, the schedule of work, the resources required, and the criteria for evaluation. The contract must be signed by the student, his/her project supervisor, and the course director. A critical course component that must be included in the contract is a project presentation to take place after the project is finished. The course director will arrange the presentation sessions, and students and their faculty supervisors are required to participate. The presentations will have a typical length of 15-20 minutes, and will be evaluated by the individual supervisor, the course director and at least one more faculty member. The actual nature of the project will vary from student to student. However, after successful completion of the course, students are typically expected to be able to: * Apply the knowledge they have gained in other computer security courses to a real-world system. * Understand the computer security challenges faced by the information technology industry. * Articulate the questions that a particular area of research in computer security attempts to address. * Prepare a professional presentation that outlines the contributions they made to the project and the knowledge they acquired. Prerequisites: * Restricted to students in the Computer Security degree. * Students must have passed 40 EECS credits. * Permission of the course coordinator is needed. Course Credit Exclusions: EECS 4080 3.00, EECS 4081 6.00, EECS 4082 6.00, EECS 4084 6.00, EECS 4088 6.00, EECS 4700 6.00