CSC322: A MODERN
PROGRAMMING
LANGUAGE
Dr. Victor T. Odumuyiwa
Mr. Sola Edagbami
GENERAL INFORMATION
⦿ Instructor
◼ Dr. Victor Odumuyiwa,
🞆 Room 112 (Computer Science building),
🞆 [email protected],
🞆 Office hours: Tuesday 2-3pm
◼ Mr. Sola Edagbami
⦿ TAs:
◼
⦿ Lecture: Monday 9:00 -11:00 (NITDA IT Hub)
⦿ Recitation/Lab: Wednesday 14:00-16:00 (E303/Lab203)
⦿ Expectations
◼ Your attendance in the lectures and recitations is very important. I expect
that every student should be in class at most 5 minutes after the start
time. Late coming causes distractions so your punctuality will be highly
appreciated. You are expected to attend classes with your laptops but they
should remain closed until activity time.
IN YOUR PROSPECTIVE
⦿ “A contemporary programming language
should be taught in as much detail as available”
COURSE DESCRIPTION
⦿ Today’s world is driven by software and definitely the future will
be as well. Designing and developing good and efficient software
to solve problems and enhance productivity cannot be
overemphasized.
⦿ This course is designed to expose you to software construction
and some best practices that will turn you to good developers.
⦿ The main focus is on Object Oriented Design (OOD) and its
implementation using an Object Oriented Programming (OOP)
language like C#.
⦿ Students will be introduced to the .NET framework and a modern
software development environment specifically Visual Studio.
⦿ Concepts like abstraction, inheritance, polymorphism, classes,
objects, mutability, and exceptions will be taught. Ability to
memorize definitions or facts will be of no help in this course but
ability to conceptualize solutions to problem will be of great help.
LEARNING OUTCOMES
At the end of this course, students should be able to:
⦿ Write applications that are safe from bugs, easy to
understand and ready for change
⦿ Design software systems using OOD
⦿ Develop software using .NET framework and C#
⦿ Evaluate software program according to OO
principles
⦿ Create Abstract Data Types for extensible software
development
COURSE CONTENT
⦿ Introduction to .NET Framework and Visual
Studio.NET Environment
⦿ C# Syntax
⦿ Types
⦿ Specifications
⦿ Defensive programming
⦿ Test-first programming
⦿ Generics
⦿ Collections
⦿ Abstract Data type
⦿ Inheritance
⦿ Delegates – Lambda
⦿ LINQ
⦿ Graphical User Interface
SCHEDULE
Week/Date Lecture Readings PSets Lecturer
1 Introduction, .Net Chapt. 1 Dr
Framework Odumuyiwa
2 Basic Coding/C# Chapt. 2 Mr. Edagbami
Syntax
3 Types Chapt. 3 Mr. Edagbami
4 Specification Dr
Odumuyiwa
5 Defensive Dr
Programming and Odumuyiwa
Exceptions
6 Test First Dr
Programming Odumuyiwa
7 Generic Chapt. 4 Bank App Mr. Edagbami
project
(Individual)
SCHEDULE
Week/Date Lecture Readings PSets Lecturer
8 Collections Chapt. 5 Project Dr
(Group, 3 in a Odumuyiwa
group)
9 ADT Dr
Odumuyiwa
10 Inheritance Chapt. 6 Mr.
Edagbami
11 Delegate-Lambda Chapt. 9 Dr
Odumuyiwa
12 LINQ Chapt. 10 Dr
Odumuyiwa
13 Graphical User Mr.
Interface Edagbami
RECOMMENDED TEXTS
⦿ lan Griffiths. Program C# 5.0
⦿ Kurt Normark. Object-oriented Programming in C# for C
and Java programmers
⦿ Erich Gamma, Richard Helm, Ralph E. Johnson, John
Vlissides - Design Patterns: Elements of Reusable Object-
Oriented Software
⦿ Peter Coad and Edward Yourdon. Object Oriented Design
⦿ McConnell, Steve. Code complete. Pearson Education,
2004.
GRADING POLICY (1/2)
⦿ Your grade in this course will be based on your
performance in the problem sets (assignments), the
individual project, the group project and the final
examination. The overall grade is determined as
follows:
⦿ 10% Problem sets
◼ Problem sets will be released progressively during the
semester. Any act of copying or plagiarism will be penalized
(zero mark). The problem sets are to be solved independently.
You may collaborate with other students on your problem sets
to come up with implementation ideas but the codes you are
submitting must have be written by you and should be unique.
⦿ 10% Individual project
◼ Towards the middle of the semester, you will be given
individual project topics which you are expected to spend
about two weeks working on. Copying code or solutions from
the Internet or any source whatsoever is not allowed. Any
violation will be penalized (zero mark).
GRADING POLICY (2/2)
⦿ 20% Group project
◼ Group project afford you the opportunity to collaborate
in designing and developing software. Every group
member should participate extensively in the group
activity. You will have to present your project before the
whole class. You will be expected to respond to
questions from the instructor, the TAs and your fellow
students. Grading will be based on the overall
performance of the group and on the individual
performance in the group. This means that it is not
mandatory that everybody in a group get the same
grade in the project.
⦿ 60% Examination
◼ The final examination will come up at the end of the
semester. It is meant to evaluate your knowledge of the
course. You will be tested on your ability to design
solutions to problems using OOD.