Software Development Certificate
Software development is a problem-solving process that involves specifying, designing, writing, documenting, testing, debugging and deploying software. Currently there is a tech talent gap - the demand for developers far exceeds the supply. This certificate program provides an individual with the foundational knowledge and skills, and a personal professional development plan, to be an effective entry-level software developer. This program is for non-degree-seeking or degree-seeking individuals with little or no computer programming experience. It is for those who are responsible, accountable, and strong problem solvers. It is especially for those who have a passion and desire for a life-transforming experience which leads to a career in software development.
- Cohort based - take the journey with others who have the same destination
- Competency based - the priority is on knowledge and skills, not grades
- 100% online - your commitment is to five courses, one each over five consecutive 8-week terms
- Instructor-led by two full-time computing professors with over 60 years of combined teaching experience
- Both asynchronous instruction - on your own time and pace - and synchronous instruction - weekly face-to-face interaction with your instructors and members of your cohort
- Regular seminars where you learn from and engage with practicing software engineering professionals
- Development of an individual professional development plan to provide an ongoing path for your software developer journey
- Digital Certificate upon completion of the program that includes 15 undergraduate credits that can be applied to degree programs at Doane
An introduction to the science and art of implementing solutions to problems using a high-level programming language. Upon completion of this course, the student will be able to design solutions to a variety of problems using top-down and structured design techniques and implement those solutions using programming constructs such as branching, loops, arrays, and functions or procedures.
A continuation of CMPS 145, this course further examines data and procedural abstraction and the design, implementation and analysis of algorithms. Upon completion of this course, the student will have gained experience with the object-oriented paradigm, a more modern program design technique, as an alternative to top-down and structured design. In addition, students will learn basic searching and sorting algorithms, sequential and random access file algorithms, dynamic memory allocation techniques, and basic data structures such as linked lists and binary trees.
Building on CMPS 146, this course focuses on abstract data types, such as linear lists, linked lists, stacks, queues, graphs, and trees, and the design, implementation, and efficiency of the algorithms for processing these structures. More advanced searching and sorting techniques will be introduced and analyzed. Upon completion of this course, the student will be able to utilize data abstraction to solve a wide variety of computational problems using various data structures and to analyze the efficiency of their solutions.
Building on the previous courses, this course will survey techniques and tools used in the application of engineering principles to the development of modern back-end software systems. In particular, this course examines the parts of a modern, tiered software system that are not part of the application’s user interface (UI). The course will examine the relevant architecture and design patterns used for reliable, robust software systems; database design and implementation; strategies and techniques for securing data; and one or more programming languages currently used in the industry for back-end systems. Upon completion of this course, students will have gained the knowledge and skills necessary to apply engineering principles, techniques, and tools in the development of back-end software.
Serving as the program capstone, this course will survey techniques and tools used in the application of engineering principles to the development of modern front-end software systems. In particular, this course examines the parts of a modern, tiered software system that comprise the application’s user interface (UI). The course will examine the relevant architecture and design patterns used for reliable, robust user interfaces; mobile and / or Web application development; and one or more programming and interface markup languages currently used in the industry for front-end development. Upon completion of this course, students will have gained the knowledge and skills necessary to apply engineering principles, techniques, and tools in the development of front-end software.
Alec Engebretson - Professor
Mark Meysenburg - Professor
How This Certificate Works
Courses are completely online: lectures, discussion boards, and even group projects.
You’ll be able to view course materials a full week before the class starts.
Once courses begin, assignments are due each week.
You will receive a digital certificate upon completion.
Need help or have questions? In addition to instructor access, every student receives support from an advisor.