Overview
Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
If you want to enter the exciting world of software development, this Software Engineering Foundations Specialization is for you. No prior degrees or knowledge of programming or application development are necessary. Software Developers are in great demand earning a median salary of US$110,140 per year according to the US Bureau of Labor and Statistics. The field is growing at a rate of 22% making it a great time to start a career in software engineering. The self-paced courses in this program provide the foundations to prepare for a wide range of IT & software development related careers, including web development, mobile application development, front-end, back-end, and full stack application development, software testing & quality assurance (QA), as well as DevOps engineering. This specialization is full of engaging videos, hands-on labs, and real-world projects that explore fundamental programming principles and foundations of design, architecture, and deployment; the software development lifecycle; Git and GitHub repositories; using the Linux terminal and creating Bash shell scripts to automate a variety of tasks; and coding with the Python programming language. The program is suitable for those new to software engineering or for those who would like a review of software engineering fundamentals. It prepares you with an introduction to the culture, technology, and job-ready skills needed to become successful in software engineering.   
Syllabus
- Course 1: Introduction to Software Engineering
- Course 2: Getting Started with Git and GitHub
- Course 3: Hands-on Introduction to Linux Commands and Shell Scripting
- Course 4: Python for Data Science, AI & Development
- Course 5: Developing AI Applications with Python and Flask
Courses
-
Kickstart your Python journey with this beginner-friendly, self-paced course taught by an expert. Python is one of the most popular programming languages, and the demand for individuals with Python skills continues to grow. This course takes you from zero to programming in Python in a matter of hours—no prior programming experience is necessary! You’ll begin with Python basics, including data types, expressions, variables, and string operations. You will explore essential data structures such as lists, tuples, dictionaries, and sets, learning how to create, access, and manipulate them. Next, you will delve into logic concepts like conditions and branching, learning how to use loops and functions, along with important programming principles like exception handling and object-oriented programming. As you progress, you will gain practical experience reading from and writing to files and working with common file formats. You’ll also use powerful Python libraries like NumPy and Pandas for data manipulation and analysis. The course also covers APIs and web scraping, teaching you how to interact with REST APIs using libraries like requests and extract data from websites using BeautifulSoup. You will practice and apply what you learn through hands-on labs using Jupyter Notebooks. By the end of this course, you’ll feel comfortable creating basic programs, working with data, and automating real-world tasks using Python. This course is suitable for individuals interested in pursuing careers in Data Science, Data Analytics, Software Development, Data Engineering, AI, and DevOps and a variety of other technology-related roles.
-
This short course is designed to equip learners with foundational skills in Python for developing AI-enabled web applications using the Flask framework and Watson AI libraries. You will explore the end-to-end lifecycle of building scalable web applications, starting from writing clean and modular Python code to deploying complete AI-powered solutions. The course begins by introducing Flask, a lightweight and flexible web framework, and helps learners build a strong foundation in web applications, APIs, and the overall development lifecycle. They will gain practical experience with the IBM Skills Network Cloud IDE, learn Python best practices including static code analysis, and write and run unit tests to ensure the reliability of their code. The course dives deeper into application development by teaching learners to build web applications with Flask covering topics such as routing, handling GET and POST requests, dynamic routes, and error management. By the end of the course, learners will complete a practice project and a final peer-reviewed project that showcases their ability to develop, test, and deploy AI-powered Flask applications. The hands-on experience gained throughout this course ensures learners are not only confident in their Python and Flask skills but are also ready to build intelligent web applications in real-world settings.
-
This course provides a practical understanding of common Linux / UNIX shell commands. In this beginner friendly course, you will learn about the Linux basics, Shell commands, and Bash shell scripting. You will begin this course with an introduction to Linux and explore the Linux architecture. You will interact with the Linux Terminal, execute commands, navigate directories, edit files, as well as install and update software. Next, you’ll become familiar with commonly used Linux commands. You will work with general purpose commands like id, date, uname, ps, top, echo, man; directory management commands such as pwd, cd, mkdir, rmdir, find, df; file management commands like cat, wget, more, head, tail, cp, mv, touch, tar, zip, unzip; access control command chmod; text processing commands - wc, grep, tr; as well as networking commands - hostname, ping, ifconfig and curl. You will then move on to learning the basics of shell scripting to automate a variety of tasks. You’ll create simple to more advanced shell scripts that involve Metacharacters, Quoting, Variables, Command substitution, I/O Redirection, Pipes & Filters, and Command line arguments. You will also schedule cron jobs using crontab. The course includes both video-based lectures as well as hands-on labs to practice and apply what you learn. You will have no-charge access to a virtual Linux server that you can access through your web browser, so you don't need to download and install anything to complete the labs. You’ll end this course with a final project as well as a final exam. In the final project you will demonstrate your knowledge of course concepts by performing your own Extract, Transform, and Load (ETL) process and create a scheduled backup script. This course is ideal for data engineers, data scientists, software developers, and cloud practitioners who want to get familiar with frequently used commands on Linux, MacOS and other Unix-like operating systems as well as get started with creating shell scripts.
-
Get started with Git and GitHub in this self-paced, introductory course! You’ll become familiar with collaborative version control and popular Git platforms. Collaboration and social coding are crucial parts of contemporary Software Engineering practices and the DevOps culture. You will begin this course with an overview of Git and Github fundamentals and explore key Git concepts such as branching and repositories, as well as the use of Git commands. You will also learn and practice various Git concepts such as forking, cloning and merging workflows using hands-on labs. And you’ll learn to use GitHub to work effectively as a team, and perform common Git operations, from both the Web UI and command line. The course wraps up with a final project where you will start building your portfolio by creating and sharing a public/open-source GitHub project. By completing this course you will demonstrate your Git and Github skills as well as add a project to your resume! All hands-on activities in this course can be performed using web-browser based tools and interfaces. Installation of any specialized software is NOT required on your own computer in order to complete the course.
-
Are you curious about the lucrative field that is software engineering and how you might be a part of it? This is the course for you! By taking this course, you will gain foundational knowledge of software development, programming, and the many exciting job roles and career paths that the IT industry offers. Learn about the power of the Software Development Lifecycle (SDLC), and modern software development frameworks methodologies like Agile and Scrum. Explore fundamental programming principles and foundations of design, architecture, and deployment. The course offers a number of labs that will help you get important hands-on experience. These include getting started with an IDE, the basics of programming in Python, and Hello World in 10 languages. The field of software engineering is growing at an estimated rate of 22% according to the US Bureau of Labor and Statistics. In addition to aspiring software engineers, front-end, back-end, full-stack developers, and DevOps professionals, this course is also suitable for those in related careers such as Product and Project Managers, IT Managers, Information Developers, UI/UX designers, and others who communicate and interact with software engineers. You will learn about the different job opportunities and possible career paths in software engineering and hear from industry professionals about their daily work. Software engineering professionals are in great demand, and now is the right time to learn more about this exciting domain. Start by enrolling now!
Taught by
Bethany Hudnutt, Joseph Santarcangelo, Lin Joyner, Ramesh Sannareddy, Rav Ahuja, Sam Prokopchuk and Upkar Lidder