Morehead State University

 

CIS - Computer Information Systems

CS - Computer Science

CMEM - Communications Electronic Media

BIS - Business Information Systems

MATH - Computing

EET - Electrical Engineering/ Electronics Technology

www.moreheadstate.edu

SYLLABUS

CIS-205 ONLINE

C/C++ Programming I

 

Fall 2003 - 3 cr - Dr. Kelley

 

Combs Bldg. CB-301

 

 

Fall Term: August 18, 2003December 12, 2003

 

 

Syllabus - Schedule And Assignments

 

CIS-205 C/C++ Programming I

 

Course Description:

CIS-205 Fundamentals of C/C++ Programming (3 cr). Pre-requisites: A grade of C or higher in CIS 200, CS 170, or MATH 170; and a grade of C or higher in any one course from MATH 152, MATH 174, or MATH 175. This course builds a strong foundation in programming concepts with hands-on programming applications in C and C++.  It uses a steady progression of hands-on programming exercises to teach analytical and quantitative problem solving, methodical program development, and modular design.  The first course in a two-part programming sequence with CIS 305.

 

 

Course Prerequisites:

Pre-requisites are STRICTLY ENFORCED. Students must provide written documentation to the instructor before the end of the second week of classes that they meet the minimum pre-requisites for enrollment in the class.  Students who fail to provide written documentation to the instructor by the end of the second week of classes that they have previously completed the pre-requisites for this class with passing grades (minimum grade of C) will not have any work graded and will be assigned an automatic failing grade of “E” for the course for the semester.  The minimum catalog course prerequisites for CIS-205 are:

1. a passing grade (C minimum) in MATH/CS-170 Introduction to Algorithms (3 cr.), OR CIS 200

AND

2. a passing grade (C minimum) in MATH-152 College Algebra (3 cr.) OR MATH-174 Pre-Calculus OR MATH-175 Calculus I.

Students with fractured preparation in any of the pre-requisite courses are advised to repeat the pre-requisite courses before attempting this class. Good study habits, strong keyboard, mouse, and computer disk file administration skills are also needed for success in this course.

Because of its hands-on nature, this course is very time consuming.  Students are advised to treat this course as a “4 credit hour” course like MATH 175 or PHYS 231 for purposes of semester course load and work-week planning. Students are also advised not to attempt any outside employment if taking 12 or more credit hours this semester.

 

 

IDEA Course Design Objectives

This course is designed within the IDEA course design and evaluation framework.  This course was specifically designed to serve as the first semester of a one-year a foundational course for students seeking to develop professional programming skills needed for entry-level employment as a computer programmer. The corresponding IDEA course evaluation form “Progress On” objective is stated in the IDEA form as:

 

Primary IDEA Design Objective:

“24. Developing specific skills, competencies, and points of view needed by professionals in the field most closely related to this course.” (i.e. computer programming)

 

Secondary IDEA Design Objectives:

“21. Gaining factual knowledge (terminology, classifications, methods, trends).”

“22. Learning fundamental principles, generalizations, or theories.”

 

 

 

Course Objectives:

Course objectives are mastered to the global ABET accreditation standards for degree programs in Information Systems and Computer Science and the AACSB International accreditation standards.

 

ABET 2003-2004 Global Information Systems Degree Standards:

 

  • IV-6. The core materials must provide basic coverage of the hardware and software, a modern programming language, data management, networking and telecommunications, analysis and design, and role of IS in organizations.

 

  • IV-7. Theoretical foundations, analysis, and design must be stressed throughout the program.

 

  • IV-8. Students must be exposed to a variety of information and computing systems and must become proficient in one modern programming language.

 

  • IV-10. The 15 semester hours must be a cohesive body of knowledge to prepare the student to function effectively as an IS professional in the IS environment.

 

  • IV-11 The curriculum must include at least 9 semester-hours of quantitative analysis beyond pre-calculus.

 

  • IV-12 Statistics must be included.

 

  • IV-13 Calculus or discrete mathematics must be included.

 

 

 

