13
ICP-CS Introduction to Programming Lecture 1: Introduction Abdurrahman Qadan Islamic Center of Portland Computer Science Series class Phone: 503- 985-8682 Email: [email protected]

ICP-CS Introduction to Programming

Embed Size (px)

DESCRIPTION

ICP-CS Introduction to Programming. Lecture 1: Introduction Abdurrahman Qadan Islamic Center of Portland Computer Science Series class Phone: 503- 985-8682 Email: [email protected]. Introduction. Programming is to solve problems using computers How to do it at all ? - PowerPoint PPT Presentation

Citation preview

Page 1: ICP-CS Introduction to Programming

ICP-CS Introduction to Programming

Lecture 1: Introduction

Abdurrahman Qadan

Islamic Center of PortlandComputer Science Series classPhone: 503- 985-8682Email: [email protected]

Page 2: ICP-CS Introduction to Programming

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

2

Page 3: ICP-CS Introduction to Programming

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 ! 3

Page 4: ICP-CS Introduction to Programming

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 4

Page 5: ICP-CS Introduction to Programming

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 comments5

Page 6: ICP-CS Introduction to Programming

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

6

Page 7: ICP-CS Introduction to Programming

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 7

Page 8: ICP-CS Introduction to Programming

.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) 8

Page 9: ICP-CS Introduction to Programming

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) 9

Page 10: ICP-CS Introduction to Programming

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

10

Page 11: ICP-CS Introduction to Programming

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! 11

Page 12: ICP-CS Introduction to Programming

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 [email protected]

• Please read online information at least once every two days!

12

Page 13: ICP-CS Introduction to Programming

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

13