20586 Workshop: Object-Oriented Programming 1

Credits: 3 advanced seminar credits in Computer Science or in Software Engineering

Prerequisites: At least 36 credits in Computer Science. Students must also fulfill all English requirements and take bibliographic instruction in the Library. Students will be accepted only if they have completed, or are about to complete, at least one advanced course in Computer Science and received a suitable final grade in either Advanced Programming with Java or Software Engineering: Abstraction and Object-Oriented Design. Enrollment is subject to the written approval of the faculty member responsible for seminars.

The workshop is based on Design Patterns: Elements of Reusable Object-Oriented Software, by E. Gamma, R. Helm, R. Johnson, J.M. Vlissides (Addison-Wesley, 1995), and on Pro C# 2010 and the .NET 4.0 Platform (5th ed.), by A. Troelsen (Apress, 2007), as well as articles on object-oriented programming.

The workshop presents topics in object-oriented program design using the C# programming language and the .NET platform, which are very successful in the software development market, primarily because C# extensively supports principles of object-oriented coding/programming and due to the high flexibility of the .NET platform that includes support in a variety of programming languages and contains strong tools for graphic applications, data processing, multimedia applications, communication and Internet applications.

Students are required to lecture to a group of students and faculty members on an advanced topic in object-oriented program design and submit a large-scale final project that demonstrates the knowledge and tools acquired by the student during the workshop.

Topics: Design patterns, UML, modeling tools, C# programming language, N-Tier software architecture, WPF, ADO.NET, XML, ORM, LINQ.

Note: The number of participants in the workshop is limited.

1There is some overlap in the content of this and other courses. For details, see Overlapping Courses.