CS102
Computer Programming I
Lecture 0: Course Orientation
Bicol University College of Science
CSIT Department
1st Semester, 2019-2020
GTKY
●
who
●
where
●
what
●
why
Common Misconceptions about CS
●
Computer science is the study of computers
The distinction between computers and computer science was expressed by
computer scientists Michael R. Fellows and Ian Parberry: Computer science is
no more about computers than astronomy is about telescopes, biology is
about microscopes, chemistry is about beakers and test tubes. Science is not
about tools. It is about how we use them and what we find out when we do.
●
Computer science is the study of how to write computer programs
Programming is extremely important, but primarily as a tool by which computer
scientists study new ideas and build and test new solutions.
●
Computer science is the study of the uses and applications of computers
and software
A wide range of people use computer software, but the computer scientist is
responsible for specifying, designing, building, and testing software packages
as well as the computer systems on which they run.
The Definition of Computer Science
Gibbs and Tucker (“A Modern Curriculum for a Liberal Arts
Degree in Computer Science”, Comm. of the ACM, Vol. 29,
no. 3, March 1986) definition of computer science:
Computer science is the study of algorithms, including
their:
●
Formal and mathematical properties
●
Hardware realizations
●
Linguistic realizations
●
Applications
The Definition of Computer Science
Computer scientist designs and develops algorithms to solve
problems. Operations involved in designing algorithms:
Formal and mathematical properties
●
Studying the behavior of algorithms to determine whether they are
correct and efficient
Hardware realizations
●
Designing and building computer systems that are able to execute
algorithms
Linguistic realizations
●
Designing programming languages and translating algorithms into
these languages
Applications
●
Identifying important problems and designing correct and efficient
software packages to solve these problems
The Definition of Computer Science
➢
If we can specify an algorithm to solve a problem, we
can automate its solution
➢
Computing agent:
●
The machine, robot, person, or thing carrying out the
steps of the algorithm
●
Does not need to understand the concepts or ideas
underlying the solution
An Outline of Computing Science Study
➢
Algorithms
➢
Design and constructions of machines for executing
algorithms
➢
Operating systems
➢
Networking and the Internet
➢
Programming languages
➢
Software engineering
➢
Organizing data within a computer system
➢
Artificial intelligence
➢
Theory of computation
Course Description
The course covers the use of general purpose
programming language to solve problems. The
emphasis is to train students to design, implement, test
and debug programs intended to solve computing
problems using fundamental programming constructs.
Course Learning Outcomes
➢
Design, implement and debug a program based on specification
that uses each of the following fundamental programming
components: (1) primitive data types, (2) basic computation,
(3) simple I/O, (4) conditional and iterative structures, (5)
definition of functions and parameter passing, and (6)
recursion
Assess and recommend revision to another programmer’s code
➢
(1) regarding documentation and program style standards that
contribute to readability and maintainability of software, (2)
regarding appropriateness of chosen conditional and iterative
constructs given a programming task, and (3) regarding
thoroughness in applying procedural abstraction.
Apply good programming practices in accordance with industry
➢
standards and professional ethics.
Course Content
A. Introduction to Programming C. Programming Components
●
Programming Languages ●
Identifiers
●
Processing a High-Level ●
Reserved Words
Language Program ●
Data Types
●
Variables
B. Algorithms: Flowcharts & a. Variable declaration and definition
Pseudocodes b. Variable Initialization
●
Problem Solving Process ●
Constants
●
Definition of algorithm
●
Properties of algorithm D. Expressions
●
Developing an algorithm ●
Programming Language Expression
●
Categories of Operations used to Formats
Construct Algorithms ●
Arithmetic Operators
●
Flowcharts ●
Operator Precedence
●
Pseudocodes ●
Associativity of Operators
a. Expressions ●
Evaluating Expressions
b. Selection
c. Repetition E. Simple I/O
Course Content
F. Conditional Structures H. Functions
●
Logical Data & Operators ●
Roles of Functions
●
Logical Operators Truth Table Function as Operator
●
Evaluating Logical Expression Function as Module
●
Relational Operators ●
Types of Functions
●
One Way Selection using the if Built-in Functions
statement User-Defined Functions
●
Declaring and Defining Functions
G. Iterative Structures ●
Recursive Functions
●
Concept of a Loop ●
Recursive Functions and Loops
●
Pretest and Post-Test Loops (Differences and Similarities)
●
Initializing and Updating Loops
●
Event-Controlled and Counter-
Controlled Loops
●
While loops
●
Do..while Loops
●
For Loops
Course Requirements
•Problem sets and/or homework assignments
•In-class quizzes
•Machine Exercises
•Midterm and final examinations
•Practical Examinations
•Recitation
•Participation in Class Activities
Course Requirements
●
Recitation
Submit a 1/4 index card with your picture and the following
details: name, block, , SHS track, permanent address,
temporary address, email address, contact #
CS102 1st Sem 2019-2020
PICTURE
NAME:
SHS Track:
:
:
Grading System
Your final mark is first calculated as a percentage
according to the following weights:
LECTURE GRADE: 60%
Major Exams (MEX/FEX) 45% 27%
Quizzes 40% 24%
Seatwork/HW//Recitation 15% 9%
LABORATORY GRADE: 40%
PRACTICAL EXAMS 50% 20%
MACHINE EXERCISES 50% 20%
The percentage grades are transmuted and then
translated into numerical grades between 1.0 – 5.0
according to the standard translation table used by the
university.
Grading System
Outstanding: 1.0-99-100%; 1.1-98%; 1.2-97%; 1.3-96%; 1.4-95%
Superior: 1.5-94%; 1.6-93%; 1.7-92%
Very Satisfactory: 1.8-91%; 1.9-90%; 2.0-89%; 2.1-88%; 2.2-87%;
2.3-86%; 2.4-85%
Satisfactorily: 2.5-84%; 2.6-82-83%; 2.7-80-81%
Fair: 2.8-78-79%; 2.9-76-77%; 3.0-75%
Conditional Failure – (Lowest possible mid-term rating): 4.0
Failure: 5.0
Incomplete: INC
Dropped: DRP
Academic Honesty
Every student is expected to uphold the principles
of academic and intellectual honesty.
Plagiarism and other forms of cheating are
considered to be serious academic offences.
General Policies
●
Missed Tests/Lab Exercises
Any student unable to attend a test must contact me prior to
the test, if possible. Make-up tests will only be available to
those students that missed a scheduled tests for medical
reasons and can document this with a doctor's note or for
extraordinary circumstances beyond the control of the student.
It is not sufficient that the doctor indicates you were in his/her
office. The doctor's note must state that you were sick and
unable to attend class. All make-up tests must be written prior
to the return of the marked tests.
●
Attendance
You are expected to attend and participate in all classes.
General Policies
●
Machine Exercises (ME)
ME’s are supposed to be finished and checked on the day it is
given. Deductions will be imposed for every lab meeting you
missed having it checked. Programs with unnecessary codes
will also be given deductions. Keep an index card (1/2) that will
contain the record of your ME grades.
CS102-Computer Programming 1 1st Sem, 2019-2020
Block: A
NAME USERNAME
Juan dela Cruz A12-DELACRUZ
Pedro Penduko A20-PENDUKO
ME # Date Date Comments Grad Signature
Given Checked e
1
2
3
C Programming Language
The course is taught using the C Programming
Language
Emphasis of course on fundamental concepts which
are language independent.
C and C++ are widely used but do present hurdles
for novice programmers
So What is Programming Like?
It’s really hard to describe!
Many similarities to solving “word problems” in math
Translate a problem description into a formal
solution
Symbol manipulation an integral part
Some people describe it as “puzzle solving”
A mix of high-level creativity and low-level picky
details
Stages of Problem Solving
Ultimate goal: use a computer to solve a problem
Typical stages of building a solution:
Clearly specify the problem
Analyze the problem
Design an algorithm to solve the problem
Implement the algorithm (write the program)
Test and verify the completed program
Maintain and update the program
Focus
All stages are important
In this course, we ignore none of them
But we focus on:
Algorithm development
Writing a program to implement the
algorithm
Using the Lecture Presentations
Not everything on the slides will be
read aloud by the speaker
Not everything the speaker says will
be on the slides
You need both! And then some...
Beyond the Lectures
You won’t learn programming by just listening
to the lectures.
What you need in addition is:
●
The ability to ask questions and get them
answered
●
A textbook/reference you can use for
details and examples not in the lectures
●
And most important: hands-on practice
The Importance of Practice
You wouldn’t expect to learn to play the
guitar just by watching a TV series on it
There is no substitute for practice. And
no one can do it for you
The same holds for learning to program
Tips for Success
Take the material in order
With rare exceptions:
you can’t skip any lecture
you can’t take material out of order
Master each topic before continuing to
the next
Seek help if you get behind
Practice, practice, practice!
Resources
REFERENCES:
Metzler, N. (2019). C for Beginners: An Introduction to Learn C Programming with Tutorials and
Hands-On Examples. Lightbulb Publishing
Prinz, P. & Crawford, T. (2016). C in a Nutshell: The Definitive Reference, 2nd Edition. O’Reilly
Media, Inc., CA, U.S.A.
●
Farell, J. (2015). Programming Logic and Design, Comprehensive, 8th Edition. Cengage Learning Asia Pte. Ltd., Singapore
●
Klemens, B. (2015). 21st Century C: C Tips from the New School, 2nd Edition. O’Reilly Media, Inc., CA, U.S.A.
Kochan, S.G. (2015). Programming in C, 4th Edition (Developer's Library). Pearson Education, Inc.,
New York, N.Y.
Perry, G. & Miller, D. (2014). C Programming Absolute Beginner’s Guide, 3rd Edition. Pearson
Education, Inc., New York, N.Y.
Hanly, J.R. & Koffman, E.B. (2012). Problem Solving and Program Design in C, 7th Edition”.
Pearson Education, Inc., New York, N.Y.
Forouzan, B.A. & Gilberg, R.F. (2011). Foundations of C Programming. Cengage Learning Asia Pte.
Ltd., Singapore
SUGGESTED READINGS
Frey, C.B. (2019). The Technology Trap: Capital, Labor, and Power in the Age of Automation.
Princeton University Press, U.S.A.
Erwig, M. (2017). Once Upon an Algorithm: How Stories Explain Computing, The MIT Press.
Spinellis, D. (2016). Effective Debugging: 66 Specific Ways to Debug Software and Systems
(Effective Software Development Series) 1st Edition, Addison-Wesley Professional.
Resources
Course Web
https://sites.google.com/view/bucs-comp-programm
ing-1-2019
Subscribe by sending an email to
[email protected] Subject: CS102 Subscription
Body: Full Name, Block