Computer Science in Context Evangelos E. Milios Professor and Graduate Coordinator Faculty of...

Post on 17-Jan-2016

215 views 0 download

Tags:

Transcript of Computer Science in Context Evangelos E. Milios Professor and Graduate Coordinator Faculty of...

Computer Science in Context

Evangelos E. Milios

Professor and Graduate Coordinator

Faculty of Computer Science

Dalhousie University

Growth in the Computing Field

• Exponential growth in– Hardware speed (doubles every 18 months)– Memory capacity (doubles every 18 months)– Network bandwidth

• Slow growth in software productivity– 7+-1 lines of fully debugged/tested code per

day– Independent of the programming language

Complexity

• Computer artifacts are very complex

• Complexity attacked with abstraction– Procedural abstraction– Data abstraction– Object-oriented programming

• Important new dimensions– Distributed computing– Network is the computer

Computability• Many problems are inherently intractable

– They require search of all possibilities for optimality– Too many possibilities

• Examples– Chess– Map labelling– Travelling salesman

• Issues– Proving that a problem is intractable– Heuristic solutions and how well they do

Standards

• Not just technology– Market dynamics– Social acceptance

• Standardization– Too early: bad standard– Too late: irrelevant standard, because a defacto

standard already exists (also bad)

Knowledge migration paths

• Research lab => scholarly publications– Graduate courses– Undergraduate courses– High school– Primary school

• Research lab => patent– Invention – Incubator company– Service Process or product

break

Computer Science Curriculum

Evangelos E. Milios

Professor and Graduate Coordinator

Faculty of Computer Science

Dalhousie University

The foundation

• Introductory Computer Science– For CS majors– For Science– For non-Majors

• Algorithms, Data Structures, Theory of Computing– How to organize data and computation

effectively

Application areas with a little bias :-)

• Data bases

• Data mining, information retrieval

• Artificial Intelligence

• Graphics, user interface design

• Software Engineering

• Networks, parallel systems, distributed systems

• Numerical computation

Core curriculum

Software.eng.

Hardware&systems

Math.foundations

Arts

Basics

Core curriculum (Foundations)• CS

– CSCI 1100 Computer Science I – CSCI 1101 Computer Science II

• Math– MATH 1000 diff. and integral calculus I – MATH 2030 matrix theory and linear algebra I – STAT 2060 introduction to probability and statistics I – CSCI 2112 discrete structures I– MATH 1010 diff. & integral calculus II or

CSCI 2113 discrete structures II

Core curriculum - CS - year 2

• CSCI 2110 Computer Science III

• CSCI 2121 Architecture

• CSCI 2132 Software Development

• CSCI 2140 Data and Knowledge Fundamentals

• CSCI 2100 Communication

Core Curriculum - CS - Year 3

• CSCI 3171 Network Computing

• CSCI 3120 Operating Systems

• CSCI 3130 Software Engineering

• CSCI 3110 Algorithm Analysis

• CSCI 3101 Ethics

break

Network-Centered Applications

Evangelos E. Milios

Professor and Graduate Coordinator

Faculty of Computer Science

Dalhousie University

Computer Networks

• Interacting patterns of growth– CPU speed doubles every 18 months– Memory capacity doubles every 18 months– Memory speed grows much slower– Network bandwidth grows fast– Network latency limited by the speed of light– Network speed is reaching memory speed– Number of hosts on the Internet doubles every year

Network design

• Focus on the infrastructure– Very high speed networks– Quality of service guarantee

• Research issues– Fast switching– Effective routing– Security at the network layer– Virtual private networks– Network management

Software agents

• Data mining agents on the Internet

• Mobile agents– Agent marketplaces– Negotiating agents

• Agents for network management

Distributed computing

• Software engineering

• Concurrency

• Fault tolerance

• Security in distributed computing

Electronic commerce

• Security at the application layer– Cryptography algorithms– Protocols for

• Authentication

• Message integrity

• Negotiation agents

• Electronic marketplaces

Other network applications

• Internet Telephony

• E-learning: delivering courses/programs over the Internet

• E-health: delivering specialist health care to remote locations over the Internet

Core curriculum