What is Computer Science? Study of the foundations of computing, data storage, and information processing Computer Science spans diverse areas: –Security and cryptography –Robotics and computer vision –Data mining and databases –Distributed and mobile systems –Intelligent systems and gaming –Computational biology –Computer networks –Computer graphics and animation –More…
How is CS different? Computer scientists obtain a comprehensive foundation that permits them to adapt to as well as create new technologies, new paradigms and new ideas. Foundation consists of: –Mathematics (problem solving, algorithms, calculus, discrete math) –Modeling (Object oriented programming, abstract data types, design patterns) –Systems (Computer architecture, operating systems, networks, foundations of programming languages) Computer Scientists have flexible employment opportunities
What Computer Scientists do? Employed in top programming jobs Invent new applications for computer systems –World Wide Web –Google search engine –Peer-to-Peer networks –Wireless systems Develop better ways to solve computing problems –More secure ways to encrypt information –More efficient ways to send audio/video over the Internet
What is Software Engineering? Many Computer Scientists work in the software development industry. Software is often developed by large developer teams that require all developers to use common approaches/rules/practices to software development Software engineering is a field that studies and defines the best approaches/rules/practices for software development and maintenance
A Sample of CS areas Distributed systems development Computer game software development Database administration Search engine technologies Medical informatics (Prof. Raicu) Web mining (Prof. Mobasher) Security and privacy (Prof. Pitcher) Please ask me about other CS areas.
Distributed System development A distributed system is software system that uses multiple independent computers communicating over a network to accomplish a common task. Examples: – –Napster and –World Wide Web –Online games –Grids
A sample job listing (excerpts) Applications Developer - Computer Professional Department: Computing Division, Fermilab. Must have software analysis, development, testing and debugging skills. Excellence in distributed software development and integration using some or all of C++, Java, and Python is needed. Experience with database systems … Proven ability in oral and written communication is essential. Demonstrated ability for analysis and resolution of problems in distributed and/or networked systems.
Computer Game software development Game software development requires an understanding of: –Mathematics –Computer graphics –Computer architecture –Operating systems –Network programming –Parallel processing
A sample job listing (excerpts) Online Programmer Midway Games Inc, Chicago, IL Responsibilities: –Design, define and develop the next generation of online gameplay and networking technology for multiple platforms. Requirements: –Extensive knowledge of C++ programming. –Strong multithreaded/parallel programming … would be beneficial. –Effective analytical, written, oral, team, interpersonal, planning and organizing skills are essential. Education: –Bachelors degree or higher in Computer Science is preferred.
Database administration Databases are used to store and organize data in ways to make insertion, search and retrieval of information efficient Databases are used in the following industries –Financial industry –Search engines –Travel industry
A sample job listing (excerpts) Title: Database Administrator, Chicago Mercantile Exchange Responsible for the administration of Oracle 10g RAC, Grid and ASM running on Sun Unix or Linux operating systems. Must be able to implement databases on Unix and Linux platforms. Requirements: –In depth knowledge in the works of Oracle 10g, RAC, ASM and Grid, TOAD, DB2 and SQL Server a plus –Experience in a very high transaction rate OLTP applications required –Working knowledge of Linux and Unix operating systems are required. NT and MVS is a plus.
Search Engine Technologies A Search Engine is a computer program that is used to find information stored in a software system such as the World Wide Web How does a search engine return web pages that are relevant to the query? Technologies include: databases, distributed systems, artificial intelligence, networking etc.
A sample job listing (excerpts) Openings in Software Engineering, Google We need world-class engineers to join our engineering team in developing our next-generation search engine (…) Working on problems in (…) cutting-edge information retrieval algorithms, scalability issues related to dealing with huge amounts of data…, and a variety of novel search features. Requirements: –Enthusiasm for solving interesting problems. –Experience with Unix/Linux or Windows environments, C++ development, distributed systems, machine learning, information retrieval, network programming…
The Bachelor of Science in Computer Science Mathematical tools Problem solving, algorithms, and structured programming Modeling and object oriented programming Computer Systems Communication skills Senior Capstone
Advanced Coursework Theory Data storage Computer Systems Data analysis and mining Artificial intelligence Computer vision Human computer interaction Computer gaming Software engineering Computer graphics and animation Computational Sciences Network programming and more to come…
Sample CS topics covered at CTI How does Google work and why is it such a good search engine? How does a computer beat the World Chess Champion? How does information get routed on the Internet? How does encryption work and how can encrypted messages be broken? How do the Mars robots see and process the landscape around them?
Sample CS topics covered at CTI How does one protect a system against an attack? How are players synchronized in an online computer game? What techniques are being developed to increase the speed of microprocessors? What makes a Graphical User Interface user-friendly? What problems are Computer Scientists currently solving in the field of Computational Biology?
Software Engineering Concentration This concentration integrates: –the foundational Computer Science material with –engineering practices developed for building and maintaining software applications. Six additional SE courses.
Current Career Outcomes Average salary of a DePaul 2006 CS graduate: $50,833
Career Outcomes (BLS data) Table 2: Fastest-growing occupations, (Numbers in thousands) 2006 National Employment Matrix code and title EmploymentChange Quartile rank by 2006 median annual wages 1 Most significant source of postsecondary education or training PercentNumber Network systems and data communications analysts VHBachelor's degree Personal and home care aides7671, VLShort-term on-the-job training Home health aides7871, VLShort-term on-the-job training Computer software engineers, applications VHBachelor's degree Veterinary technologists and technicians LAssociate degree Personal financial advisors VHBachelor's degree Makeup artists, theatrical and performance HPostsecondary vocational award Medical assistants LModerate-term on-the-job training Veterinarians VHFirst professional degree Substance abuse and behavioral disorder counselors HBachelor's degree Skin care specialists LPostsecondary vocational award Financial analysts VHBachelor's degree Social and human service assistants LModerate-term on-the-job training Gaming surveillance officers and gaming investigators LModerate-term on-the-job training Physical therapist assistants HAssociate degree Pharmacy technicians LModerate-term on-the-job training Forensic science technicians HBachelor's degree Dental hygienists VHAssociate degree Mental health counselors HMaster's degree Mental health and substance abuse social workers HMaster's degree Marriage and family therapists HMaster's degree Dental assistants LModerate-term on-the-job training Computer systems analysts VHBachelor's degree Database administrators VHBachelor's degree Computer software engineers, systems software VHBachelor's degree Gaming and sports book writers and runners VLShort-term on-the-job training
Career Outcomes The number of students entering the CS field is at historical lows = More opportunities when you graduate
So, why choose CS? Average payJob growthCareer $66, %Real estate appraiser8 $83, %Computer/IT analyst7 $82, %Market research analyst6 $75, %Physician assistant5 $73, %HR manager4 $122, %Financial advisor3 $81, %College professor2 $80, %Software engineer1 Source: Money Magazine, April 12, 2006
And why choose CS at CTI? Because our students are successful! Ranking of the top 12 US teams at the 2006 World Programming Contest: Wisconsin, Mad.7Washington, St.L.4 Rice7Maryland, Coll.P.4 Virginia Tech7Caltech4 Georgia Tech7DePaul3 Carnegie Mellon7Princeton2 Duke7MIT1 TeamRankTeamRank