Program Design Fundamentals
Software College of SCU
Zuo Hang (左航)
Email:
[email protected]2018/10/8 1
Congratulations!
• Programming? Fantastic!
2018/10/8 2
0.1 Introduction of this course(1/8)
• Program design is the fundamental of most of the
subsequent courses.
Introduction to Program Design
computer system Fundamental
Object Oriented
Data Structures System Level
Programming and
and Algorithms Programming
Design
Software
Operation System Networks Project Organization
and Management
2018/10/8 3
Unit 0. About this course
• 0.1 Introduction of this course
• 0.2 More details on this course
• 0.3 Some suggestions
2018/10/8 201003V1.2 4
0.1 Introduction of this course(1/6)
• What can a C program do?
– C is a programming language invented in the early
1970s by Dennis Ritchie as a language for writing
operating systems.
– Anything that the computer can physically do can
be programmed in C.
• includes data related operations, displaying high speed
graphics in a game or video, controlling electronic
devices attached to the PC or even playing music.
2018/10/8 5
0.1 Introduction of this course(2/6)
• Is C the best programming language?
– Some computer languages were written for a
specific purpose.
• Java was originally devised to control toasters,
• Pascal to teach good programming techniques
• C for programming Operating Systems
2018/10/8 6
0.1 Introduction of this course(3/6)
• Is C the best programming language?
– C was intended to be more like a high level assembly
language which could be used to port applications to
different computer systems.
• C , assembly , machine code
– C is not good at designing GUI screens for applications,
other than Visual Basic, Delphi and C#.
– Also some scripting languages that provide extra
programmability to applications like MS Word and even
Photoshop tend to be done in variants of Basic, not C.
2018/10/8 7
0.1 Introduction of this course(4/6)
• Teaching Schedule
• 1. a simple C program
• 2.Variable and expression
• 3. Basic control structures 1 and case study
• 4. Basic control structures 2 and case study
• 5. function1
• 6. Program design practice 1
• 7. array
• 8. Program design practice 2
• 9.function2 and Introduction to pointers
2018/10/8 8
0.1 Introduction of this course(5/6)
• 10. String
• 11. Program design practice 3
• 12. Exam
2018/10/8 9
0.1 Introduction of this course(6/6)
• Objective:
– How to think as an programmer
– How to program with C
– How to debug a program
– Finally, able to design and develop a small scale,
but bug-free application program
2018/10/8 10
Unit 0. About this course
• 0.1 Introduction of this course
• 0.2 More details on this course
• 0.3 Some suggestions
2018/10/8 11
0.2 More details on this course(1/7)
• Textbook
– C HOW TO PROGRAM,6th (print chapter 1 to 8)
– C programming_tutorial.pdf get the first 16 chapters printed
• References
– Beginning C: From Novice to Professional
– 《The.C.Programming.Language》
2018/10/8 12
0.2 More details on this course(2/7)
2018/10/8 13
0.2 More details on this course(3/7)
• Get ready
– Super power
– USB disk
– PC
– Familiar with
• Search engine, like www.baidu.com
• File compress tools
• Download and upload files
2018/10/8 14
0.2 More details on this course(4/7)
• lecture(32 periods) + practice(32 periods)
• Practice in lab:
• Lab practices on experimental guidance.
• Tools: (WINDOWS OS or MAC OS)
– Visual studio 2008~2017 community version
– CODEBLOCKS
– Dev C++ (not very recommended)
– Xcode
2018/10/8 201003V1.2 15
0.2 More details on this course(5/7)
• Grading
– Print or Buy Your Textbook:5%
– Attendance: 20%
– Homework: 15 %
– Exam :60%
2018/10/8 16
0.2 More details on this course(6/7)
• Rules
– Attendance:
• Absences need not be excused.
– Late Work:
• It is generally not accepted and receives a zero.
• In the case of unplanned emergencies, speak to the
instructor for a revised due date.
2018/10/8 17
0.2 More details on this course(7/7)
• Contact me:
– Email:[email protected]
– 18030512115 (Workdays only, Thanks!)
2018/10/8 18
Unit 0. About this course
• 0.1 Introduction of this course
• 0.2 More details on this course
• 0.3 Some suggestions
2018/10/8 19
0.3 Some suggestions(1/4)
• Programming, NOT like
– Physics, math and chemistry
• More like
– Art and language
• emphasis practices
2018/10/8 20
0.3 Some suggestions(2/4)
No matter what you do, someone is
always doing a little more. Admire and
be inspired by those people. All of us
have something great within if we are
willing to sacrifice some amount of
comfort to find it.
V. Bartsch, Twelve things I learned at Stanford, The Stanford
Daily, June 11, 1999.
2018/10/8 21
0.3 Some suggestions(3/4)
The best academic advice I ever received
at Stanford was, “Question why you do
everything you do, and if you aren’t
learning from it or having fun, don’t do it.”
V. Bartsch, Twelve things I learned at Stanford, The Stanford
Daily, June 11, 1999.
2018/10/8 22
0.3 Some suggestions(4/4)
• A good beginning is half success!
• No shortcuts, but practices!
2018/10/8 23
Oh, Oh, Oh…
Before Semester After Semester
2018/10/8 24
Learn how to program by
Scratch
• https://scratch.mit.edu/
• Create a game cat and mouse
– Upload the file
– Try by yourselves
2018/10/8 25