ABET 2003-2004 Global Computer Science Degree Standards:

 

  • IV-6. The core materials must provide basic coverage of algorithms, data structures, software design, concepts of programming languages, and computer organization and architecture.

 

  • IV-7. Theoretical foundations, problem analysis, and solution design must be stressed within the program’s core materials.

 

  • IV-8. Students must be exposed to a variety of programming languages and systems and must become proficient in at least one higher-level language.

 

  • IV-9 All students must take at least 16 semester hours of advanced course work in computer science that provides breadth and builds on the core to provide depth.

 

  • IV-10 The curriculum must include at least 15 semester hours of mathematics.  Course work in mathematics must include discrete mathematics, differential and integral calculus, and probability and statistics.

 

  • IV-11 The curriculum must include at least 12 semester hours of science.

 

 

 

AACSB International Standards:

 

“The school has academic standards and retention practices that produce high quality graduates.  [ …]  Higher education is more than informational, it is transformational. Beyond the learning of facts and techniques, true learning brings new perspectives to students. That is, they not only can see different things, they can also see things differently. To generate transformational learning both intensive and extensive learning experiences must take place, and that demands the investment of significant time in learning experiences. That time includes contact between students and faculty members, contact among students, and individual and personal engagement of students in learning and applying knowledge and skills.”

 

What all this means to  you the student:

 

Coursework within ABET and AACSB standards encourage a stronger education for you, and so help you obtain higher-paying jobs upon graduation. Students at the end of this course must be able to document that they have developed basic proficiency with the following:

 

1. Mastery of some of the key thinking modes and language constructs of a modern programming language as needed for entry-level employment as a professional computer programmer, as follows: variable declaration, if/else and ?: selection and decision making, for/do/while repetition, try/catch/finally error trapping, passing and returning parameters by value and by reference, array manipulations, pre-processor directives, class and structure declarations, module reuse, disk file administration, and runtime parameter input and output.

2. The ability to devise and execute multiple-step solutions to basic quantitative word and math problems with the aid of a computer program written in a modern programming language.

3. Successfully write 150+ line computer programs that compile cleanly with a compiler and operating system of the student’s choice, accepts input from the user and/or a disk file, processes the input information, and outputs the result after some meaningful processing.

 

 

Course Syllabus and Schedule on the Internet and Blackboard:

The CIS-205 Course Syllabus and Course Schedule of Assignments are posted on the internet and available on the 24 x 7 and without a password at:

http://www.onclick.com/cis205/

The same course Syllabus and Schedule (but not the tests and discussion boards) are also available on MSU's Blackboard website, accessible with a password from:

http://online.moreheadstate.edu/

The course Schedule and Assignments is posted on the internet for the student's convenience and is enhanced and updated frequently. It is the student's responsibility to check for changes to the Course Schedule. The instructor will notify the students of any changes to the Syllabus.

 

 

Instructor:

Prof. Dr. George Kelley Ph.D., Postdoctoral, California Institute of Technology, Ph.D., Texas A & M University; . eMail: g.kelley@moreheadstate.edu, phone: +1-606-783-9358, fax/msgs: +1-309-210-1666, mailing address: 320-C Combs Bldg. MSU, Morehead KY 40351, office hours: MWF 11:30-12:30 and 3:00-4:00 pm.

 

 

Required Textbook and Materials:

1. Textbook: Brief Version of Starting Out With C++ by Tony Gaddis. Third Edition, © 2001 Scott/Jones Publishing, ISBN 1-57676-065-0.

 

2. A Blackboard login with your preferred email address: http://online.moreheadstate.edu/

The Blackboard course site and discussion boards and weblogs are your primary means of interaction with the instructor and your peers.

 

