SlideShare a Scribd company logo
1 of 25
IntroductionCS-2303, C-Term 2010 1
CS-2303
System Programming Concepts
Hugh C. Lauer
Adjunct Professor
(Slides include materials from The C Programming Language, 2nd
edition, by Kernighan and Ritchie and
from C: How to Program, 5th
and 6th
editions, by Deitel and Deitel)
IntroductionCS-2303, C-Term 2010 2
Introduction
• Survey and TA/SA Introductions
• Pause to Look Backwards and Forwards
• Course Objectives
• Course Operation/Expectations
• Course Plan and Syllabus
• Systems Concepts
• ‘Old’ Development Environment
– C and C++
• Higher Level Language History
IntroductionCS-2303, C-Term 2010 3
Look Backwards and Forwards
• Computers
• WPI CS Curriculum
• Instructor
• Students
– Expected Background
– Going Forward
– Your Future
IntroductionCS-2303, C-Term 2010 4
CS2303 Course Objectives
• To expose students to lower level systems
interface ’grunge’ only clearly visible via C.
• To learn to program in C++ by learning to
program in C first.
• To further develop the ability to design
programs with emphasis on the abstract
view of data structures.
• To get experience with the low-level
implementation of data structures in C.
IntroductionCS-2303, C-Term 2010 5
• To learn the advantages of programming in an
object-oriented language such as C++.
• To experience programming in the
Large
CS2303 Course Objectives
IntroductionCS-2303, C-Term 2010 6
Pointers!!
CS2303 Course Objectives
IntroductionCS-2303, C-Term 2010 7
Course Operation/Expectations
• The course web site:–
http://web.cs.wpi.edu/~cs2303/c10/
• Contains:–
• Syllabus
• General overview
• Rules and expectations
• All lecture notes
• All programming and lab assignments
• …
You are responsible for everything
on the course web site
IntroductionCS-2303, C-Term 2010 8
Course Operation/Expectations (continued)
• One lab per week
• Required
• Approx 6 Programming Assignments
• 2 Exams
• Mid-term:– week of Feb 8 (approx)
• Final:– March 5
IntroductionCS-2303, C-Term 2010 9
Grading
• Exams:– ~40%
• Programming Assignments:– ~40%
• Labs and Subjective Evaluation:– ~20%
Satisfactory grades on Programming Assignments
are required to pass this course
It is in your interest that the Professor and TAs
know who you are!
IntroductionCS-2303, C-Term 2010 10
Course Plan and Syllabus
• Approx 50% C, approx 50% C++
• To cover the details of C briskly.
– Assume an understanding of iteration and
conditional constructs — similar to Java
• To introduce data structures in C via
• Arrays and pointers (very different from Java).
• Structs and unions
• {Note - reading of the textbook will require
jumping around during the C portion of the
course.}
IntroductionCS-2303, C-Term 2010 11
Required Textbook
• Deitel & Deitel, 5th
ed.
• C & C++
• Went out of print at
end of 2009!
• Bookstore has enough
copies for CS-2303!
IntroductionCS-2303, C-Term 2010 12
Alternative Textbook
• Deitel & Deitel, 6th
ed.
• C & C++
• Similar to 5th
edition.
• C++ chapters have
different numbers.
• Note: all references to
pages, figures, and
examples will be relative
to 5th
edition!
IntroductionCS-2303, C-Term 2010 13
Highly Recommended for CS Majors
• Over 20 years old!
• Still relevant
– Will refer to it often!
• Cheap
– Used on Amazon
– Download PDF
• Keep a copy on your
desk …
• … for the rest of your
professional life!
IntroductionCS-2303, C-Term 2010 14
Questions?
IntroductionCS-2303, C-Term 2010 15
Your First Programming Assignment
• Due: next Thursday, Jan 21, 11:59 PM!
• Create a 12-month calendar for an arbitrary year!
• Full details on course web site:–
→ Programming Assignments → Scroll to bottom → PA1
• Reading:– D&D, Chapters 2, 3, 4
– This part of the C language is a lot like Java
– Except printf(), scanf()
• See D&D Chapter 9 or K&R Chapter 7 for details
IntroductionCS-2303, C-Term 2010 16
Why C?
• Because we have to!
• Many situations where it is only language or
system available
• Small, embedded systems, instrumentation, etc.
• Many “low-level” situations that don’t have
support for “high-level” languages
• Operating systems, real-time systems, drivers
IntroductionCS-2303, C-Term 2010 17
Why not C?
• C is very low-level
• Data structures must be programmed “by hand”
• Operations must be done out in “long hand”
• No support for “object oriented” design
• Marginal support for higher-level thought processes
• Much, much harder to use than higher level languages/systems
• Better alternatives available for almost all applications
• Java, Python, Ruby, etc. – many CS situations
• Matlab, SimuLink – physical modeling
• LabView – instrumentation and control
• Excel – accounting and statistics
• SQL – billing and transactions
• …
IntroductionCS-2303, C-Term 2010 18
What about C++?
• Object-oriented thinking
• Data abstractions, classes, objects, interfaces
• Operator overloading
• Inheritance
• Lots of other good stuff
• …
• Backward compatible with C
• To some extent
• Allows programmer to get close to hardware when needed
• Allows programmer to get close to data representation when needed
• Not platform independent (like Java)
• Still need to be conscious of memory management
• …
IntroductionCS-2303, C-Term 2010 19
C Program Development EnvironmentC Program Development Environment
Standard StepsStandard Steps
1. Edit
2. Preprocess
3. Compile
4. Link
5. Load
6. Execute
Fig. 1.1 | Typical C development environment.
Deitel & DeitelDeitel & Deitel
© 2007 Pearson Ed -All rights reserved.
IntroductionCS-2303, C-Term 2010 20
A Short History
• In the beginning …
• Machine language
• Assembly language
– One line per machine instruction
• So “high level” languages were invented
• Non-recursive:– Fortran, Cobol
• Recursive:– Algol, Lisp, Snobol, PL/1, etc.
Really primitive!
Too difficult for big projects
Too advanced!
Too much infrastructure for operating
systems, control systems, many
kinds of projects
IntroductionCS-2303, C-Term 2010 21
A Short History (continued)
• 1960s:– “system programming” languages
invented
• More direct control over hardware
• Not so primitive as Assembly Language
• E.g., a veritable alphabet soup
• BLISS, BCPL, PL/360, …
IntroductionCS-2303, C-Term 2010 22
A Short History (continued)
• Late 1960s:– MIT’s MULTICS project
doesn’t live up to expectation
• Bell Labs wants to pull out
• Ken Thompson starts on Unix as alternative
• Thompson creates own system language
• Based on BCPL, untyped, called B
• First version of Unix written in B
• Unix takes hold inside Bell Labs
• Needs to be re-written
• Dennis Ritchie et al create C as typed successor to B
IntroductionCS-2303, C-Term 2010 23
A Short History (continued)
• C wins the race of “system programming”
languages
• Language of choice for many operating systems
• Many applications
• Object-oriented programming begins to
emerge
• Stroustrup starts on C with Classes
• Backward compatible with C
• Later renamed C++
IntroductionCS-2303, C-Term 2010 24
A Short History (continued)
• By 1990, C++ is language of choice for many
kinds of applications
• Good:– object-oriented, classes, inheritance, etc.
• Bad:– all of the ugly characteristics of C still persist
• Complex object model, memory management, etc.
• Jim Gosling at Sun Microsystems starts a
complete rewrite of C++
• Simpler object model
• Cleaner
• Portable, can be embedded in web pages, etc.
• Eventually called Java
IntroductionCS-2303, C-Term 2010 25
Questions?

