CMPS 2010 Programming I: Programmaing Fundamentals

Eddie Rangel
Office: Sci III 336
Office Hours: by appointment
Email: erangel@cs.csubak.edu
Course web site: http://www.cs.csubak.edu/~erangel/cmps2240-f17/index.html
Course meets in Sci III room 240
Lecture
Th 4:00pm - 5:15pm
F 4:00pm - 6:30pm
Laboratory
Th 5:30pm - 6:45pm
F 5:30pm - 6:45pm

Catalog Description
Introduces the fundamentals of procedural programming and. Topics include data types, control structures, functions, arrays, and file I/O. The mechanics of compiling, linking, running, debugging and testing within a particular programming environment are covered. The course also indroduces the concepts of object-oriented programming. The course focuses on the definition and use of classes, and the fundamentals of object-oriented design [to an extent]. Continuing topics of OOP exist within cmps 2020. Ethical issues and an historical perspective of programming within the context of computer science as a discipline are given. Other topics include an overview of programming language principles, basic searching and sorting techniques, and an introduction to software engineering issues.

ACM/IEEE Computer Science Curriculum (2013):
(CS-PL1/CE-PRF1,2) Object-Oriented Programming
(CS-PL2/CE-PRF3) Functional Programming
(CS-SDF2/CE-PRF4) Fundamental Programming Concepts
(CS-SDF3/CE-PRF4) Fundamental Data structures
(CS-SP8/CE-PRF0) History of computing

ABET Outcome Coverage:
3b. An ability to analyze a problem, and identify and define the computing requirements and specifications appropriate to its solution. Laboratory and homework assignments will require analysis of the problem for successful completion of the assignments.
3c. An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs. An ability to understand the analysis, design, and implementation of a computerized solution to a real-life problem. Laboratory and homework assignments require analyzing the presented problems, designing a solution to those problems, and implementing the solution in a high-level programming language.

Prerequisite:
(1) MATH 0930 or (2) other satisfaction of the Entry Level Mathematics requirement.

Textbook:
You may use any edition of the textbook.
8th edition: Starting Out with C++: From Control Structures through Objects, Tony Gaddis. Publisher: Addison Wesley, 2014. ISBN: 0133769399
→9th edition: Starting Out with C++: From Control Structures through Objects, Tony Gaddis. Publisher: Addison Wesley, 2017. ISBN: 0134498372

Attendance:
It is recommended that you attend every class session. Roll is taken during labs. Some or all lab assignments will require attendance for full credit.

Topics to be covered in CMPS 2010:
Chapter 1 Introduction to Computers and Programming
Chapter 2 Introduction to C++
Chapter 3 Expressions and Interactivity
Chapter 4 Making Decisions
Chapter 5 Looping
Chapter 6 Functions
Chapter 7 Arrays

Chapter 9 Pointers
Chapter 10 Characters, Strings and the string Class
Chapter 11 Structured Data
Chapter 13 Introduction to Classes
Chapter 14 More About Classes
***********************************
Chapter 15 Inheritance, Polymorphism and Virtual Functions
Chapter 16 Exceptions and Templates
Chapter 17 Standard Template Library (STL)

View the calendar on the course website to see the order in which these topics will be presented.

Grading Policy:

Homework...........  10 points x 10  100  20%
Labs...............  10 points x 10  100  20%
Quizzes............  10 points x 10  100  20%
Mid Term Exam...... 100 points x  1  100  20%
Final Exam......... 100 points x  1  100  20%
                                    ---- 
Total points possible............... 500

The overall distribution of scoring is reflected above.
The number of assignments may change slightly.
Letter grade will be based on percentage of total possible. 
A 93%
A- 90%
B+ 87%
B 83%
B- 80%
C+ 77%
C 73%
C- 70%
D+ 67%
D 63%
D- 60%
F 0%
Scores will be posted on the course website during the quarter.

Labs
Lab assignments ask you to write some assembly language programs in class. There will usually be a brief lecture at the beginning of each lab session. Roll will be taken during lab. 20% of the lab grade is based on attendance.

Lab Submission
All lab files due should be located in your designated folder on Sleipnir.
This area on the Sleipnir server will be set up for you during the 1st week of class.
Instructions will be gived during the course to help you submit your assignments correctly.

Homework
Homework assignments are posted on our web page. Please work out the problems on paper with a pencil and eraser. Homeworks are due on Fridays just prior to the weekly quiz.

Late Policy
Late assignments will not be accepted.

Final Exam
The final exam will be given during finals week, and be similar to the quizzes given during the quarter.

Individual Work Policy
All work done in this course is individual work.
Sharing of code is not acceptable.
Possession of code written by other students in not acceptable.
Copying another student's work is plagiarism.
Copying answers or source code from the Internet is also plagiarism.
Asking a tutor or another person to do your work for you is cheating.

Do your own work please.
If you are struggling to learn the material, then do the following:
1. Complete all the reading assignments.
2. Ask the tutors some specific questions about what you're stuck on.
3. Come to every class session.
4. Practice your programming every day.
5. Contact the instructor for help.


note: This syllabus could be amended during the semester.