Difference between revisions of "Curriculum Proposal to SCS Faculty May 2011"

From Soma-notes
Jump to navigation Jump to search
Line 48: Line 48:
===New course description===
===New course description===


An introduction to the Internet application stack: language-based virtual machines, desktop environments, and web applications. Topics: dynamic libraries, scripting and functional languages, interpreters, compilation, databases, remote procedure calls, and performance and security concerns in modern distributed applications.
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,   databases, remote procedure calls over the Internet, and performance and security concerns in modern distributed applications.


Precludes additional credit for COMP 2005.
Precludes additional credit for COMP 2005.


Prerequisite: COMP 2401 and COMP 1406.
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.
Restricted to students registered in the B.C.S. program, combined Honours in Computer Science and Mathematics, Honours Computer Mathematics, and Honours Computer Statistics.

Revision as of 13:33, 3 May 2011

This document contains proposed course changes for the 2012/2013 academic year.

Executive Summary

Introduction

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, databases, 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