More Related Content

Viewers also liked

Slide8appletv2 091028110313-phpapp01
Slide8appletv2 091028110313-phpapp01Slide8appletv2 091028110313-phpapp01
Slide8appletv2 091028110313-phpapp01Abhishek Khune
 
Multithreaded programming (as part of the the PTT lecture)
Multithreaded programming (as part of the the PTT lecture)Multithreaded programming (as part of the the PTT lecture)
Multithreaded programming (as part of the the PTT lecture)Ralf Laemmel
 
Advanced Introduction to Java Multi-Threading - Full (chok)
Advanced Introduction to Java Multi-Threading - Full (chok)Advanced Introduction to Java Multi-Threading - Full (chok)
Advanced Introduction to Java Multi-Threading - Full (chok)choksheak
 
Collections In Java
Collections In JavaCollections In Java
Collections In JavaBinoj T E
 

Viewers also liked (7)

Shared memory
Shared memoryShared memory
Shared memory
 
Slide8appletv2 091028110313-phpapp01
Slide8appletv2 091028110313-phpapp01Slide8appletv2 091028110313-phpapp01
Slide8appletv2 091028110313-phpapp01
 
Multithreaded programming (as part of the the PTT lecture)
Multithreaded programming (as part of the the PTT lecture)Multithreaded programming (as part of the the PTT lecture)
Multithreaded programming (as part of the the PTT lecture)
 
