Diploma in Software Development: Program Outline
Nepal Presbyterian Theological Seminary, in partnership with WCCM
Overview
This one-year software development diploma program is an instructor-supported training initiative designed to address the needs of individuals aspiring to commence a career in software development. It applies contemporary programming languages and mobile software development concepts, including authentication and authorization, RESTful APIs, and sophisticated database structures such as many-to-many relationships.
After completing this course, students will be able to:
Design and develop Progressive Web Applications
Design and develop a Naive mobile application
Design and develop a Cross-platform application
Responsive Web Design
This program emphasizes a hands-on approach to developing applications and solutions. Career preparation starts on Day One. In the final module, students prepare for the industry by creating a practical solution for a real-world client. They will gain experience working in teams and engaging in the analysis, design, implementation, testing, and deployment of a mobile solution.
Upon graduation, students may explore job opportunities in various sectors, including government, startups, and diverse marketplaces such as technology, healthcare, business, marketing, finance, education, and communication. Potential job roles include:
Mobile app developers
Full-stack (user interface design to server-side scripting and database management) developers
Software Developer in Test
Software Quality Engineer
Software Testers
Scrum Master (a coach, facilitator, and a servant leader who empowers the team to thrive to contribute to a successful project delivery)
Admission Requirements
All applicants must satisfy the following requirements:
Proof of High School Completion: Submit an attestation of high school completion (or equivalent) demonstrating mathematical aptitude. Equivalents include a High School Graduation Certificate.
Completed Application: Ensure that your application form is filled out.
Character Reference Letter: Include a letter from a local church pastor or a seminary instructor providing a character reference.
College Education Requirement: All applicants must have completed at least three years of college education. This program is open to graduates from seminaries, universities (both private and public), and colleges specializing in any field of study. Priority will be given to students from accredited seminaries.
Official Transcripts: Provide official transcripts for all trade reports or scores from recognized Mathematics and Computer Programming equivalent examinations.
Optional Certificates: You may also submit certificates from any corporate education training or professional development programs.
Admission Interview: Complete an admission interview, which can be conducted either in person or online.
Curriculum
The program uses various instructional modalities. Some components will be presented in a traditional classroom or laboratory setting, while others will be offered exclusively online. Additional sessions will take place in collaborative environments with instructors.
| General | Fullstack | Testing |
July | Agile Software Development Lifecycle (SDLC) (SD491)
Digital Work Ethics (SD492) |
|
|
August |
| Complete JavaScript Programming Bootcamp (SD401) |
|
Sept |
|
|
Oct |
| Complete Full-stack Web Development Bootcamp (SD402) |
|
Nov | Web Design using Figma (SD493) |
|
Dec | Winter Break |
Jan |
| Complete React, Node.js, Redux Bootcamp (SD403) | Java Programming for Automation Testers (SD442) |
Feb |
| React Native: IOS & Android Application Development (SD411) |
March |
| Fullstack: API Development and Testing (SD413) | Software Testing Fundamentals (SD441) |
Apr |
|
| Test Automation (SD443) |
May | Capstone Project |
Jun |
Course Description
SD491: Agile Software Development Lifecycle (SDLC)
This course provides an overview of key concepts in modern software development. Students will learn about APIs, their usage in websites and apps, and how to build them. Discover what web applications are, along with their components and interactions. Understand basic programming concepts, including languages, frameworks, libraries, databases, and cloud services. Explore the trend of containers with Docker and Kubernetes, as well as metrics for measuring application performance and reliability. Learn how to scale production applications using various architectural patterns, how developers collaborate, and industry standards for codebase management. Familiarize yourself with popular technologies across engineering roles and grasp the fundamentals of the software development process.
SD492: Digital Work Ethics
There is a growing emphasis on ethics in software development. Developers are expected to work skillfully while recognizing the broader ethical and social implications of their work. They must understand their professional responsibilities and the impact of software solutions in a global context.
This course helps students acquire the following moral competencies:
Moral sensibility: the ability to recognize social and ethical issues in software development.
Moral analysis skills: the ability to analyse moral problems in terms of facts, values, stakeholders, and their interests;
Moral creativity: the ability to think out different options for action in the light of (conflicting) moral values and the relevant facts;
Moral judgement skills: the ability to give a moral judgement based on different ethical theories or frameworks, including professional ethics and common sense morality;
Moral decision-making skills: the ability to reflect on different ethical theories and frameworks and to make a decision based on that reflection.
SD493: Web Design using Figma
In this comprehensive, two-hour project-based course, students will explore the fundamental tools and features of Figma, a powerful design application. Through a hands-on approach, participants will learn how to create a visually appealing website prototype, focusing on layout, color schemes, typography, and user experience principles. Once the design is finalized in Figma, students will transition to the coding phase, where they will convert their prototype into a functional website using HTML and CSS. This process will involve writing clean, semantic code, understanding the box model, and ensuring responsive design, thereby equipping students with essential skills for web development in a practical and engaging manner.
SD401: Complete JavaScript Programming Bootcamp
This is one of the foundation boot camps. It covers the fundamentals of JavaScript, including variables, if/else statements, operators, functions, arrays, objects, loops, and strings. It also introduces modern ES6+ features such as arrow functions, destructuring, the spread operator, and optional chaining. Key concepts in Object-Oriented Programming (OOP) will be explored, including classes, constructors, and prototypal inheritance. Additionally, we will cover complex topics like the 'this' keyword, higher-order functions, and closures. Asynchronous JavaScript will also be addressed, focusing on the event loop, promises, async/await, AJAX, and APIs. Finally, the course will discuss code architecture using flowcharts, common design patterns, and modern tools for 2022 and beyond, including NPM, Parcel, Babel, and ES6 modules.
SD402: Complete Full-stack Web Development Bootcamp
This is the second Foundation Boot Camp, designed for aspiring developers. In this comprehensive course, students will explore the latest technologies shaping the web today, including JavaScript, React, Node.js, and Web3 development. Through hands-on projects and collaborative learning, students will gain a deep understanding of frontend development with React, mastering component-based architecture, state management, and responsive design.
The course will cover Node.js on the backend, allowing students to create robust server-side applications and APIs, manage databases, and understand asynchronous programming. By the end of this boot camp, students will emerge as well-rounded developers, equipped with the skills needed to build dynamic, full-stack applications and adapt to the ever-evolving tech landscape.
SD403: Complete React, Next.js, Redux Bootcamp
This course is designed to help learners develop the skills necessary to become proficient React developers and prepare them for job opportunities. It covers important topics like the Next.js "App" router, React Server Components, and Server Actions. You will learn about state management, including the differences between local and global state, as well as how to place UI and remote data. Students will focus on building reusable components and using the useEffect hook. The course will also show ways to optimize performance, including memoization, useMemo, useCallback, and code splitting. You will explore advanced features like useReducer, Context API, and Redux while building real-world application features such as authentication, data sorting, and dark mode. Additionally, the course will explain how React works internally, covering concepts like the virtual DOM and reconciliation. You will also learn styling techniques using Tailwind CSS, CSS Modules, and Styled Components.
SD411: React Native: IOS and Android Application Development
In this course, students will explore the impressive capabilities of ReactJS for creating native mobile applications that are compatible with both iOS and Android systems. Students will be guided through the development of cross-platform mobile apps without needing to master complicated languages like Swift, Objective-C, or Java/Android. The syllabus will thoroughly investigate both basic concepts and advanced features of React Native, offering valuable insights into effective mobile app development. Students will also acquire the skills to effortlessly implement crucial functionalities, such as integrating Google Maps for location services and using the device's camera for taking photos and videos.
SD413: Fullstack: API Development and Testing
In this course, students will learn how to design and develop a RESTful API by applying best practices and adhering to the principles of REST. They will focus on important aspects such as API security, versioning, lifecycle management, and documentation. Students will also write Swagger 2.0/OpenAPI specifications in YAML format. Additionally, they will learn how to create an API management strategy for their enterprise and utilize common API management platforms, such as Apigee, IBM API Connect, and MuleSoft Anypoint, for building API proxies.
SD441: Software Testing Fundamentals
This course helps students master the fundamentals of manual software testing and write effective test cases. Participants will explore black-box testing methods, Agile principles, and Scrum practices. Students will manage test cases in JIRA using Zephyr Scale, execute tests, and address mobile testing challenges. They will gain hands-on experience with API testing in Postman and learn basic test automation with Selenium WebDriver, including codeless automation with Selenium IDE and Katalon Studio. The course also introduces Performance Testing with JMeter and SQL basics for data validation, as well as freelance testing platforms and white-box testing techniques, such as statement, decision, and path coverage.
SD442: Java Programming for Automation Testers
This course aims to equip students with the programming skills necessary to create Java automation frameworks, such as Selenium, Appium, and REST API, from the ground up. It will enable students to thoroughly understand Java OOP concepts through hands-on applications and clarify how to effectively use Java conditions and loops. Students will also gain a deeper understanding of advanced topics, such as Java collections, and learn to apply them effectively in solving Java logic challenges. Furthermore, it will provide a practical understanding of how to use objects, classes, methods, and functions in Java.
SD443: Test Automation
This course helps students learn how to create automation frameworks, including PAGEOBJECT, DATADRIVEN, and HYBRID frameworks, from scratch. Students will improve their programming skills by writing efficient code to automate test cases. They will also learn to verify data accuracy using the application's graphical user interface (GUI). The course will enhance their understanding of automation principles and coding standards. Students will become skilled in Selenium Webdriver and gain a strong foundation in Core JAVA.
Nepal Presbyterian Theological Seminary
Fee Structure for a year Software Development Diploma Program
Description | Annual Fee |
Computer/Internet | 12000 |
Lodging and food | 3000x12=36000 |
|
|
Total | 48000 |