Some Good Choices The CS/SE Continuum Corporate Quality Users, S/W Development Resources Control Applications Process & Metrics (e.g., waterfall) Theory and Use of Program Languages Algorithms Databases Operating Systems Data Structures Computer Architecture Implement Corporate Project Team S/W Development S/W Design S/W Mgmt Mgmt Structure Strategies Development (e.g., Extreme Prog) SE Software Engineering: Improving the processes of software management and development Computer Science: Using computers effectively to develop solutions to real, and possibly complex, problems CS 1
CS/SE: type of work and jobs Applications Project Management Corporate Management CS= red SE= green CS&SE= underline Programmer Operating System Compilers Processors System User COMPUTER Databases Memory Programming Languages Development Process, Quality Control, Metrics Development Team MANAGEMENT CS (inside-out from computer) SE (outside-in from management) CS and SE: Overview Computer Science: Science & art of developing computer-based solutions to problems, with focus on: Programming languages and development strategies Problem analysis, algorithms, data structures, data bases File management, System management, System admin Software/Computer applications and systems Software Engineering: Engineering approach to developing, using and maintaining software products, utilizing CS principles, with focus on: Requirements, design, development processes & tools Software quality, metrics, measurements Project management, teamwork Software evolution and integration 2
basic distinctions Computer Scientist Software/Computer Professional Expert in Programming Languages, Principles, Systems, Applications Experienced in Large and Complex Software Development Basic Skills in Software Development Processes Ready to work: programmer, system/network administrator, problem solver using computers Able to extend knowledge to additional languages and specific development processes Software Engineer Software Development Process Professional Basic Skills in Programming Languages, Principles, Systems, Applications Experienced in Developing Software System Solutions Expert in Software Development Processes Ready to be effective member (or leader) of software development team May need additional training in languages to be versatile software developer BS goals Computer Scientist Understand/Knowledge of Modern Languages/Software Systems Problem Analysis & Decomposition Software Organization and Construction Computer Hardware Organization Experience with design, implementation of s/w systems of realistic size and complexity Insight into some important applied areas of CS Well-prepared for a job Software Engineer Basic knowledge of CS languages and systems Apply engineering principles to software processes Metrics, measurements, feedback, quality improvement Process focus Experience managing quality processes for software systems, developing computer system solutions Ready to work on (or lead) software development team 3
BS degree: Curricula BSCS: 128 Credits 45 Credits GEd 18 Credits Math, Lab Science 49 Credits CS 38 Reqd 11 Electives 16 Free Electives Experiential Ed 26 Cred CS 45 Cred GEd 18 Cred Math BSSE: 138 Credits 49 Credits GEd 48-54 Credits Math, Lab Science, CS 37 Credits SE Reqd & Elective Capstone Experiential Ed BS degree: Curricula BSCS: 128 Credits Comp Algs II File Mgmt OO Software CS Electives Free Electives Experiential Ed Intro CS (I,II) Comp Arch Comp Algs I Databases Operating Systems BSSE: 138 Credits Reqts & Specs Design and Arch S/w Construction S/w Proj Mgmt Mgmt/Org Behavior Advanced SE Capstone Practicum SE Electives Experiential Ed. 4
Computer Scientist Understand/Knowledge of Modern Languages/Software Systems Problem Analysis & Decomposition Software Organization and Construction Computer Hardware Organization MS goals Experience with design, implementation of s/w systems of realistic size and complexity Indepth knowledge of at least one area of CS Breadth of knowledge in CS: algs, DB, networks, IIS Communicate effectively Well-prepared for a job Software Engineer Master skills to be effective member/leader of software development team Engineer s/w products Participate in develpmt process Improve s/w process Use modern methods/tools Experience managing quality processes for software systems, developing computer system solutions Ready to work on (or lead) software development team MS degree: Curricula MSCS: 33 Credits 5 core courses 2 concentration courses 4 elective course Thesis or project option Electives (0-9) credits MSSE: 36 Credits 5 core 5 advanced Practicum 0-15 credits (all CS) 0-12 Credits CS 0-6 Credits SE Bridge Courses 5
Core Tech Comm Info Struct I DB Systems Networks Into Intell Systems Concentrations Comp Nets Intell Info Systems Telecom MS degree: Curricula CS Capstone Option Project or Thesis Electives AI, Networks, DBs, Simulation, Performance, Client Server, Telecom, Communications Systs, Security, S/w Org Mgmt, Info Systems, Real Time, Special Topics SE Core S/E Process S/W System Design Formal Methods System Reqts S/w Testing & Quality Concentrations Telecom Capstone Practicum Thesis 6