Upload
reed-sullivan
View
49
Download
0
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
ICP-CS Introduction to Programming
Lecture 1: Introduction
Abdurrahman Qadan
Islamic Center of PortlandComputer Science Series classPhone: 503- 985-8682Email: [email protected]
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 comments5
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
• Integrated Design Environment (IDE)• Makes programming and debugging fast and easy• Rapid Application Development (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’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
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