Course

Course Summary
This apprenticeship is federal/state registered
Credit Type:
Apprenticeship
ACE ID:
IBMA-0001
Occupation Title:
Software Engineer
Type of Apprenticeship Program:
Competency-based
Estimated length of On the Job Training (OJT):
2,000 hours or one year
Estimated length of Related Training Instruction (RTI):
218 Hours
Dates Offered:
Credit Recommendation & Competencies
Level Credits (SH) Subject
Lower-Division Baccalaureate 3 Introduction to Project Management
Lower-Division Baccalaureate 3 Business Communications
Lower-Division Baccalaureate 3 Customer Relations Management
Lower-Division Baccalaureate 3 Decision Making and Critical Thinking
Lower-Division Baccalaureate 3 Computer Fundamentals
Lower-Division Baccalaureate 3 Computer Programming
Lower-Division Baccalaureate 3 Software Development
Lower-Division Baccalaureate 3 Web Programming
Lower-Division Baccalaureate 3 Web Development
Lower-Division Baccalaureate 3 Cloud Applications
Lower-Division Baccalaureate 3 Introduction to Python Programming
Upper-Division Baccalaureate 3 Software Engineering
Upper-Division Baccalaureate 9 Internship in Information Technology, Software Development (Work Based Learning)
Description

Occupation Description:

Software Engineers at IBM are the backbone of our strategic initiatives to design, code, test, and provide industry-leading solutions that make the world run today - planes and trains take off on time, bank transactions complete in the blink of an eye and the world remains safe because of the work our software developers do. Whether it is working on projects internally or for a client, software development is critical to the success of IBM and our clients worldwide. At IBM, we use the latest software development tools, techniques and approaches and work with leading minds in the industry to build solutions we can be proud of.

Program Description:

Software Engineer apprentices work as part of a larger team of experienced developers and mentors in an interactive, collaborative environment. The Software Engineering Apprenticeship includes micro-credentials like professional skills, agile development, design thinking, cloud computing, and cloud design. The program also includes a broad range of fundamental skills in computer programming fundamentals, social coding-Github, Software design and development, continuous integration and delivery, DevOps automation, web programming, enterprise architecture, and cloud computing fundamentals. The program is a great pathway for careers in software and application development as well as client support in our Cloud, Cognitive AI, and Consulting organizations.

Program Objective:

The objective of this course is to prepare students for a career as a Software Engineer at IBM

Learning Outcomes:

  • Work with stakeholders to resolve issues, and apply ethics to problem solving.
  • Discuss agile project management using agile terminology, prepare estimates;
  • Allocate time, personnel, and other resources to enable timely completion of a project;
  • Monitor and control tasks;
  • Conduct risk management processes;
  • Manage stakeholder expectations;
  • Employ project management principles and processes;
  • Manage and control change, and close the project
  • Demonstrate an understanding of customer relationship management;
  • Demonstrate an understanding of customer relationship management strategies and behaviors;
  • Serve internal and external customers;
  • Identify effective communication in the role of serving internal and external customers;
  • Explain the effects of technology on customer relationship management
  • Prepare effective communications for business situations;
  • Identify ethical, cultural, and global issues affecting business communication;
  • Utilize analytical and problem-solving skills appropriate to business communication;
  • Participate in team activities that lead to the development of collaborative work skills;
  • Select appropriate organizational formats and channels used in developing and presenting business messages;
  • Compose and revise written business correspondence documents using computer technology;
  • Deliver effective oral business presentations.
  • Create programs using fundamental concepts;
  • Identify programming's role in cyber operations;
  • Create flow charts and design and implement pseudo-code to solve problems;
  • Identify variable types and strings;
  • Analyze, create and compile programs;
  • Describe the use of classes and objects in programming;
  • Explain vectors and create functions in programming languages.
  • Describe software development and design methodologies.
  • Create data and object models.
  • Develop use cases.
  • Communicate using information system terminology.
  • Work with stakeholders to develop requirements.
  • Develop, integrate, and implement a multifaceted software application as a team.
  • Categorize different data types.
  • Analyze the data collection process.
  • Describe the functions, structure, and major system files of various operating systems.
  • Identify, update and maintain the operating system on different types of devices.
  • Work with technicians both individually and as a team in a technical environment.
  • Recognize and interpret common error codes in both hardware and software environments and identify steps to correct the problems.
  • Identify and resolve operating system security threats.
  • Create Shell scripts and identify when to use and troubleshoot when the scripts error.
  • Design user-friendly interfaces to web applications
  • Apply principles of usability to the design of web pages and websites
  • Use HTML, CSS, and CSS frameworks
  • Understand and manipulate the DOM elements in web page design
  • Program for the Web using programming languages such as JavaScript, jQuery, React.js , and Node.js.
  • Review the methodologies, tools, and techniques used in the web application development
  • Create and deploy APIs for the Web
  • Design response websites for accessibility
  • Create web applications using programming languages such as JavaScript, jQuery, React.js and Node.js.
  • Design applications for deployment in the Cloud
  • Understand the principles, techniques, and tools for the Cloud
  • Review architectures for the Cloud environment
  • Examine deployment techniques such as Docker and Kubernetes to build, ship, and manage applications
  • Utilize the Python programming language format and structure in coding;
  • Understand and utilize Python programming concepts, including lists, dictionaries, classes, and loops;
  • Use Python libraries and tools;
  • Debug basic Python programs;
  • Employ Python as a means for developing information security tools.
  • Gather requirements from stakeholders.
  • Evaluate and analyze requirements using established techniques.
  • Apply product development concepts using agile project management.
  • Integrate knowledge of software development including methodologies, tools, and techniques.
  • Design and develop a software system that addresses the needs of stakeholders.
  • Analyze a complex computing problem and apply principles of programming and other relevant disciplines to identify solutions.
  • Evaluate the requirements for a specific programming problem and recommend solutions.
  • Based on the requirements, create the program to meet the objectives.
  • Function effectively as a member or leader of a team engaged in activities appropriate to the task.
  • Identify and analyze user needs then create, integrate solutions in the computing-based project.
  • Demonstrate the application of knowledge and skill sets acquired from the courses and workplace in the assigned job function.
  • Use creative thinking to solve problems;
  • Develop strategies for risk analysis and risk mitigation;
  • Conduct situational analysis, allocate resources to resolve problems;

General Topics:

  • Principles and practices
  • Software engineering fundamentals
  • DevOps, and platforms
  • Services and solutions
Instruction & Assessment

Instructional Strategies:

  • Classroom Exercise
  • Computer Based Training
  • Discussion
  • Laboratory
  • Learner Presentations
  • Practical Exercises

Methods of Assessment:

  • Examinations
  • Performance Rubrics (Checklists)
  • Presentations
  • Quizzes
Supplemental Materials