CISC 130 COURSE SYLLABUS UNIVERSITY OF ST. THOMAS DEPARTMENT OF COMPUTER and INFORMATION SCIENCES COURSE NUMBER: CISC 130 COURSE NOTES: Course notes accessible by students at: http://courseweb.stthomas.edu/tpsturm/private/notes/cisc130 COURSE TITLE: Problem Solving in the Natural Sciences (using C and Matlab) ACADEMIC TERM: Spring, 2011 CATALOG DESCRIPTION: (Formerly QMCS 130 and QMCS 230) Introduction to problem solving with computers, using programming languages common to science and engineering disciplines; logical thinking, design and implementation of algorithms; and basic programming structures. Introduction to hardware and software: how computers acquire, store, process, and output information; how computer systems are designed, programmed, and tested. Students will use both a scientific programming language and an application package designed to implement programming features at a level more accessible to nonprogrammers. This course is designed for students majoring in Engineering or the sciences. Majors in the Department of Computer and Information Sciences should take CISC 131. Please see your academic advisor to ensure you select the appropriate class. Lab included. NOTE: Students who receive credit for CISC 130 may not receive credit for CISC 131. MINIMUM PREREQUISITE: None IDEAL PREREQUISITES: All courses numbered below 130 (in all departments) that are in the student's planned program of studies. TIME AND DAYS: Lecture: Section 02: Section 04: Lab: Section 02: Section 04: MEETING ROOM: OSS 432 INSTRUCTOR: Dr. Thomas P. Sturm OFFICE: Room 424 OSS TELEPHONE: (651) 962-5479 E-MAIL ADDRESS: tpsturm@stthomas.edu WWW HOME PAGE: http://courseweb.stthomas.edu/tpsturm BLACKBOARD ACCESS Section02:https://blackboard.stthomas.edu/webapps/portal/frameset.jsp?tab=co urses&url=/bin/common/course.pl?course_id=_67901_1&frame=top Section04:https://blackboard.stthomas.edu/webapps/portal/frameset.jsp?tab=co urses&url=/bin/common/course.pl?course_id=_66957_1&frame=top CISC 130 9:35 to 10:40 A.M. on Monday, Wednesday and Friday 10:55 A.M. to Noon on Monday, Wednesday, and Friday 8:00 to 9:40 A.M. on Thursday 9:55 to 11:35 A.M. on Thursday 1 Problem Solving in the Natural Sciences OFFICE HOURS: 1:30 to 3:00 P.M. on Monday and Wednesday. You may also call for an appointment outside of these hours. CREDIT STATEMENT: This course satisfies a curriculum requirement for various majors and minors. It does not satisfy a requirement for the natural science, mathematical, and quantitative reasoning in the core curriculum. REQUIRED TEXTBOOKS: (Kaplan) Kaplan, Daniel T. Introduction to Scientific Computation and Programming. Brooks/Cole. 2004. ISBN 0-534-38913-9. http://www.brookscole.com/cgiwadsworth/course_products_wp.pl?fid=M20b&product_isbn_issn=978053438 9130&discipline_number=38 Access to Programs and Data Files at: http://www.brookscole.com/cgiwadsworth/course_products_wp.pl?fid=M20b&product_isbn_issn=978053438 9130&discipline_number=38 (K&R) Kernighan, Brian W. and Ritchie, Dennis M. The C Programming Language. Second Edition. Prentice-Hall, Inc. 1988. ISBN 0-13-110362-8. http://www.pearsonhighered.com/educator/academic/product/0,3110,0131103 628,00.html IDEA LEARNING OBJECTIVE #1: “Gaining factual knowledge (terminology, classifications, methods, trends)” 1. Understand computer hardware and software, and their differences. 2. Understand the philosophy of the Matlab application package and the C programming language and their differences. 3. Understand data acquisition, storage, processing, and output. IDEA LEARNING OBJECTIVE #2: “Learning fundamental principles, generalizations, or theories” 1. Employ varied methodologies to solve problems in a general sense. 2. Understand programming languages and application packages and their differences. 3. Understand the process of investigation and problem solving. IDEA LEARNING OBJECTIVE #3: “Learning to apply course material (to improve thinking, problem solving, and decisions)” 1. Investigate alternative methods for solving the "same" problem, assessing effort, effectiveness, and machine efficiency. 2. Assess the appropriate use of computer tools to solve any particular problem. 3. Use appropriate computer software as a companion in solving a variety of mathematical, science, and engineering problems. IDEA LEARNING OBJECTIVE #4: “Developing specific skills, competencies, and points of view needed by professionals in the field most closely related to this course.” 1. Write Matlab scripts to solve a variety of mathematical, science, and engineering problems. 2. Design, write, document, and debug C programs. 3. Write programs in Matlab and/or C to analyze data and explore algorithms. CISC 130 2 Problem Solving in the Natural Sciences DISABILITIES: Students with disabilities who may need classroom accommodations should make an appointment with the Enhancement Program – Disability Services office as soon as possible. Appointments can be made by calling 651-9626315. You may also make an appointment in person in O’Shaughnessy Educational Center, room 119. For further information, you can locate the Enhancement Program on the web at http://www.stthomas.edu/enhancementprog/. Students with documented disabilities who may need classroom or exam accommodations must meet with me in my office by February 11. EXAMS: There are a total of four exams. Exam dates are fixed as shown on the Course Outline. Students who will be unable to attend on the day of a scheduled exam should make special arrangements with the instructor prior to the exam date. Where true emergencies make prior arrangements impossible, students should contact the instructor as soon as possible. Special exams will be given, graded, and counted at the sole discretion of the instructor. All exams must be taken. LABS: Laboratory assignments are to be done individually. Help in any form must be properly acknowledged in writing. Work is expected to be done in a professional manner. Laboratory work is assigned at the end of the Wednesday lecture, begun during the laboratory session on Thursday, completed outside the lab session, and submitted at the beginning of the next Monday’s lecture. Placing your name (or allowing it to be placed) on work you did not make a significant contribution toward is a reportable violation of the University's Academic Integrity Policy. CLASS PARTICIPATION AND ATTENDANCE: Students are expected to attend all lecture and lab sessions throughout the entire semester. Students are expected to come to class prepared to do that day's lab or actively participate in that day's lecture. Students are expected to keep up with the readings, lab assignments, BlackBoard posting, and instructor e-mail. No web browsing, cell phone usage, texting, etc. is allowed in class or during labs. AVAILABILITY OF SOFTWARE: Matlab R2009b (7.9.0.529) is installed on all CISC, GPS, and ENGR lab computers. A student version of Matlab R2010a, containing more features than are installed on our lab computers, is available for about $100. The Code::Blocks C version 10.05 development environment is installed on all CISC lab computers. Students can download and install a free copy of Code::Blocks on their own computers. Visit http://www.codeblocks.org/ for details and to download codeblocks-10.05mingw-setup.exe COURSE AVERAGE COMPUTATION: 3 Exams on 2/21, 3/18, 4/18 2-part Final Exam on 5/17 or 5/18 Laboratory Exercises CISC 130 3 40% of grade 20% of grade 40% of grade Problem Solving in the Natural Sciences GRADE GUIDELINES: At the end of the semester, the point total in each category is divided by the points possible in that category, then that percentage is weighted as indicated above to calculate an overall percentage, which in turn is equated with a letter grade. The ranges indicated below are intended as guidelines, not as absolutes. 92% to 100% 88% to 92% 84% to 88% 80% to 84% 76% to 80% 72% to 76% A AB+ B BC+ 68% to 72% 64% to 68% 60% to 64% 56% to 60% 52% to 56% below 52% C CD+ D DF CISC 130 LECTURE OUTLINE (MWF): Day No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Date 1/31 2/2 2/4 2/7 2/9 2/11 2/14 2/16 2/18 2/21 2/23 2/25 2/28 3/2 3/4 3/7 3/9 3/11 3/14 3/16 3/18 22 3/28 CISC 130 K&R Chaps. 1 1 1 1 1 Notes Parts PS M M M M M M M M M M M M M M M 1 1 1 1 M 1 Kaplin Chaps. 1 2 3 3 4 4 4 5 5 1-4 6 6 7 7 8 8 5-8 Topic(s) Problem solving Matlab computations Data types, number systems Collections, plotting Matrices Indices Mixed data Files Scripts Exam 1 Functions and Function files Function documentation and multiple returns Conditionals Switches Loops Conditional looping Introduction to C Looping examples Character input/output examples Array examples Exam 2 SPRING BREAK Function examples 4 Problem Solving in the Natural Sciences 23 24 25 26 27 28 29 30 31 32 3/30 4/1 4/4 4/6 4/8 4/11 4/13 4/15 4/18 4/20 2 2 2 2 2 3 3 3 1-3 4 2 2 2 2 2 2 2 2 1-2 3 33 34 35 36 37 38 39 40 4/27 4/29 5/2 5/4 5/6 5/9 5/11 5/13 5/17 4 4 4 4 5 5 5 5 1-5 3 3 3 3 3 3 3 3 1-3 1-8 5/17 All All All 5/18 1-5 1-3 1-8 5/18 All All All CISC 130 Function prototyping Variables and constants Scope, lifetime, initialization Operators and type conversion, bit manipulation Conditional expressions, macros, operation order Control flow Switch/Case Exception flow Exam 3 Functions EASTER BREAK Parameters (The evils of) Global variables Scope, lifetime Initialization Pointers Arrays (The evils of) Address arithmetic Multidimensional arrays Section 04 FINAL EXAM - Part 1 10:30 A.M. to 11:30 A.M. (Closed book, closed notes, with computer) Section 04 FINAL EXAM - Part 2 11:30 A.M. to 12:30 P.M. (Closed book, closed notes, no computer) Section 02 FINAL EXAM - Part 1 8:00 A.M. to 9:00 A.M. (Closed book, closed notes, with computer) Section 02 FINAL EXAM - Part 2 9:00 A.M. to 10:00 A.M. (Closed book, closed notes, no computer) 5 Problem Solving in the Natural Sciences CISC 130 LAB OUTLINE (Th): Lab Due No. Date Date 1 2/3 2/7 K&R Chaps. Notes Kaplin Parts Chaps. PS 1,2 2 2/10 2/14 M 3 3 2/17 2/21 M 4 4 2/24 2/28 M 5 5 3/3 3/7 M 6 6 3/10 3/14 M 7,8 7 3/17 3/28 1 1 8 3/31 4/4 1 1 9 4/7 4/11 2 2 10 4/14 4/18 2 2 11 5/2 3 2 12 4/21 &28 5/5 5/9 4 2 13 5/12 5/17 &18 4 3 CISC 130 Topic(s) Problem Solving: Ka Ex. 1.1, 1.2, 1.3, 1.5; Matlab Expressions, Ka Ex. 2.1 (4 ways w/names), 2.3 (3 expressions w/values) Types, text, Booleans: Ka Ex. 3.2 (with n=0, n=1, n=2, n=25), 3.3 (sin (1/x) and sin(x)/x), 3.7 (1 part), 3.9, 3.11 (1 part) Collections, matrices, subscripts, indexing: Ka Ex. 4.1 (2 parts), 4.3, 4.4, 4.5; Ka Ex. 3.5 Files, scripts, computation: Ka Ex. 4.8, 5.1, 5.2, roots of a polynomial Functions, arguments, documentation: Ka Ex. 6.1, 6.2 (5 parts), 6.3, 6.5, 6.9 Conditionals and loops in functions: Ka 7.1, 7.9, 8.1, 8.5, 8.15 Tutorial I: C Lab 1.1 parts 1 to 7; C Lab 1.2 parts “for” and “while”; C Lab 1.3 Tutorial II: C Lab 1.4; C Lab 1.5 parts 1 to 3; Part 1 Supplement 1 and 2 Language Rules: Primes; C Lab 2.1 parts 1a to 1e; C Lab 2.1 parts 2a to 2e Types, Operators, Expressions: C Lab 2.3 parts 1 to 2; C array lab parts 1 to 12 Control Flow: K&R Chapter 3 Exercises 1 to 6 Functions: C Lab 3.1 parts 1 to 4; C Lab 3.2 parts 1 to 4 Program Structure: C Lab 3.3 parts 1 to 3 6 Problem Solving in the Natural Sciences