Administrative 
Dr. Hakem Beitollahi 
Computer Engineering Department 
Soran University
Instructor 
 Name: Dr. Hakem Beitollahi 
 Born date: 1980 
 Born Place: Oshnaviyeh, west 
Azerbijan, Iran 
 Education: 
 Bachelor of computer engineering 
(Hardware branch) 
 University of Tehran, Iran 
 Master of computer engineering 
(Computer Architecture) 
 Sharif university of technology, Iran 
 PhD in Computer engineering 
 University of Leuven, Belgium 
 Contact me: 
 Hakem.Beitollahi@soran.edu.iq Administrative — 2
Objectives of the course 
 Upon successful completion of the course, 
students will develop: 
 Design methods in C# classes 
 Create arrays and collections in C# to store and 
access data of same type 
 Understanding the concepts of OOP 
 Classes, objects, inheritance, polymorphism, operator 
overloading, function template, etc. 
 Work with files as input and output of C# programs, 
and demonstrate how to create and change files 
 Final goal: Design programs and projects by using 
OOP concepts. 
Administrative — 3
Syllabus 
 Review fundamental of programming 
 Data types, conditional statements, loops, strings, arrays 
 Functions and Methods 
 Basic concepts of OOPs 
 Classes and objects 
 Constructors and destructors 
 References and dynamic allocations 
 Introduction to GUI programming 
 Inheritance 
 Operator overloading [Second Semester] 
 Virtual functions and polymorphism 
 Templates and exceptions 
 Abstract classes and interfaces 
 File I/O 
 Iterative Solutions 
Administrative — 4
References 
 C#, How to Program-Deitel 
 C#, The Complete Reference - Herbert Schildt 
 An Introduction to Object Oriented Programming 
with C# (Kieran Mulchrone) 
 Introduction to Object-Oriented Programming 
Using Visual C# Express Edition 
 Object Oriented Programming using C# (Kendal) 
Administrative — 5 
I have pdf of all books. You can get a copy of them
Software 
 Visual studio 2012 
 You can borrow the DVD of the software 
from me and installed on your own 
computer 
 If you do not have your own computer, the 
computer labs on campus have the 
software. 
Administrative — 6
Computer Science jobs 
 For the 6 months to 29 
June 2011, IT jobs within 
the UK citing Computer 
Science also mentioned 
the following 
programming languages 
in order of popularity. 
 The figures indicate the 
number of jobs and their 
proportion against the 
total number of IT job ads 
sampled that cited 
Computer Science. 
1 4253 (36.01 %) Java 
2 3466 (29.35 %) C# 
3 3278 (27.76 %) SQL 
4 2909 (24.63 %) C++ 
5 2426 (20.54 %)JavaScript 
6 1514 (12.82 %) C 
7 1103 (9.340 %) PHP 
8 976 (8.264 %) Python 
9 762 (6.452 %) Perl 
10 490 (4.149 %) Ruby 
11 476 (4.030 %) VB.NET 
12 434 (3.675 %) T-SQL 
13 329 (2.786 %) VB 
14 276 (2.337 %) Shell Script 
15 256 (2.168 %) Objective-C
EEaarrllyy pprrooggrraammmmiinngg llaanngguuaaggeess 
88 
1950s: 1960s: 1970s: 
Algol68 
Classic C 
Simula 
Pascal 
BCPL 
Lisp 
Fortran 
COBOL 
Algol60 
PL1 
Red==major commercial use 
Yellow==will produce important “offspring”
MMooddeerrnn pprrooggrraammmmiinngg 
llaanngguuaaggeess 
99 
Simula67 Eiffel 
C++ 
Object Pascal 
Java95 
C++98 
Java04 
Ada98 C# 
C++0x 
Lisp Python 
Smalltalk 
Fortran77 
Ada 
COBOL89 
PHP 
C89 
Pascal 
COBOL04 Javascript 
Visual Basic PERL
Family of Languages
Course Prerequisites 
 Prerequisites: 
 Introduction to programming 
 Who should be taking this course: 
 students who want to switch to a computer 
science major 
 students who are just interested in programming. 
 Who should NOT be taking this course 
 Students trying to get out of taking a math 
requirement. This class may be more difficult than 
the math you are trying to avoid. 
11
What the class is really about 
There are two main goals of this course: 
1. Basics of C# 
2.Core Concepts of Programming Languages 
3.Concepts of Object Oriented Programming 
plus 
2.Learn the Principles of Software 
Development 
12
Evaluation & Grading 
 Grade break down to 
 Homework 5% 
 Class Exams 20% (After finishing each chapter, you 
have a long (3 hours) exam) 
 Project 15% 
 Final Exam 60% 
 Late delivery of homework policy 
 10% reduction for each day late 
 Homeworks take a lot of time, so start them early 
 Back up your work. Computer crashes or lost 
programs are not valid excuses for not handing in an 
assignment.
A Word About Cheating 
 Discussing homework concepts is fine, but you 
must submit your own work. 
 If you are caught cheating, 100% you will get 0 out of 40 for the 
40% of the course grade. 
 Academic Misconduct : 
 Running out of time and using someone else's output 
 Borrowing code from someone who took course before or has done 
the project 
 Cheating in exams and assignments 
 Etc.
Student Civility 
 In an effort to make this class enjoyable 
for everybody… 
 Please be on time to class! 
 Please do not talk to your friends and 
neighbors in class! It disturbs everyone, and 
makes it hard to concentrate. If you have a 
question, just ask me! 
 Please turn your pagers and cell-phones off! 
15
Help is always available 
 Option 1: Come to my Office 
 Location: second floor, lecturer 
office 
 I get bored when nobody visits! 
 Option 2: send your problem by 