07 java collection
07 java collection07 java collection
07 java collection
 
Java Notes
Java NotesJava Notes
Java Notes
 
Advanced Introduction to Java Multi-Threading - Full (chok)
Advanced Introduction to Java Multi-Threading - Full (chok)Advanced Introduction to Java Multi-Threading - Full (chok)
Advanced Introduction to Java Multi-Threading - Full (chok)
 
Collections In Java
Collections In JavaCollections In Java
Collections In Java
 

Similar to Week0 introduction

C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTREC & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTREjatin batra
 
C & C++ Training in Ambala ! BATRA COMPUTER CENTRE
C & C++ Training in Ambala ! BATRA COMPUTER CENTREC & C++ Training in Ambala ! BATRA COMPUTER CENTRE
C & C++ Training in Ambala ! BATRA COMPUTER CENTREjatin batra
 
C++ vs C#
C++ vs C#C++ vs C#
C++ vs C#sudipv
 
lecture02-cpp.ppt
lecture02-cpp.pptlecture02-cpp.ppt
lecture02-cpp.pptDevliNeeraj
 
C-and-Cpp-Brochure-English. .
C-and-Cpp-Brochure-English.               .C-and-Cpp-Brochure-English.               .
C-and-Cpp-Brochure-English. .spotguys705
 
What – if anything – have we learned from C++? by Bjarne Stroustrup @ Curry O...
What – if anything – have we learned from C++? by Bjarne Stroustrup @ Curry O...What – if anything – have we learned from C++? by Bjarne Stroustrup @ Curry O...
What – if anything – have we learned from C++? by Bjarne Stroustrup @ Curry O...curryon
 

Similar to Week0 introduction (20)

Lecture1.ppt
Lecture1.pptLecture1.ppt
Lecture1.ppt
 
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTREC & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
 
C & C++ Training in Ambala ! BATRA COMPUTER CENTRE
C & C++ Training in Ambala ! BATRA COMPUTER CENTREC & C++ Training in Ambala ! BATRA COMPUTER CENTRE
C & C++ Training in Ambala ! BATRA COMPUTER CENTRE
 
009978776.pdf
009978776.pdf009978776.pdf
009978776.pdf
 
Object Oriented Programming using C++ - Part 1
Object Oriented Programming using C++ - Part 1Object Oriented Programming using C++ - Part 1
Object Oriented Programming using C++ - Part 1
 
C_Programming_Notes_ICE
C_Programming_Notes_ICEC_Programming_Notes_ICE
C_Programming_Notes_ICE
 
miniproject.pptx
miniproject.pptxminiproject.pptx
miniproject.pptx
 
C++ l 1
C++ l 1C++ l 1
C++ l 1
 
Chapter 1 - Overview of C
Chapter 1 - Overview of CChapter 1 - Overview of C
Chapter 1 - Overview of C
 
C++ vs C#
C++ vs C#C++ vs C#
C++ vs C#
 
lecture02-cpp.ppt
lecture02-cpp.pptlecture02-cpp.ppt
lecture02-cpp.ppt
 
lecture02-cpp.ppt
lecture02-cpp.pptlecture02-cpp.ppt
lecture02-cpp.ppt
 
lecture02-cpp.ppt
lecture02-cpp.pptlecture02-cpp.ppt
lecture02-cpp.ppt
 
lecture02-cpp.ppt
lecture02-cpp.pptlecture02-cpp.ppt
lecture02-cpp.ppt
 
Return of c++
Return of c++Return of c++
Return of c++
 
c++ ppt.ppt
c++ ppt.pptc++ ppt.ppt
c++ ppt.ppt
 
lecture02-cpp.ppt
lecture02-cpp.pptlecture02-cpp.ppt
lecture02-cpp.ppt
 
C++ overview
C++ overviewC++ overview
C++ overview
 
C-and-Cpp-Brochure-English. .
C-and-Cpp-Brochure-English.               .C-and-Cpp-Brochure-English.               .
C-and-Cpp-Brochure-English. .
 
