Description: It is expected that students have at least one semester’s of programming experience (COMP 140/160/130, APCS, etc), and familiarity with basic programming concepts (variables, functions, loops, etc) will be assumed. Knowledge of any specific platform or programming language is not required. Mainframe computers are in use by two-thirds of Fortune 500 companies, 45 of the world’s top 50 banks, eight of the top 10 insurers, seven of the top 10 global retailers, and eight of the top 10 telecommunications companies. Despite this overwhelming prevalence in large corporations, there is a serious shortage of skilled mainframe experts, with 91% of companies with mainframes identifying skills shortages as a critical issue in their organizations, leading to an immense demand for programmers and administrators with mainframe skills. This course will be an introduction to the mainframe platform, first covering it’s origins, hardware and software architecture, and design principles. Building on this foundation, the course will then cover the principles of operation of the most common mainframe operating system: z/OS, the principles of the most common programming languages on the mainframe platform, and the usage of several mainframe-specific subsystems. Using the mainframe platform, this course will help students answer: What does software development and program design look like on platforms with different fundamental design tenants, and how do I apply my existing development skills to such a platform? Finally, students will use these skills, to work collaboratively to build a real-world application, using the mainframe architectural pattern, languages, and subsystems, with the goal of building the foundational skills needed by enterprise, and broadening student’s repertoire of design patterns and layouts.