1 / 13

ICP-CS Introduction to Programming

ICP-CS Introduction to Programming. Lecture 1: Introduction Abdurrahman Qadan Islamic Center of Portland Computer Science Series class Phone: 503- 985-8682 Email: aqadan@gmail.com. Introduction. Programming is to solve problems using computers How to do it at all ?

Download Presentation

ICP-CS Introduction to Programming

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. ICP-CS Introduction to Programming Lecture 1: Introduction Abdurrahman Qadan Islamic Center of Portland Computer Science Series class Phone: 503- 985-8682 Email: aqadan@gmail.com

  2. Introduction • Programming is to solve problems using computers • How to do it at all ? • How to do it robustly ? • How to do it effectively ? • Programming consists of two steps: • Algorithmic design (the architects) • Coding (the construction workers) • Programming requires: • A programming language (e.g., C#) to express your ideas • A set of tools to design, edit, and debug your code • A compiler to translate your programs into machine code • A machine to run the executable code

  3. Why Computer Science ? • Computer is becoming ubiquitous … • programming gets you more out of computer • learn how to solve problems • dealing with abstractions • be more precise • Unfortunately, most people • know little about Computer Science • know little about Programming • write bad or buggy programs • become lost when writing large programs • What can help? Take Computer Science !

  4. This Course • The goal of computer science is to learn • elementary and intermediate programming techniques • how to craft medium and large programs • C# programming language (Java is similar) • important algorithms and data structures • software tools and operating systems • in-depth knowledge about Computer Science • A heavy programming course • Use Microsoft Visual Studio . NET C# Compiler • Intended mainly as your first programming course

  5. Crafting Programs Effectively • Program design • design process • stepwise refinement & top-down design • bottom-up design • modularization, interfaces • use of abstractions • Programming style • structured programming • readable code • effective use of language constructs • “formatting” • software organization • Documentation and comments

  6. Algorithms and Data Structures • Algorithm: a strategy for computing something, e.g., • sorting: putting data in order by key • searching: finding data in some kind of index • finding primes and generating random numbers • string processing • graphics: drawing lines, arcs, and other geometric objects • Data structure: a way to store data, e.g., • arrays and vectors • linked lists • Two are related: • data structures organize data • algorithms use that organization

  7. Java Programming Language • Sun Microsystems corporate research project (1991) • Code-named Green, led by James Gosling and Bill Joy • Based on C and C++ • Intended for intelligent consumer-electronic devices • Lack of popularity almost causes cancellation • Sudden popularity of WWW provides new potential • Java capable of dynamic content (e.g., animation, interaction) • Grabbed attention of business community • Now very widely used • Enhance functionality of WWW servers • Provide applications for consumer devices

  8. .NET Framework • Introduced by Microsoft (June 2000) • Vision for embracing the Internet in software development • Heart of .NET strategy • Language- and “platform-” independence • Visual Basic .NET, Visual C++ .NET, C# and more • Includes Framework Class Library (FCL) for reuse • Executes programs by Common Language Runtime (CLR) • Programs compiled to Microsoft Intermediate Language (MSIL) • MSIL code translated into machine code • (Unlike Java) this is mostly Windows (MS) centric • There is a Linux port (see the Mono project)

  9. C# Programming Language • Developed at Microsoft by Anders Hejlsberg et al • Event driven, object oriented, visual programming language • Based from C, C++ and Java • Incorporated into .NET platform • Web based applications can be distributed • Programs that can be accessed by anyone through any device • Allows communicating with different computer languages • Integrated Design Environment (IDE) • Makes programming and debugging fast and easy • Rapid Application Development (RAD)

  10. Why C# and Java in this class ? • They support so-called safe internet programming • They are simpler than other object-oriented languages [C++] • They are safe and robust --- no core dump or dead console • They have good graphics package • They are related to C and C++ • They have good client-server and network support • They are good for your summer job • However, they are not easy to learn; each has many features … • Right now, C# has a better buzz than Java

  11. Learning C# • Just like learning any new language • Syntax: “new words” • Grammar: how to put them together • Programming: telling a coherent story • Library: use plots already written • Initially overwhelming, but pays off in the end! • Picking up Java and C++ after C# should be easy!

  12. Course Information • Textbook: Computing with C# and .NET Framework by Art Gittleman • Information, assignments, & lecture notes are available on-line. • We won’t use much paper ! • Official URL: http://www.assaber.com/icpcs • For help, send email to aqadan@gmail.com • Please read online information at least once every two days!

  13. Course Assignments • 8 – 9 assignments in all • Mostly programming; from small & easy to large & difficult • Due on the date specified on the schedule sheet • Assignments available online (no paper handout!) • Any C# programming environment would work! • Microsoft Visual Studo . NET (C# IDE) • Need 3.3 GB disk space & 256 MB memory • .NET Framework SDK (batch C# compiler, ~130 MB disk space) • All assignments must be submitted online (see the web site for detail) • Two exams

More Related