What – if anything – have we learned from C++? by Bjarne Stroustrup @ Curry O...
What – if anything – have we learned from C++? by Bjarne Stroustrup @ Curry O...What – if anything – have we learned from C++? by Bjarne Stroustrup @ Curry O...
What – if anything – have we learned from C++? by Bjarne Stroustrup @ Curry O...
 

More from Abhishek Khune

More from Abhishek Khune (8)

Clanguage
ClanguageClanguage
Clanguage
 
Packages in java
Packages in javaPackages in java
Packages in java
 
Applets
AppletsApplets
Applets
 
Clanguage
ClanguageClanguage
Clanguage
 
Java unit3
Java unit3Java unit3
Java unit3
 
Java unit2
Java unit2Java unit2
Java unit2
 
Linux introduction
Linux introductionLinux introduction
Linux introduction
 
Lecture 14 (inheritance basics)
Lecture 14 (inheritance basics)Lecture 14 (inheritance basics)
Lecture 14 (inheritance basics)
 

Recently uploaded

Essential Safety precautions during monsoon season
Essential Safety precautions during monsoon seasonEssential Safety precautions during monsoon season
Essential Safety precautions during monsoon seasonMayur Khatri
 
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdfINU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdfbu07226
 
An Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxAn Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxCeline George
 
Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).Mohamed Rizk Khodair
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...Nguyen Thanh Tu Collection
 
Mbaye_Astou.Education Civica_Human Rights.pptx
Mbaye_Astou.Education Civica_Human Rights.pptxMbaye_Astou.Education Civica_Human Rights.pptx
Mbaye_Astou.Education Civica_Human Rights.pptxnuriaiuzzolino1
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff17thcssbs2
 
The basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptxThe basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptxheathfieldcps1
 
ppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyesppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyesashishpaul799
 
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxslides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxCapitolTechU
 
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptxREPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptxmanishaJyala2
 
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxMatatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxJenilouCasareno
 
2024_Student Session 2_ Set Plan Preparation.pptx
2024_Student Session 2_ Set Plan Preparation.pptx2024_Student Session 2_ Set Plan Preparation.pptx
2024_Student Session 2_ Set Plan Preparation.pptxmansk2
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the lifeNitinDeodare
 
Telling Your Story_ Simple Steps to Build Your Nonprofit's Brand Webinar.pdf
Telling Your Story_ Simple Steps to Build Your Nonprofit's Brand Webinar.pdfTelling Your Story_ Simple Steps to Build Your Nonprofit's Brand Webinar.pdf
Telling Your Story_ Simple Steps to Build Your Nonprofit's Brand Webinar.pdfTechSoup
 
Open Educational Resources Primer PowerPoint
Open Educational Resources Primer PowerPointOpen Educational Resources Primer PowerPoint
Open Educational Resources Primer PowerPointELaRue0
 
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdfPost Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdfPragya - UEM Kolkata Quiz Club
 
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General QuizPragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General QuizPragya - UEM Kolkata Quiz Club
 

Recently uploaded (20)

Essential Safety precautions during monsoon season
Essential Safety precautions during monsoon seasonEssential Safety precautions during monsoon season
Essential Safety precautions during monsoon season
 
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdfINU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
INU_CAPSTONEDESIGN_비밀번호486_업로드용 발표자료.pdf
 
An Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxAn Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptx
 
Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).Dementia (Alzheimer & vasular dementia).
Dementia (Alzheimer & vasular dementia).
 
Post Exam Fun(da) Intra UEM General Quiz - Finals.pdf
Post Exam Fun(da) Intra UEM General Quiz - Finals.pdfPost Exam Fun(da) Intra UEM General Quiz - Finals.pdf
Post Exam Fun(da) Intra UEM General Quiz - Finals.pdf
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
 
Mbaye_Astou.Education Civica_Human Rights.pptx
Mbaye_Astou.Education Civica_Human Rights.pptxMbaye_Astou.Education Civica_Human Rights.pptx
Mbaye_Astou.Education Civica_Human Rights.pptx
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff
 
The basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptxThe basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptx
 
ppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyesppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyes
 
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxslides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
 
