130 likes | 613 Views
2. Introduction. Programming is to solve problems using computersHow 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
E N D
1. CS 112 Introduction to Programming
Lecture 1: Introduction
Zhong Shao
Department of Computer Science
Yale University
314 AK Watson, Phone: 432-6828
Email: zhong.shao@yale.edu
2. 2
3. 3 Why CS112 ? 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 CS112 !
4. 4 This Course The goal of cs112 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
via Remote Desktop Client to three cs112 servers
Intended mainly as you first programming course
5. 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. 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. 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. 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. 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. 10 Why C# and Java in CS112 ? 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. 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. 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://flint.cs.yale.edu/cs112
Course newsgroup: yale.cs.cs112
For help, send email to cs112@cs.yale.edu or cs112ta@cs.yale.edu
Please read online information at least once every two days!
13. 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)
Both are free to cs112 students
We provide three Windows servers
cs112-a.cs.yale.edu, cs112-b.cs.yale.edu, cs112-c.cs.yale.edu
Use Remote Desktop Client to login (available on Windows, Mac, Linux)
All assignments must be submitted online (see the web site for detail)
Two exams: first on Oct 15, second on Dec 3 (last lecture)