1 / 18

IT 519 Introduction to Programming Using C#

IT 519 Introduction to Programming Using C#. Gülşen Demiröz. Summary of the Course. Introduction to programming and algorithms We will learn how to develop object oriented programs using the C# programming language on Microsoft ® .NET Platform

lirit
Download Presentation

IT 519 Introduction to Programming Using C#

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IT 519Introduction to Programming Using C# Gülşen Demiröz

  2. Summary of the Course • Introduction to programming and algorithms • We will learn how to develop object oriented programs using the C# programming language on Microsoft ®.NET Platform • We will also learn few classes from the Microsoft ®.NET Framework Library as needed

  3. Course Information • Website: http://myweb.sabanciuniv.edu/gulsend/su_current_courses/it-528/ • Instructor: Gülşen Demiröz, FENS L026, x9559, gulsend@sabanciuniv.edu • Lectures: Thursdays 19:00 – 22:00 at Karakoy Center Saturdays 13:00 - 16:00, FENS G032 • Textbooks • Visual C# 2008 Howto Program, 3rd Edition, (ISBN: 013605322X), byHarvey & Paul Deitel • C# 2008 forProgrammers, 3rd Edition, (ISBN: 0137144156), by Paul J. Deitel & Harvey M. Deitel • Inside C#, 2nd Edition, (ISBN: 0735616485), byTomArcher & Andrew Whitechapel • CLR via C#, 2ndEdition,(ISBN: 0137144156), byJeffrey Richter • Lecture Notes: http://myweb.sabanciuniv.edu/gulsend/su_current_courses/it519/lecture-notes/ • I can also upload them to SUCourse if you wish • Grading: Midterm (30%): 4th week of the course (24 October 13:00) Final Exam (40% ): Last (7th) week of the course (14 November 13:00) Homeworks (30% total): 2 homework will be assigned and they are of equal weight • Homework: programming homework, zip the whole solution and send it to me via SUCourse • Exams: programming exams on your laptops in the class, then you e-mail me

  4. About Me & then You • Work Experience • 1997-2008 Microsoft Corporation, Redmond WA, USA •   Senior Development Lead (Microsoft Online Services) •   Senior Design Engineer (Office Outlook) •   Software Test Lead (Windows Networking) •   Software Design Engineer (Windows Networking) • Education • M.Sc., Bilkent University, Computer Engineering and Information Science, 1997 • B.S., Bilkent University, Computer Engineering and Information Science, 1995

  5. Course Outline • Introduction (algorithms, programming languages, .NET Platform, Common Language Runtime, Framework, assemblies, packaging) • How to use Visual Studio® 2008 • A program’s structure, basic data types, arithmetic operations (precedence), assignment, implicit casting, console input/output • .NET Type System (value types vs. reference types), memory concepts, garbage collector (GC) • Classes I (constructors-destructor, properties, access modifiers) • Methods (overloading, pass-by-reference, scope of variables, static methods, operator overloading) • Control statements (if-else, switch, while, for, do-while) • Classes II (inheritance, abstract classes, interfaces, is-as) • Arrays, Collections (foreach, indexers, anonymous types) • Strings and StringBuilder • Exception Handling • Delegates and Event Handlers • Files and Streams (XML files) • Generics, Generic Collections

  6. Before we start, let’s install Visual Studio 2008 • Fast Integrated Development Environment (IDE) • Very good user interface (UI) design • easy to find compiler errors and debugging • Let’s install it, detailed instructions on course’s web site: http://myweb.sabanciuniv.edu/gulsend/su_current_courses/it519/

  7. Algorithms • Arabic-originated word • Step-by-step process that solves a problem • do this, then do that, ... • eventually stops with an answer • general process rather than specific to a programming language • Example: cooking rice (pirinc pilavi) • Issues • correctness • complexity and efficiency • I picked a number between 1 and 100 • You will guess it • I’ll respond “high”, “low”, “correct”. • how many guesses needed (worst case)?

  8. Example Algorithm - Find the minimum • Initial list: 4 6 7 3 9 1 4 5 • Should we sort? 1 3 4 4 5 6 7 9 • The minimum is the first one • Optimal algorithm - About n operations • Pick 4 as the minimum • Compare 4 to 6 - min is still 4 • Compare 4 to 7- min is still 4 • Compare 4 to 3 - Pick 3 as the minimum • Compare 3 to 9- min is still 3 • Compare 3 to 1 - Pick 1 as the minimum • Compare 1 to 4- min is still 1 • Compare 1 to 5 - We are done and the minimum is 1

  9. Analyze Problem Source Code Compile & Build Develop Algorithm Correct it Design Program Yes Syntax Errors? No Write pseudo-code on paper Run Correct (Debug) Code over the computer Correct Results? No Yes - Done Basic Program Development Steps

  10. Development at Microsoft • I will talk more about it whenever we get a chance Release 4-12 weeks each M0 M1 M2 M3 • Plan • Schedule • Design • (Architecture) • Implement • Code reviews • Unit testing • Stabilize • Testing • Bug fixing

  11. Programming Languages • We solve problems with algorithms • Then we use computers to run these algorithms • For this, we need programming languages to interact with the computer’s hardware • Computers represent data in numeric format • Internal representation (at the lowest level) is in binary form: 0 and 1 (4=100, 5=101) • 0 and 1’s are stored in a bit, 8 bits is called a byte • Programs are set of instructions that process data • These low level instructions are also in binary (0 and 1) • machine language: not human readable and programmable! • Rather than instruct computers at the level of 0’s and 1’s, higher level languages have been developed. • Flexible and easier programming • Compilers translate a high level language, such as C, into machine-specific executable program (0s and 1s)

  12. C, C++ and Java • C first gained widespread recognition as the development language of the UNIX operating system. • C++ took the C language and provided capabilities for object-oriented programming (OOP). • Objects are reusable software components that model items in the real world. • Object-oriented programs are often easier to understand, correct and modify. • Sun Microsystems began development of the Java programming language in 1991. • Java is now used to develop large-scale enterprise applications.

  13. C# (read as “C Sharp”) • C# was designed specifically for the .NET platform as a language that would enable programmers to migrate easily to .NET. • C# is object oriented and has access to a powerful class library of prebuilt components. • It has roots in C, C++ and Java, adapting the best features of each. • Microsoft introduced C# along with its .NET strategy in 2000. • The .NETplatform allows applications to be distributed to a variety of devices.

  14. .NET Platform • Provides programmers to develop their components in any language and easily share them (old way: COM). • Very rapid development with the help of already built-in classes or platforms. • Applications in any .NET-compatible language can interact with each other. • The .NET strategy allows programmers to concentrate on their specialties without having to implement every component of every application. • End to DLL hell with versioning.

  15. Compiling C# .NET languages C/C++ old languages code.cs code.vb code.cpp C# compiler VB.NET compiler Intermediate Language (MSIL) + metadata Assembly language compiling Common Language Runtime (CLR) JIT compiler Machine language .exe Machine language .exe

  16. Common Language Runtime (CLR) • Programs are compiled first into Microsoft Intermediate Language (MSIL) and metadata. This is called a managed module. • Then the just-in-time (JIT) compiler translates the MSIL in the executable file into machine-language code. • CLR does not need to know which language was used. • Once the code is compiled into machine-language by the JIT, it is not needed to be compiled again. • End users need CLR on their machine to execute managed code, which comes with the .NET Framework installation.

  17. Automatic Memory Management • One of the services that the common language runtime provides during Managed Execution. • Allocation and releasing of memory is managed by the CLR: Garbage collection. • No more memory leaks 

  18. Visual Studio 2008 • Fast Integrated Development Environment (IDE) • Very good user interface (UI) design • easy to find compiler errors and debugging • Heavy visual support to develop UI • Let’s install it, detailed instructions on course’s web site: http://myweb.sabanciuniv.edu/gulsend/su_current_courses/it519/

More Related