“O BEIJO” EM ARTE .
“O BEIJO” EM ARTE                       .“O BEIJO” EM ARTE                       .
“O BEIJO” EM ARTE .
 
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptxREPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptx
 
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptxMatatag-Curriculum and the 21st Century Skills Presentation.pptx
Matatag-Curriculum and the 21st Century Skills Presentation.pptx
 
2024_Student Session 2_ Set Plan Preparation.pptx
2024_Student Session 2_ Set Plan Preparation.pptx2024_Student Session 2_ Set Plan Preparation.pptx
2024_Student Session 2_ Set Plan Preparation.pptx
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the life
 
Telling Your Story_ Simple Steps to Build Your Nonprofit's Brand Webinar.pdf
Telling Your Story_ Simple Steps to Build Your Nonprofit's Brand Webinar.pdfTelling Your Story_ Simple Steps to Build Your Nonprofit's Brand Webinar.pdf
Telling Your Story_ Simple Steps to Build Your Nonprofit's Brand Webinar.pdf
 
Open Educational Resources Primer PowerPoint
Open Educational Resources Primer PowerPointOpen Educational Resources Primer PowerPoint
Open Educational Resources Primer PowerPoint
 
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdfPost Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
Post Exam Fun(da) Intra UEM General Quiz 2024 - Prelims q&a.pdf
 
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General QuizPragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
Pragya Champions Chalice 2024 Prelims & Finals Q/A set, General Quiz
 

