This course is the first in a series of three computer programming courses that introduces students to the fundamentals of the C# programming language, the Visual Studio Integrated Development Environment and the .NET framework. Students will also be introduced to the Software Development Lifecycle and Agile development methodologies.
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. The purpose of programming is to create a set of instructions that computers use to perform specific operations or to exhibit desired behaviours.
This course is designed for those with no previous knowledge or experience with C#, Visual Studio Integrated Development Environment, or the .NET framework and want to learn the fundamentals. This includes those who have previous programming experience with other languages and want to expand their skill set, and those who are completely new to programming.
Course Level Learning Outcomes
By completion of this course, successful students will be able to:
- Analyze a simple programming problem, design a solution, write and document the application code and debug the application
- Develop introductory problem-solving, troubleshooting and communication skills that are applicable to software development
Topics of Instruction
- Introduction to classes, objects, methods, properties, data encapsulation and data hiding
- Introduction to methods, data-passing, flow control with decision making and iterations, as well as array processing and simple file I/O with exception handling concepts
- Solutions to simple programming problems as both console-mode and as Graphical User applications
- Hands-on approach to Software Development Lifecycle (from requirements analysis, through design, to implementation and testing) and translating informal problem requirements into input-process-output specification
- Hands-on approach to the use of a variety of diagramming tools, including flowcharts, hierarchy charts, and simple class diagrams, students express design decisions regarding class and method structure, as well as control flow
- Introduction to the basic ideas of agile methodology