ACM reviews & recommends changes to the curiculla every 10 years, but frequency has increased lately
MEC's Context
CS : a mix of all 5 areas
EB : Primarily Electronics & Bio-Information-Technology, with some CS & CE
EC : Primarily Electronics, with some CS & CE
Electronics & Bio-Medical aspects outside the scope of this talk
Knowledge Areas (except SE) Algorithms and Complexity Architecture and Organization Computational Science Discrete Structures Graphics and Visual Computing Human-Computer Interaction Information Management Intelligent Systems Net-Centric Computing Operating Systems Programming Fundamentals Programming Languages Social and Professional Issues Software Engineering Algorithms Circuits and Signals Computer Architecture and Organization Computer Networks Computer Systems Engineering Database Systems Digital Logic Digital Signal Processing Discrete Structures Electronics Embedded Systems Human-Computer Interaction Operating Systems Probability and Statistics Programming Fundamentals Social and Professional Issues Software Engineering VLSI Design and Fabrication Personal Productivity with IS Technology Fundamentals of Information Systems Electronic Business Strategy, Architecture and Design Information Systems Theory and Practice Information Technology Hardware and Systems Software Programming, Data, File and Object Structures Networks and Telecommunication Design Physical Design and Implementation with DBMS Physical Design and Implementation in Emerging Environments Project Management and Practice CS Human Computer Interaction Information Assurance and Security Information Management Information Technology Fundamentals Integrative Programming and Technologies Math and Statistics for IT Networking Platform Technologies Programming Fundamentals Social and Professional Issues System Integration & Architecture Systems Administration and Maintenance Web Systems and Technologies CE Knowledge Areas (except SE) IT IS
Goals after Graduation
Higher studies in same field
Management studies
Job in same field, and no more studies
Job in same field, and then higher studies
Job in a different field
Goals keep changing!!!
Curriculum Design is very complex considering all of the above factors
but
It has to keep up with the times
Paradigm Shifts taking place
Everything is on the Network
The Browser is the Desktop
The Internet is the OS
The PC is mobile
The PC is the phone, tv, digital assistant, credit card, all rolled into one
Public Digital presence for everyone
Users want Bigger (movies), Faster, Everything (TV on mobile) and NOW!
WHAT DOES THIS MEAN?
Trends in the Industry
Applied Security
Scalable Systems
Mobility Computing
Cloud Computing / Grid Computing
Massive-Scale Data Storage, Retrieval, Analysis
Mashup Applications
Social Programming
Live Streaming
SOA
SAAS
Software Release & Configuration Management
Performance Management
Programming Frameworks
SEO – Search Engine Optimization
Dynamic/Scriptable Apps
User Interface/Experience is Sacred
BESIDES all the usual stuff that you learn
Bad News
The Trends are changing at a fast rate!!
Prominent Platforms / Technologies
Java camp
Mostly “enterprise” systems, but some some web-scale systems in Java
J2EE, JDBC, JSP, Servlet, EJB, Ant
Microsoft camp
Competes with Open Source camp, and Java camp
.NET, IIS, SQL Server, ASP, Visual Studio
Open Source camp
Generally platform-agnostic
1000's of useful tools, environments, OSs, Libraries..
Scripting
PHP, Ruby, Perl, Python
Tools
Eclipse, Ant, JUnit, PHPUnit
Frameworks / Environments
CMSs: Drupal, Joomla, ...
Struts
Rails
PHP.net
Tomcat, JBOSS
Other
XML, XSL
Javascript, CSS
Social Network APIs : Facebook (F8), OpenSocial
Key Shortage areas
Web Development
Javascript, CSS, HTML, AJAX
PHP, Ruby, Python, Perl
Flash
User Interface Design
Deep Java expertise
Deep .NET expertise
Some Misconceptions
“ I want to work in C/C++”
Language is just a tool, Focus on the PROBLEM not the language
e.g. An entire Ad Optimization product ($800M in flow-thru spend) is built in python
Applications are more and more dynamic, making it difficult to work with compiled languages
Note: Java isn't just a language, its a complete environment for applications
“ I am good on xyz OS”
OS is just an environment... Applications are getting more and more OS-agnostic
Recommendations
Review and modify curicullum every 3-5 years
Drive Open Source Participation
freshmeat.net (45,000 projects)
sourceforge.net (350,000 projects)
Promote Internships, students bring back industry experiences and help continuously bridge the gaps
Each student should be able to go deep in one “hot” industry area
Consider splitting coursework into
Core Courses : everyone has to enroll
Elective courses : can choose one of two tracks
Higher-Studies track : more theory & fundamentals (e.g. Automata Languages & Computation, Digital Signal/Image Processing)
0 comments
Post a comment