3. A compiler of your choice. You are responsible for the installation, configuration, and troubleshooting of your chosen compiler and of your IDE front-end (if you choose to use an IDE). Remember, you will receive NO POINTS for programming projects that do not compile. Some other examples of compiler and IDE options are:

 

    1. Free gcc, gpp, cc and g++ (Linux/Unix/Mac OS X), w/ or w/o Eclipse free IDE
    2. Windows IDE (Microsoft Visual 6.0, Visual.NET (C++, C#, VB))
    3. Visual Borland IDE, or Borland Free Compiler (Windows)
    4. Free OpenSource (e.g. Eclipse (free IDE) for Java, ruby, python)

 

Recommended Compilers:  Both of the following are simple, easy to use, incredibly fast, run on any OS version, and are free! When installing, don’t forget to read the readme.txt’s!

 

a. For Windows folks, the Free! Professional File Editor (PFE32) together with the Free! Borland compiler http://www.borland.com/bcppbuilder/freecompiler/

 

b. For *nix folks, the built-in vi and gcc.

 

If your choice of compiler/IDE is MS-Visual.NET, consider an inexpensive academic license version.  Note also Visual.NET requires Windows 2000 or Windows XP Professional.  Visual.NET will not install on Win95, Win98, or Windows XP Home Edition. Upgrades are available, shop aggressively for good pricing.

 

4. Download the Student Files for the Gaddis chapters.  The reading is more fun if you type along as you read!

 

5.  A USB thumb-drive (64-128-256+ MB) or intelligent stick (64-128 MB) is highly recommended. Thumb drives make it fast and easy for you to tote your code and all your coursework files around with you from the classroom to the lab and your laptop or office PC.  Thumb-drives have made floppy disks, zip drives, recordable CD-R’s, and re-writable CD-RW’s obsolete. They are fast and inexpensive ($19.99 – $59.99), can be purchased for example at Wal-Mart in Morehead, or from tigerdirect.com online, and require only access to a USB port.  A $10 after-purchase rebate coupon is available free here.

 

6. Students are encouraged to bring their laptops to the classroom.  Those on financial aid should inquire at the Financial Aid office about their eligibility for additional funding to purchase a laptop.

 

7. Students will have access to Visual.NET in Combs 303, 9am-9pm daily (5 pm on Fridays), and access to Linux vi/gcc and Eclipse w/ C++ plug-in in Lappin 226, login guest/student (hours TBA).  The open labs in the basement of the MSU library also (supposed to) have Visual.NET on them.

 

 

Study Groups, Online Discussion Board Participation, and Tutoring

You are encouraged to join and meet regularly with a small (2 or 3 person) study group.

 

Our online discussion boards do help you develop a sense of participation and belonging, so do participate actively and frequently in the discussion boards! 

 

MSU’s Academic Outreach And Support offers free tutoring in CIS 205, inquire at their offices, 208 Allie Young, (606) 783-5200, Monday - Thursday 8:30 a.m. - 8:00 p.m., Friday 8:30 a.m.noon, learninglab@moreheadstate.edu

 

There is also a free CIS200/CIS205 tutor available in CB-303, hours will be posted.

 

 

Graded Assignments:

A total of 2000 points is available, as follows:

 

  1. Welcome Survey (100 points)
  2. Eight Chapter Quizzes @100 points each (800 points)
  3. Hands-on Programming Mini-Project 1 - Robot (50 points)
  4. Hands-on Programming Mini-Project 2 - Calculator (50 points)
  5. Hands-on Programming Mini-Project 3 - ATM (100 points)
  6. Hands-on Programming Mini-Project 4 - Payroll (100 points)
  7. Hands-on Programming Mini-Project 5 - Warehouse (150 points)
  8. Hands-on Programming Mini-Project 6 - Factory (200 points)
  9. 12 weeks of weblogging @ 25 per week (300 points). 
  10. Final Exam (150 points)

 

Notice: Hands-On Programming Mini-Projects (Items 3-8) that do not compile and execute successfully will receive no points.

 

Notice:  ‘blogging entries may be short but must clearly and specifically name the course activities you addressed during your study session.  To encourage daily study, students who fail to make a minimum of 5 ‘blog entries (Item 9) on 5 different days of the week of any one week ‘blogging week will receive no points for the week, and will be penalized by the loss of an additional 10 points for the week.

 

 

Grading Breakdown

Grades are based on Total Points: A 90.0+% (1800-2000 points), B 80.0+% (1600-1799 points), C  70.0+% (1400-1599 points), D 60.0+% (1200-1399 points), E less than 60.0% (below 1200 points). 

 

 

Fun Factor and Term Workload

To be successful in this class, you must set aside regular blocks of dedicated study time and programming practice all through the week. Working regularly with a friend or a small study group is also recommended.

Programming and especially learning to program can be very time consuming. Try not be easily discouraged. Just keep in mind that time consuming is not the same as difficult.  However, programming does require a lot of quiet patience, and you must enjoy thinking in rather abstract terms and with clarity and great precision about the complex things and processes and concepts you seek to implement in code.

This course is designed for students with quantitative, mathematical, and technical inclinations (CIS option students within the BBA degree, CS students seeking the B.S. degree in the Math department, and EET/IET students seeking a technical BS).  If you learn in the end that spending hours on end fishing stray semi-colons out of your source code is not for you, that's a legitimate discovery also. It's OK to be you. Instead, try exploring other types of degree programs that offer for example more people contact, physical action, or visual content.

 

 

Attendance Policy:

Ours is an internet class with classroom instructor support.  This means your attendance in the classroom is sought and encouraged but not required. You are responsible for all the material  and are held accountable for any last-minute changes made by the instructor as well as timely and complete submission of all work whether or not you attend or skip class.

 

 

Late Work Policy:

Late work will be penalized 20% per day regardless of the fraction of the day late. You are always free to turn in work EARLY for full credit. Students who submit work EARLY are often offered feedback from the instructor for resubmission for a better point total by the deadline. Always turn in what little you may have ready by the deadline, or suffer a 20% penalty per day or fraction.

 

 

Extra Credit, Exigencies, and Make Up Policy:

Extra credit and make-up work are not available. The instructor reserves the right to make changes to this syllabus to meet unanticipated exigencies and the overall objectives of the course.

 

 

Example Related Internet Resources: Explore, have fun!

1. Textbook internet support sites:

http://www.gaddisbooks.com/brief3rd/

http://www.gaddisbooks.com/brief3rd/Corrections/corrections.html

http://www.gaddisbooks.com/brief3rd/FAQs/faqs.html

 

2. MS-Visual C++ Object Depositories (see http://www.codeguru.com/)

button control
combobox
edit control
imagelist control
listbox control
listview control
menu
other controls
property sheet
rich edit control
static control
status bar
toolbar
treeview control

database

 

3. Internet Search Engines: (great to solve intractable compiler errors) http://www.google.com/, http://www.askjeeves.com/, dir.yahoo.com

 

4.  The ASCII Character Set Table

     http://www.asciitable.com/

 

5.  Global Unicode - http://www.unicode.org/

 

6.  Global Standards Entities: IEEE, ISO, ITU, ANSI, DIN,

     IEC, W3C, Others

7. Popular and helpful C/C++ Newsgroups: C FAQ and C++ FAQ

8. C++/C# Library Depositories:

http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/

http://www.boost.org/

http://www.codeguru.com/cpp_managed/index.shtml

http://www.planet-source-code.com/

9. Programming Online Tutorial Directories: http://www.cprogramming.com/tutorial.html, tutorials.beginners.co.uk, http://www.cprogramming.com, Angelfire.com, Tripod.com

10. Free Windows Borland C/C++ compiler, free TenDRA C/C++ Compiler, Most Unix systems come with a free C/C++ compiler already installed as part of the Operating System.

11. Online C/C++ Beginner's Resources: Why Learn C/C++/OOP?, Learn C in 5 hours, Beginner's C, Intro to C, C Essentials, Easy Embedded C, Intro to C++, Fundamentals of C++, Basic C++, Intro to OOP w/ C++ ,

12. Programmer's Groups (Join!) The Association of C and C++ Users

13. Programmer's Periodicals: C/C++ User's Journal, Dr. Dobb's Journal, http://www.cprogramming.com/

14. Online Technology Job Listings: http://www.elance.com/, http://careers.kentucky.com http://www.kentuckyjobs.com/, http://www.monster.com/, http://www.headhunter.net, http://onlinenewspapers.com/, http://www.computerwork.com/, http://www.computerjobs.com/, Online Kentucky Newspapers