Assistant Teaching Professor of Software Development
Pittsburgh, PA
Carnegie Mellon University
CMU is a global research university known for its world-class, interdisciplinary programs: arts, business, computing, engineering, humanities, policy and science.Description
The Heinz College of Information Systems and Public Policy at Carnegie Mellon University is seeking qualified candidates for the open position of Assistant Teaching Professor of Software Development. We invite academics or professionals with a passion for teaching and experience in applying and instilling modern software engineering and data analytics practices.
The ideal candidate for the software development position will have a strong background in software engineering frameworks and in Python programming. The candidate must be capable of teaching programming as a problem-solving tool, fostering a mindset that integrates computational thinking with creativity and critical analysis.
The instructor will be responsible for developing and delivering coursework and assessing student performance. The instructor will design and oversee student projects and meta curricular activities. Our students are primarily at the masters level, with a diverse range of education and backgrounds.
Key Responsibilities:
Teach Python Programming:
-
Guide students in developing Python algorithms to address real-world challenges in data analysis, software development, and decision-making.
-
Understand the concepts and use the constructs of Python libraries, including pandas, numpy, matplotlib, seaborn, and scipy
-
Provide experiential opportunities for students to load, cleanse, and manipulate data, including using web API’s and scraping. Preferably have some experience with quant finance applications.
-
Expose students to the Software Development Lifecycle (SDLC) to understand how software applications are authored in the industry.
-
Introduce students to industry-standard tools and relevant Python IDEs, for effective software development, debugging, and testing
-
Introduce students to data visualization techniques using industry recognized libraries to effectively communicate findings and support decision-making.
-
Guide students in forming and manipulating collections of data, including lists, tuples, sets, dictionaries, NumPy, Pandas Series and DataFrames.
Teach Software Engineering Practices:
-
Teach students collaborative development workflows using Git and GitHub, including branching, merging, pull requests, and managing team-based projects within integrated development environments (IDEs).
-
Introduce students to AI-enabled practices such as automated code generation, AI-assisted debugging, and intelligent testing tools, showcasing their impact on the software development lifecycle.
-
Instill best software engineering practices in agile teaming, code reviews, security, software and architectural design patterns, performance tuning, and optimization.
-
Teach best practices for code management, including branching, merging, and pull requests.
-
Emphasize the importance of writing clean, maintainable, and well-documented code.
-
Introduce students to continuous integration and continuous deployment (CI/CD) pipelines to automate testing and deployment processes.
This full-time, teaching-track position is a unique opportunity to join one of the most respected research universities in the world. The Heinz College offers a collegial and intellectually stimulating environment at the intersection of people, policy, and technology. We are looking for an individual committed to instilling analytical and evidence-based practices to our students at Heinz College and across Carnegie Mellon University.
We prepare students to understand and leverage technology responsibly to effect change in business and society. We train our students to collect and analyze data in pursuit of positive transformation. We teach a set of data governance and analytical skills with a focus on the effectiveness, equity, and integrity in the decision process and its ramifications. Armed with this unique set of skills, Heinz College graduates are in great demand across all sectors of the economy.
Qualifications
-
Proficiency in using Python development environments.
-
Experience in applying data focused programming techniques in real world settings
-
Excellent communication and interpersonal skills.
-
Ability to develop and deliver engaging course materials.
-
Commitment to fostering an inclusive classroom environment that values diverse perspectives
-
Understanding of basic statistics and ML practices preferred
-
A background in Finance and financial applications preferred.
-
Ability to work across the Heinz College disciplines like Policy, Security, Healthcare, Arts & Entertainment, and Information Systems.
-
An advanced degree in a Computer Science, Data Science, or STEM field preferred.
Equal Employment Opportunity Statement
Carnegie Mellon University shall abide by the requirements of 41 CFR §§ 60-1.4(a), 60-300.5(a) and 60-741.5(a). These regulations prohibit discrimination against qualified individuals based on their status as protected veterans or individuals with disabilities, and prohibit discrimination against all individuals based on their race, color, religion, sex, or national origin. Moreover, these regulations require that covered prime contractors and subcontractors take affirmative action to employ and advance in employment individuals without regard to race, color, religion, sex, national origin, protected veteran status or disability.
* Salary range is an estimate based on our AI, ML, Data Science Salary Index 💰
Tags: Agile APIs CI/CD Computer Science Data analysis Data Analytics Data governance Data visualization Engineering Finance Git GitHub Machine Learning Matplotlib NumPy Pandas Pipelines Python Research SciPy SDLC Seaborn Security Statistics STEM Teaching Testing
More jobs like this
Explore more career opportunities
Find even more open roles below ordered by popularity of job title or skills/products/technologies used.