Curriculum Proposal to SCS Faculty May 2011: Difference between revisions
Line 18: | Line 18: | ||
* COMP 2805 | * COMP 2805 | ||
** finite automata => COMP 1805 | ** finite automata => COMP 1805 | ||
* COMP 3000 | * COMP 3000: operating systems | ||
** | ** programmer view of following => COMP 2401 | ||
*** process management | |||
*** memory management | |||
*** process coordination and synchronization | |||
*** inter-process communication | |||
*** file systems | |||
*** networking | |||
** real-time clock management? | |||
** I/O device drivers => stay | |||
* COMP 3005 | * COMP 3005 | ||
** database query languages => COMP 2405 | ** database query languages => COMP 2405 |
Revision as of 18:15, 3 May 2011
This document contains proposed course changes for the 2012/2013 academic year.
Executive Summary
Introduction
Courses to be Eliminated
- COMP 2003
- assembly language => exposure through COMP 2401 and 2405
- digital logic => COMP 1805
- number representation => COMP 1805 and 2401
- processor architectures, interrupts, devices => exposure in COMP 2401
- multicore => cross-cutting concern
Courses to be Upgraded
- COMP 2805
- finite automata => COMP 1805
- COMP 3000: operating systems
- programmer view of following => COMP 2401
- process management
- memory management
- process coordination and synchronization
- inter-process communication
- file systems
- networking
- real-time clock management?
- I/O device drivers => stay
- programmer view of following => COMP 2401
- COMP 3005
- database query languages => COMP 2405
- COMP 3007
- functional languages, closures => COMP 2405
Theory
COMP 1805: Course Title
COMP 2804: Course Title
COMP 3804: Course Title
Software Engineering
COMP 2404: Introduction to Software Engineering
Introduction to object-oriented software development, with emphasis on design and implementation of medium-sized programs. Topics include abstraction, modularity, encapsulation, reusability, and design patterns.
COMP 3004: Object-Oriented Software Engineering
No changes.
Programming
- we already changed 1405 and 1406
- goal is to teach programming through teaching other topics that are central to modern CS: OS, databases, web
COMP 2401: Introduction to Systems Programming
Introduction to programming at the system level, with procedures, primitive data types, and user-defined data structures, designed for B.C.S. students. Topics include: basic OS concepts (including processes), pointers, heap and stack memory allocation and deallocation, system/library calls, signal handling and inter-process communication.
COMP 2405: Internet Application Programming
Old course description
Design and implementation of Internet application programs. Topics include: fundamentals of the Web, introduction to client/server architectures, Internet programming, Web browsers, hypertext links, network programming.
Precludes additional credit for COMP 2005.
Prerequisite: COMP 2401 and COMP 1406.
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.
Lectures three hours a week.
New course description
An introduction to Internet application development that emphasizes the computer science fundamentals of the technologies underlying web applications. Topics include: scripting and functional languages, language-based virtual machines, database query languages, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.
Precludes additional credit for COMP 2005.
Prerequisite: COMP 2401.
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.
Lectures three hours a week along with weekly one-hour tutorials.
Rationale
* learn basics of modern web applications? * basics of dynamic languages o first class functions o functional programming concepts (non-mutability) * basics of databases o data representation o query languages * basics of distributed applications o latency vs. bandwidth o reliability concerns o state vs. stateless