ICP-CS Introduction to Programming

wrackbaaMobile - Wireless

Dec 10, 2013 (3 years and 6 months ago)

115 views

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 ?


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

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

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

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

5

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

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

.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

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



I
ntegrated
D
esign
E
nvironment (IDE)


Makes programming and debugging fast and easy


R
apid
A
pplication
D
evelopment (RAD)

9

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

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

Course Information



Textbook
:
Computing with C# and .NET Framework

by Art Gittleman



Information, assignments, & lecture notes are available on
-
line.


We won

琠畳攠浵捨m灡p敲e!



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!

12

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