CIS151 - C# Development II
3 Credit hours - 2 Lecture, 2 Lab
Prerequisite(s): Grade of “C” or better in CIS150
Course Rationale:
This course is designed to develop proficiency in programming to solve technical problems. To be an ideal candidate for most programming positions, students need special skills in programming, and this course delves deeper into topics such as object-oriented programming, effective data access, and distributed programming.
Catalog Description:
This course is a continuation of CIS150 (C# programming I). After a quick review, the student is introduced to advanced programming concepts such as data abstraction, classes, maintaining relational data, the use of additional visual components and other techniques commonly employed in advanced, commercial, multi-tiered applications. Other topics such as programming for the Internet, targeting handheld devices, and using graphics to enhance an application’s visual appeal may also be explored.
Course Objectives
Upon successful completion of this course students should be able to:
Analyze a problem and implement an appropriate solution.
Implement solutions integrating the concepts of object-oriented programming including encapsulation, inheritance, and polymorphism.
Demonstrate the use of components outside of the programming language to implement solutions to complex problems, and quickly become familiar with new components.
Develop solutions using a variety of user interface paradigms, including console, GUI, mobile and Web.
Create/update/delete data in sequential file format and in a relational database such as Access or SQL.
Design and develop software following a multi-tiered software model using classes and modules.
Maintain consistent adherence to software style and coding conventions that are appropriate in a team of developers managing a project.
Diagnose and debug software problems and develop code that is less prone to common programming pitfalls.
All course assignments and exams are closely aligned to, and assess the student's mastery of, these core objectives.
Core Outcomes
In this course, students continue to build upon the programming knowledge gained in CIS-150 and learn how to write, debug, and maintain well formed, well documented C# code. By the end of this course, students should be able to:
Demonstrate object-oriented programming
Understand the fundamentals of classes - properties, methods, events, and constructors; how to create a class; how to use classes in code
Understand inheritance - inheriting the functionality of a base class into a derived class
Understand polymorphism - extending the functionality in a class after inheriting from a base class, overriding methods in the derived class
Understand encapsulation - creating classes that hide their implementation details while still allowing access to the required functionality through the interface, access modifiers
Demonstrate best-practices of general software development
Understand application life cycle management - phases of application life cycle management, software testing
Interpret application specifications - reading application specifications and translating them into prototypes, code, select appropriate application type, and components
Understand algorithms and data structures - arrays, stacks, queues, linked lists, and sorting algorithms; performance implications of various data structures; choosing the right data structure
Demonstrate n-tier application architecture
Adhere to n-tier architecture best-practices and separation of tiers/layers - describe benefits, create applications that demonstrate these best-practices
Demonstrate the use of source control systems such as Azure DevOps Server (formerly TFS) to work on software projects as a team.
Demonstrate the use of databases in application development
Connect to a database to perform Create, Read, Update, and Delete (CRUD) operations
Discuss best-practice operations when working with database to reduce database server load and improve application performance
Understand data binding connections in C# applications
Understand web-based data connections in C# applications
Create, consume, and use a web service
Exams and Certification Equivalent:
Certification included in the course - Certiport IT Specialist, Software Development
Test Out Requirements
Students who wish to demonstrate proficiency in this course will need to complete a Departmental proficiency exam. Departmental proficiency examinations are created by appropriate college faculty to allow students to demonstrate their mastery of course content in designated subjects. These examinations will be equivalent to the cumulative final assessment used in the course. Faculty will determine the minimum score required to earn credit by exam for these courses.
The college’s test out policy is outlined in policy 2.12 - Credit by Exam (Test Out)
Last updated