Program Description:
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