Computer Science Curriculum in Context

Download Report

Transcript Computer Science Curriculum in Context

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
Hardware&systems
Software.eng.
Basics
Math.
foundations
Arts
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