Computer industry workforce skills required continue to change rapidly. Newer computer technologies are introduced continually while existing ones become obsolete at a faster pace. It is a major challenge to evolve a flexible curriculum that can adapt to those rapid and substantial changes and that new graduates may be taught with. For example, when the Association of Computing Machinery (ACM) released the Computer Curriculum in 1991, networking was not seen as a major topic area. Networking was not a mass-market phenomenon then, and the World Wide Web was little more than an idea in the minds of its creators. Today, networking and the web have changed the way we do business. Other professional organizations, in addition to ACM, such as the Institution of Electrical & Electronics Engineering (IEEE), and the American Society for Engineering Education (ASEE) are also at the forefront of addressing this challenge. They rapidly and continuously strive to provide the necessary directions in curriculum content and pedagogy. The current "Language First" CSE curriculum globally followed has stood the ground for close to five decades; but it has many inherent flaws. Some among them include emphasis on language and syntax rather than design methodology and problem solving. We put forth a pedagogy that is flexible, practical, and is based on the "Middle-Out Approach" which is a combination of top-down and bottom-up approaches; typically one integrates these two at an intermediate architect's level in an attempt to optimize a system. We, however, do not address these optimization and integration issues as part of our curriculum, because of time limitation. They can be undertaken as part of a Master's program. We categorize our undergraduate curriculum into 4 core categories namely, software, hardware, human-computer interaction and networking. Further each category curriculum is divided into 4 levels: (1) Level 1 (basic/system level) courses broadly include Software Engineering, SOC (System on a Chip) overview, Principles of User Interface Design, and Internet technology; (2) Level 2 (intermediate/component level) courses include Object Oriented Analysis & Design (OOAD), System Level Design, Operating Systems (OS), and Computer Networking; (3) Level 3 (higher/expanded level) courses could include Aspect Oriented/Extreme Programming, Computer Architecture, Modern Computer Design, OS Design, Grid Computing etc; and (4) Level 4 (detailed/micro level) courses include Data Structures & Algorithms Analysis and Design, System Software & Compiler Design, Digital Design, and Advanced Computer Networks. Exploring pedagogy alternatives to the "Language First" approach and help disseminate domain knowledge better are key to this effort. Further, the proposed curriculum provides stronger design emphasis, better match with industry's current and future needs, and supports better adaptability. The "Middle-Out Approach" also provides a better platform for lifelong learning. The major hurdle in the implementation of proposed curriculum would...