email to me 
 Option 3: ask other lecturer staff 
 E,g., M. Fakher, M. Michel, M. Nadim, etc. 
 Option 4: ask students of second, 
third and fourth years 16
Administrative — 17

Administrative

  • 1.
    Administrative Dr. HakemBeitollahi Computer Engineering Department Soran University
  • 2.
    Instructor  Name:Dr. Hakem Beitollahi  Born date: 1980  Born Place: Oshnaviyeh, west Azerbijan, Iran  Education:  Bachelor of computer engineering (Hardware branch)  University of Tehran, Iran  Master of computer engineering (Computer Architecture)  Sharif university of technology, Iran  PhD in Computer engineering  University of Leuven, Belgium  Contact me:  Hakem.Beitollahi@soran.edu.iq Administrative — 2
  • 3.
    Objectives of thecourse  Upon successful completion of the course, students will develop:  Design methods in C# classes  Create arrays and collections in C# to store and access data of same type  Understanding the concepts of OOP  Classes, objects, inheritance, polymorphism, operator overloading, function template, etc.  Work with files as input and output of C# programs, and demonstrate how to create and change files  Final goal: Design programs and projects by using OOP concepts. Administrative — 3
  • 4.
    Syllabus  Reviewfundamental of programming  Data types, conditional statements, loops, strings, arrays  Functions and Methods  Basic concepts of OOPs  Classes and objects  Constructors and destructors  References and dynamic allocations  Introduction to GUI programming  Inheritance  Operator overloading [Second Semester]  Virtual functions and polymorphism  Templates and exceptions  Abstract classes and interfaces  File I/O  Iterative Solutions Administrative — 4
  • 5.
    References  C#,How to Program-Deitel  C#, The Complete Reference - Herbert Schildt  An Introduction to Object Oriented Programming with C# (Kieran Mulchrone)  Introduction to Object-Oriented Programming Using Visual C# Express Edition  Object Oriented Programming using C# (Kendal) Administrative — 5 I have pdf of all books. You can get a copy of them
  • 6.
    Software  Visualstudio 2012  You can borrow the DVD of the software from me and installed on your own computer  If you do not have your own computer, the computer labs on campus have the software. Administrative — 6
  • 7.
    Computer Science jobs  For the 6 months to 29 June 2011, IT jobs within the UK citing Computer Science also mentioned the following programming languages in order of popularity.  The figures indicate the number of jobs and their proportion against the total number of IT job ads sampled that cited Computer Science. 1 4253 (36.01 %) Java 2 3466 (29.35 %) C# 3 3278 (27.76 %) SQL 4 2909 (24.63 %) C++ 5 2426 (20.54 %)JavaScript 6 1514 (12.82 %) C 7 1103 (9.340 %) PHP 8 976 (8.264 %) Python 9 762 (6.452 %) Perl 10 490 (4.149 %) Ruby 11 476 (4.030 %) VB.NET 12 434 (3.675 %) T-SQL 13 329 (2.786 %) VB 14 276 (2.337 %) Shell Script 15 256 (2.168 %) Objective-C
  • 8.
    EEaarrllyy pprrooggrraammmmiinngg llaanngguuaaggeess 88 1950s: 1960s: 1970s: Algol68 Classic C Simula Pascal BCPL Lisp Fortran COBOL Algol60 PL1 Red==major commercial use Yellow==will produce important “offspring”
  • 9.
    MMooddeerrnn pprrooggrraammmmiinngg llaanngguuaaggeess 99 Simula67 Eiffel C++ Object Pascal Java95 C++98 Java04 Ada98 C# C++0x Lisp Python Smalltalk Fortran77 Ada COBOL89 PHP C89 Pascal COBOL04 Javascript Visual Basic PERL
  • 10.
  • 11.
    Course Prerequisites Prerequisites:  Introduction to programming  Who should be taking this course:  students who want to switch to a computer science major  students who are just interested in programming.  Who should NOT be taking this course  Students trying to get out of taking a math requirement. This class may be more difficult than the math you are trying to avoid. 11
  • 12.
    What the classis really about There are two main goals of this course: 1. Basics of C# 2.Core Concepts of Programming Languages 3.Concepts of Object Oriented Programming plus 2.Learn the Principles of Software Development 12
  • 13.
    Evaluation & Grading  Grade break down to  Homework 5%  Class Exams 20% (After finishing each chapter, you have a long (3 hours) exam)  Project 15%  Final Exam 60%  Late delivery of homework policy  10% reduction for each day late  Homeworks take a lot of time, so start them early  Back up your work. Computer crashes or lost programs are not valid excuses for not handing in an assignment.
  • 14.
    A Word AboutCheating  Discussing homework concepts is fine, but you must submit your own work.  If you are caught cheating, 100% you will get 0 out of 40 for the 40% of the course grade.  Academic Misconduct :  Running out of time and using someone else's output  Borrowing code from someone who took course before or has done the project  Cheating in exams and assignments  Etc.
  • 15.
    Student Civility In an effort to make this class enjoyable for everybody…  Please be on time to class!  Please do not talk to your friends and neighbors in class! It disturbs everyone, and makes it hard to concentrate. If you have a question, just ask me!  Please turn your pagers and cell-phones off! 15
  • 16.
    Help is alwaysavailable  Option 1: Come to my Office  Location: second floor, lecturer office  I get bored when nobody visits!  Option 2: send your problem by email to me  Option 3: ask other lecturer staff  E,g., M. Fakher, M. Michel, M. Nadim, etc.  Option 4: ask students of second, third and fourth years 16
  • 17.

Editor's Notes

  • #11 Molly Intersimone’s rendering - of the programming language family tree and relationships: grandpa - algol 60 grandma-simula67 pa-C sibling’s in age C++ (born 85), Java(95), C#(2000)