Week0 introduction

  • 1. IntroductionCS-2303, C-Term 2010 1 CS-2303 System Programming Concepts Hugh C. Lauer Adjunct Professor (Slides include materials from The C Programming Language, 2nd edition, by Kernighan and Ritchie and from C: How to Program, 5th and 6th editions, by Deitel and Deitel)
  • 2. IntroductionCS-2303, C-Term 2010 2 Introduction • Survey and TA/SA Introductions • Pause to Look Backwards and Forwards • Course Objectives • Course Operation/Expectations • Course Plan and Syllabus • Systems Concepts • ‘Old’ Development Environment – C and C++ • Higher Level Language History
  • 3. IntroductionCS-2303, C-Term 2010 3 Look Backwards and Forwards • Computers • WPI CS Curriculum • Instructor • Students – Expected Background – Going Forward – Your Future
  • 4. IntroductionCS-2303, C-Term 2010 4 CS2303 Course Objectives • To expose students to lower level systems interface ’grunge’ only clearly visible via C. • To learn to program in C++ by learning to program in C first. • To further develop the ability to design programs with emphasis on the abstract view of data structures. • To get experience with the low-level implementation of data structures in C.
  • 5. IntroductionCS-2303, C-Term 2010 5 • To learn the advantages of programming in an object-oriented language such as C++. • To experience programming in the Large CS2303 Course Objectives
  • 6. IntroductionCS-2303, C-Term 2010 6 Pointers!! CS2303 Course Objectives
  • 7. IntroductionCS-2303, C-Term 2010 7 Course Operation/Expectations • The course web site:– http://web.cs.wpi.edu/~cs2303/c10/ • Contains:– • Syllabus • General overview • Rules and expectations • All lecture notes • All programming and lab assignments • … You are responsible for everything on the course web site
  • 8. IntroductionCS-2303, C-Term 2010 8 Course Operation/Expectations (continued) • One lab per week • Required • Approx 6 Programming Assignments • 2 Exams • Mid-term:– week of Feb 8 (approx) • Final:– March 5
  • 9. IntroductionCS-2303, C-Term 2010 9 Grading • Exams:– ~40% • Programming Assignments:– ~40% • Labs and Subjective Evaluation:– ~20% Satisfactory grades on Programming Assignments are required to pass this course It is in your interest that the Professor and TAs know who you are!
  • 10. IntroductionCS-2303, C-Term 2010 10 Course Plan and Syllabus • Approx 50% C, approx 50% C++ • To cover the details of C briskly. – Assume an understanding of iteration and conditional constructs — similar to Java • To introduce data structures in C via • Arrays and pointers (very different from Java). • Structs and unions • {Note - reading of the textbook will require jumping around during the C portion of the course.}
  • 11. IntroductionCS-2303, C-Term 2010 11 Required Textbook • Deitel & Deitel, 5th ed. • C & C++ • Went out of print at end of 2009! • Bookstore has enough copies for CS-2303!
  • 12. IntroductionCS-2303, C-Term 2010 12 Alternative Textbook • Deitel & Deitel, 6th ed. • C & C++ • Similar to 5th edition. • C++ chapters have different numbers. • Note: all references to pages, figures, and examples will be relative to 5th edition!
  • 13. IntroductionCS-2303, C-Term 2010 13 Highly Recommended for CS Majors • Over 20 years old! • Still relevant – Will refer to it often! • Cheap – Used on Amazon – Download PDF • Keep a copy on your desk … • … for the rest of your professional life!
  • 15. IntroductionCS-2303, C-Term 2010 15 Your First Programming Assignment • Due: next Thursday, Jan 21, 11:59 PM! • Create a 12-month calendar for an arbitrary year! • Full details on course web site:– → Programming Assignments → Scroll to bottom → PA1 • Reading:– D&D, Chapters 2, 3, 4 – This part of the C language is a lot like Java – Except printf(), scanf() • See D&D Chapter 9 or K&R Chapter 7 for details
  • 16. IntroductionCS-2303, C-Term 2010 16 Why C? • Because we have to! • Many situations where it is only language or system available • Small, embedded systems, instrumentation, etc. • Many “low-level” situations that don’t have support for “high-level” languages • Operating systems, real-time systems, drivers
  • 17. IntroductionCS-2303, C-Term 2010 17 Why not C? • C is very low-level • Data structures must be programmed “by hand” • Operations must be done out in “long hand” • No support for “object oriented” design • Marginal support for higher-level thought processes • Much, much harder to use than higher level languages/systems • Better alternatives available for almost all applications • Java, Python, Ruby, etc. – many CS situations • Matlab, SimuLink – physical modeling • LabView – instrumentation and control • Excel – accounting and statistics • SQL – billing and transactions • …
  • 18. IntroductionCS-2303, C-Term 2010 18 What about C++? • Object-oriented thinking • Data abstractions, classes, objects, interfaces • Operator overloading • Inheritance • Lots of other good stuff • … • Backward compatible with C • To some extent • Allows programmer to get close to hardware when needed • Allows programmer to get close to data representation when needed • Not platform independent (like Java) • Still need to be conscious of memory management • …
  • 19. IntroductionCS-2303, C-Term 2010 19 C Program Development EnvironmentC Program Development Environment Standard StepsStandard Steps 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Fig. 1.1 | Typical C development environment. Deitel & DeitelDeitel & Deitel © 2007 Pearson Ed -All rights reserved.
  • 20. IntroductionCS-2303, C-Term 2010 20 A Short History • In the beginning … • Machine language • Assembly language – One line per machine instruction • So “high level” languages were invented • Non-recursive:– Fortran, Cobol • Recursive:– Algol, Lisp, Snobol, PL/1, etc. Really primitive! Too difficult for big projects Too advanced! Too much infrastructure for operating systems, control systems, many kinds of projects
  • 21. IntroductionCS-2303, C-Term 2010 21 A Short History (continued) • 1960s:– “system programming” languages invented • More direct control over hardware • Not so primitive as Assembly Language • E.g., a veritable alphabet soup • BLISS, BCPL, PL/360, …
  • 22. IntroductionCS-2303, C-Term 2010 22 A Short History (continued) • Late 1960s:– MIT’s MULTICS project doesn’t live up to expectation • Bell Labs wants to pull out • Ken Thompson starts on Unix as alternative • Thompson creates own system language • Based on BCPL, untyped, called B • First version of Unix written in B • Unix takes hold inside Bell Labs • Needs to be re-written • Dennis Ritchie et al create C as typed successor to B
  • 23. IntroductionCS-2303, C-Term 2010 23 A Short History (continued) • C wins the race of “system programming” languages • Language of choice for many operating systems • Many applications • Object-oriented programming begins to emerge • Stroustrup starts on C with Classes • Backward compatible with C • Later renamed C++
  • 24. IntroductionCS-2303, C-Term 2010 24 A Short History (continued) • By 1990, C++ is language of choice for many kinds of applications • Good:– object-oriented, classes, inheritance, etc. • Bad:– all of the ugly characteristics of C still persist • Complex object model, memory management, etc. • Jim Gosling at Sun Microsystems starts a complete rewrite of C++ • Simpler object model • Cleaner • Portable, can be embedded in web pages, etc. • Eventually called Java

Editor's Notes

  1. 09/07/13 c
  2. 09/07/13