UCC/UGC/YCC Proposal for Course Change FAST TRACK (Select if this will be a fast track item. Refer to UCC or UGC Fast Track Policy for eligibility) 1. Effective BEGINNING of what term and year?: Summer 2012 See effective dates calendar. 2. College: CEFNS 4. Current course subject and number: 3. Academic Unit: CS 122 / 122H 5. Current title, description and units. Cut and paste, in its entirety, from the current on-line academic catalog*. (www4.nau.edu/aio/AcademicCatalog/academiccatalogs.htm) CS 122 PROGRAMMING FOR ENGINEERING AND SCIENCE (3) Introduces computer programming for engineers, scientists, and math majors. Emphasizes problem solving, algorithms, and structured programming. Letter grade only. Course fee required. Prerequisite: MAT 108 with a grade greater than or equal to C or Math Placement Test Results (ALEKS/MATHA 35+; MATHC 35+; PLACE 43+) SAS CS 122H PROGRAMMING FOR ENGINEERING AND SCIENCE - HONORS (3) Introduces computer programming for engineers, scientists, and math majors. Emphasizes problem solving, algorithms, and structured programming. Letter grade only. Course fee required. Prerequisite: (MAT 108 with a grade greater than or equal to C or Math Placement Test Results (ALEKS/MATHA 35+; MATHC 35+; PLACE 43+)) and Honors Student Group SAS Revised 06/22/2011 Electrical Engineering & Computer Science Bold the proposed changes in this column to differentiate from what is not changing, and Bold with strikethrough what is being deleted. CS 122 PROGRAMMING FOR ENGINEERING AND SCIENCE (3 2) Introduces computer programming for engineers, scientists, and math majors. Emphasizes problem solving, algorithms, and structured programming. Letter grade only. Course fee required. Prerequisite: MAT 108 with a grade greater than or equal to C or Math Placement Test Results (ALEKS/MATHA 3550+; MATHC 3550+; PLACE 4355+)). Co requisite: CS 122L. SAS CS 122H PROGRAMMING FOR ENGINEERING AND SCIENCE - HONORS (3 2) Introduces computer programming for engineers, scientists, and math majors. Emphasizes problem solving, algorithms, and structured programming. Letter grade only. Course fee required. Prerequisite: (MAT 108 with a grade greater than or equal to C or Math Placement Test Results (ALEKS/MATHA 3550+; MATHC 3550+; PLACE 4355+)) and Honors Student Group. Co requisite: CS 122L. SAS *if there has been a previously approved UCC/UGC/YCC change since the last catalog year, please copy the approved text from the proposal form into this field. 6. Is this course in any plan (major, minor or certificate) or sub plan (emphasis or concentration)? Yes No If yes, describe the impact and attach written responses from the affected academic units prior to college curricular submission. BS Applied Computer Science, BSE Electrical Engineering, BSED Secondary Education; Mathematics, BS Environmental Sciences; Applied Mathematics Emphasis (elective), BS Mathematics, BSE Civil Engineering (elective)*, BSE Environmental Engineering (elective)*, BSE Mechanical Engineering. See attached responses from EE, Math, , and ME. Also attached is notification/response from Environmental Science. *Pending UCC plan changes that remove this course as an elective. 7. Is there a related plan or sub plan change proposal being submitted? If no, explain. Yes No 8. Does this course include combined lecture and lab components? Yes If yes, note the units specific to each component in the course description above. No 9. Is there a course fee? No Yes 10. Justification for course change. This change reflects the experiences reported to the stakeholders by those who took the class in the past. It is apparent that switching the programming environment and programming language in the middle of the semester from Matlab to C++ has detrimental effects on the students’ ability to develop good programming and problem solving skills. Moreover, it turns out that for all stakeholders, the importance of another programming language is marginal compared to developing good problem solving and programming skills. Consequently, this class will put more emphasis on one programming environment, deepening the understanding of and increasing the confidence to solve problems in that environment. At the same time, the material on C++ will no longer be taught and the overall number of credit hours can be reduced to two credits. For those who are currently requiring only the three credit lecture, our assessment data has shown substantially lower grades and higher DFW rates compared to those who take both the lecture and the lab class. Reducing the material enables all degree programs to substitute the new class and lab combination into the three credit hours vacated by the old CS 122 lecture, thereby improving student success. In order to support the process of developing programming skills by solving practically relevant mathematics and engineering problems within guided lab sessions, we generally require all students taking CS122 to also take the lab CS122L as a co-requisite. A correction was made to the mathematics placement thresholds to align with the prerequisite of MAT 108. The existing thresholds were the prerequisite levels to enroll in MAT 108, rather than MAT 108 as a prerequisite. Revised 06/22/2011 IN THE FOLLOWING SECTION, COMPLETE ONLY WHAT IS CHANGING If the changes included in this proposal are significant, attach copies of original and proposed syllabi CURRENT Current course subject and number PROPOSED Proposed course subject and number Current number of units 3 Current short course title Proposed number of units 2 Proposed short course title (max 30 characters) Current long course title Proposed long course title (max 100 characters) Current grading option letter grade pass/fail or both Current repeat for additional units Proposed grading option letter grade pass/fail or both Proposed repeat for additional units Current max number of units Proposed max number of units Current prerequisite Proposed prerequisite Current co-requisite Current co-convene with Proposed co-requisite CS 122L Proposed co-convene with Current cross list with Proposed cross list with Answer 11-15 for UCC/YCC only: 11. Is this course an approved Liberal Studies or Diversity course? If yes, select all that apply. Liberal Studies Diversity Yes No Both 12. Do you want to remove the Liberal Studies or Diversity designation? If yes, select all that apply. Liberal Studies Diversity Both Yes No Yes No 14. Is the course a Common Course as defined by your Articulation Task Force? Yes No 15. Is this course a Shared Unique Numbering (SUN) course? No 13. Is this course listed in the Course Equivalency Guide? Revised 06/22/2011 Yes Scott Galland 01/26/2012 Reviewed by Curriculum Process Associate Date Approvals: Department Chair/ Unit Head (if appropriate) Date Chair of college curriculum committee Date Dean of college Date Inst. Year Course ASU NAU UA NAU CS 1 2011- Course Title Not Available 12 Elective Credit NAU CS 122 (3) 2011- PROGRAMMING FOR ENG & SCI 12 Elective Credit Revised 06/22/2011 Dieter and David, The Department of Mathematics and Statistics supports the proposed change to CS 122. Thank you for involving us in the process. Terry Blows, Chair of Mathematics and Statistics From: F Ernesto Penado Sent: Monday, October 03, 2011 5:53 PM Subject: RE: Following up on our meeting on the CS122 issue Dieter, The department of mechanical engineering supports the proposed change to CS 122; namely, to change the lecture part to 2 credit hours using Matlab as the only programming language while leaving the lab separate from the class as 1 credit hour. We feel that the change in content to using Matlab only in the class and lab is something that will benefit our students. The reduction in the lecture from 3 to 2 credit hours will also benefit our students by means of fewer hours to graduation. Thanks, ----------------F. Ernesto Penado, Ph.D. Professor and Chair Department of Mechanical Engineering Northern Arizona University 15600 S. McConnell Dr., Bldg. 69 Flagstaff, AZ 86011-5600 Phone: (928) 523-9453 Fax: (928) 523-2300 From: Wolf-Dieter Otte [mailto:wolfdieterotte@gmail.com] Sent: Monday, October 03, 2011 2:23 PM To: Terence Ronald Blows; F Ernesto Penado; David Robin Scott Subject: Following up on our meeting on the CS122 issue Dear All, I wanted to follow up on the meeting that we just had and formally ask for your consent on the things that we agreed upon during the meeting. Here is what we decided: - CS122 is going to become a two credit lecture, Matlab-only, class (2x50 minutes) - This class will have a one credit of lab attached, which normally is a 150 minutes. However, if there is a way to shorten the lab, mostly for logistical and ultimately also for resource purposes, to 120 minutes, we would like to go this route. We also feel that the overwhelming majority of students don't take more than 100-120 minutes to do the lab assignments. That option is being explored right now. - We will retain the overall 3 credits of Liberal Studies SAS. - From a pedagogical point of view, we feel that it is by far better to have students become familiar with one programming language/environment thoroughly than to have them get their feet wet with two such environments and not feeling comfortable using either. Please let me know if you have questions, Best,Dieter Revised 06/22/2011 From: Maureen Fray Sent: Wednesday, January 25, 2012 7:57 AM To: Scott Anderson; Stuart S Galland Subject: RE: Applied Math Emphasis Yes I agree, the change in this course is great. They are now only focusing on one program and going in depth for more clarity. I think this will assist our students in exploring this area but offering the support they need through the lab to pass the course with higher marks. Maureen Fray Academic Advisor, Sr. College of Engineering, Forestry & Natural Sciences Northern Arizona University Biological Sciences (Bldg #21), Rm. 132 PO Box 5626 Flagstaff, AZ 86011 928-523-2880 928-523-0516 (fax) maureen.fray@nau.edu nau.edu/cefns Remember to always send along your student ID# when corresponding with your Advisor. Please consider the environment before printing this email. --"Imagination is more important than knowledge. I never came upon any of my discoveries through the process of rational thought." - Albert Einstein From: Scott Anderson Sent: Wednesday, January 25, 2012 7:12 AM To: Stuart S Galland Cc: Maureen Fray Subject: RE: Applied Math Emphasis Maureen, I wanted to check with you to see if this is ok for our students. It looks ok to me, but I would like your eyes to see this as well. If you agree, I will sign and send on to Pauline. Thanks, Scott ___________________________________________________________________________________________ _________________________________________________ R. SCOTT ANDERSON Professor of Paleoecology & Program Chair of Environmental Sciences School of Earth Sciences & Environmental Sustainability Building 19, Room 119 (Box 5694) Northern Arizona University, Flagstaff, AZ 86011 Revised 06/22/2011 PROPOSED SYLLABUS Northern Arizona University CS 122 – Programming for Engineering and Science Course Syllabus Dept. of Electrical Engineering and Computer Science College of Engineering, Forestry and Natural Sciences General Information CS 122 “Programming for Engineering and Science” Offered every semester 100 Minutes, 2 credits Instructor: TBD Office hours: TBD Room/Time: TBD Course Prerequisites MAT 108 with a grade greater than or equal to C or Math Placement Test Results (ALEKS/MATHA 50+; MATHC 50+; PLACE 55+) SAS You are required to take CS122L as a co-requisite to this class. Course Description Introduces computer programming for engineers, scientists, and math majors. Emphasizes problem solving, algorithms, and structured programming. Liberal Studies Information The mission of the Liberal Studies Program at NAU is to prepare students to live responsible, productive, and creative lives as citizens of a dramatically changing world. CS 122 supports this mission by helping you: Gain a deeper understanding of the tools and processes that enable and drive our technologicallyoriented society. Explore the history and culture of Matlab. Understand the basics of computer programming and be able to apply them to solve problems you encounter in life. CS 122 is a course in the Science and Applied Science Distribution Block and supports the intent of that block by: Teaching you the basics of a programming language. Teaching you how to program and problem-solve with a programming language. Cultivating highly logical and algorithmic thinking. Exposing you to the common algorithms and techniques that are the basic building blocks of all programming. Student Learning Expectations/Outcomes for this Course Revised 06/22/2011 Through the program students acquire a broad range of knowledge and develop essential skills for professional success and life beyond graduation. By completing all the coursework in the class, you will meet the learning outcomes specifically linked to quantitative reasoning: You will assess descriptions of both raw and derived quantitative data. You will interpret the results of models that you program, including margins of error from statistical data. You will use graphs to solve problems such as scheduling, organizing information or finding optimal strategies. You will describe and explain the processes and results by applying quantitative literacy skills in reports you write. More specific, by the end of the semester, you will be able to: Break down computational problems into a series of easily managed steps. Create programs in Matlab that solve the problems at hand. Process numerical data and perform input and output operations on it. Visualize the result through charts and graphs. Assessment of Student Learning Outcomes You will be evaluated using the following evaluation tools: Class Participation (5%) Homework Assignments: (20%) Programming Projects: (25%) 2 Midterms: (30%) 1 Final Exam: (20%) Class participation is vital to be successful and generally required. Up to 5% from the course’s result may be taken off in case a student fails to participate in classes without prior excuse. All grades are letter grades, with the following grading scale: A=90%..100%, B=80%..89%, C=70%..79%, D=60%..69%, F<60% Course structure/approach The course will primarily be delivered in lecture format. Discussions are, however, part of the class, depending on the subject matter. Students are encouraged to ask questions right during the class, which will be answered interactively. It is imperative that students be prepared and actively participate in class discussions. Textbook and required materials Chapman, "MATLAB Programming for Engineers", Fourth Edition. Thompson, 2008. ISBN 0-49524449-X Recommended optional materials/references (attach reading list) Please use the Internet to supplement the information provided in class. This is especially important to look up specifics on the programming environment that you are going to use, e.g. a function’s definition and parameters passed etc. Revised 06/22/2011 Course outline This is an overview of the time line of the class and the material covered. Week 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Topic Introduction, Computer Basics, Matlab Introduction Matlab Data Structure/Plot Matlab Vectors/Matrices Matlab Vectors/Matrices cont. Matlab Branching & Loops Catch-up & review, Midterm 1 Matlab Branching & Loops cont. Matlab Branching & Loops cont. Matlab Functions Matlab Functions cont. Matlab Functions cont. Catch-up & review, Midterm 2 Matlab Scopes, etc. Advanced topics Matlab Review Final Exam Book Section B1B2Ch1 B1Ch2 B1Ch2 B1Ch2 B1Ch3, B1Ch4 B1Ch3, B1Ch4 B1Ch3, B1Ch4 B1CH5 B1CH5 B1CH5 B1CH6 Course policy Attendance: Attendance is required. You are responsible for all material covered during the lectures whether you attend or not. If you must miss a class, be sure to get the notes from another student. After reviewing their notes and doing the assigned reading, let me know if you have specific questions ("Did I miss anything?" is not a specific question!). Late arrivals are very disruptive and are not acceptable - plan to arrive five minutes before the start of class. Late work: No late work will be accepted. Unless otherwise noted, all assigned work is due at the beginning of class on the date they are due! Programming assignments will usually be submitted electronically. If your program is incomplete or won't compile, you should submit it with extensive explanation (i.e. comments, email, other) of exactly what DOES work, where you failed, etc. to help me assign partial credit. Make-ups: No make-ups are given for pop-quizzes or programming assignments.. Make-up exams will be given only in the case of a documented emergency or with approval from me at least 24 hours prior to the exam. Make-up exams are usually more difficult than the original exam. Lectures and the Book: The lecture topics follow the same general outline as the book. However, the lecture complements the book rather than being a mirror of it. If you only read the book or only pay attention to the lecture you're likely to end up missing some key concepts. To get the most from the class, read each chapter before we discuss the corresponding topic in the lecture, then use the lecture as an opportunity to Revised 06/22/2011 reconsider the key points of the material and ask questions on anything you're confused on. Computer Access: The projects and many of the homework assignments are programming problems requiring a computer to solve. You can use your NAU computer account to access lab computers and our Unix computer remotely. We will not be spending any class time in the computer lab. You are responsible for going to the lab on your own time or working from home to complete the assignments. You can use the Unix lab in room 106, the PC lab in room 317, the computers in the building's Internet Cafe or any of the various PC labs around campus. However, only the computers in the engineering labs are guaranteed to have Matlab installed - other computers may or may not. The computers in the math building should have Matlab as well. Electronic Device Usage: All cell phones, PDAs, music players and other electronic devices must be turned off (or in silent mode) during lecture, and may not be used at any time. Laptops or workstations (if present) are allowed for note-taking only during lectures; no surfing or other use is allowed. I devote 100% of my attention to providing a high quality lecture; please respect this by devoting 100% of your attention to listening and participating. Academic Dishonesty: Cheating will not be tolerated and will result in immediate failure in the course. Serious incidents of academic dishonesty will also for brought to the attention of the university and may result in expulsion. All work in this class is meant to be an individual effort by the person receiving the grade. Any variation from this is considered cheating and all parties involved (giving or receiving) will be sanctioned severely. Additional clarification on cheating: Sometimes students are not clear on what is or is not cheating in regards to programming: the programs you turn in for grading should have been written and typed in by you without referencing another’s work (you may refer to books, of course --- but you may not copy large sections of code from any book, the internet, or any other medium). It is often helpful to work with others to clarify the problem to be solved and discuss possible solutions; this is acceptable and even encouraged. But you should never at any time give another student a copy of your code or accept code from another student, either physically or electronically. Some examples of cheating include but are not limited to: Turning in someone else's code (perhaps with minor modifications) as your own. This includes code that you found on the internet, reference texts, or elsewhere. Turning in fabricated output for a non-functional program (or editing output from a partially functional program) in an effort to fool the grader into thinking the program works as specified. Using fragments (e.g. functions/methods) from another's code in your code, passing them off as you own. A Few Helpful Hints For Success in CS 122 Learning a programming language is very much like learning a foreign language – it requires study and practice on a regular basis. Very few people do well trying to "cram" before exams in this class. Writing a program can be a funny thing. Some people are very fast programmers, others are quite slow. One common complaint I hear is that someone spent XX hours on a program and still couldn’t finish. Others might spend only a couple of hours. This disparity emphasizes the difference between "programming" and merely “hacking”. It is important to make sure you understand what has to be done, the concepts associated with the assignment, and that you have a plan or outline for your Revised 06/22/2011 program before you write a single line of code. All of this will help to decrease the time you spend in front of the computer wondering why something doesn’t work. Here are a few further hints for success in CS 122: 1. Read the book! My lectures will make a lot more sense to you if you read the corresponding sections in the book. 2. Come to class (no matter what)! Even if you haven’t done your reading, come to class and keep up with what we are doing. Students are sometimes amazed at the information given in class that is helpful in completing their programming assignments and in doing well on exams. 3. Write practice programs! Don’t let your programming assignments be the only time you try things out on the computer. When someone asks a question in class and I say, "Hmmm…why don’t you go try that?" – go try it! My telling you how something works is no substitute for seeing it yourself. 4. Make friends with someone in the class! This can come in handy if you happen to miss a class or need someone to study with for an exam. Just make sure that you and your friend don’t both miss class on the same day. 5. Ask questions! If something doesn’t make sense, ask about it – either in class or during my office hours. Learning a programming language and how to program is a cumulative process – if you miss one concept, it will probably haunt you through the rest of the course. 6. Start your programming assignments early! Don't delay programming assignments until the last minute. Unlike writing a paper for an English class (which is done when you want it to be), a program is a living thing, full of errors that must be corrected before it is done -- just one bug can render the whole thing useless. How long it takes to correct bugs is unpredictable. So be sure to leave yourself enough time --- time to think carefully about the design before you program, time to type in the program, and time to resolve whatever problems do arise. Remember, whatever can go wrong will and at the least opportune time. My willingness to help you with your assignment outside of office hours greatly diminishes in the hours immediately before it is due. University policies: In order to conserve paper we do not provide you with a complete set of university policies documents. You can, however access these policies through NAU’s web site. You should familiarize yourself with the following university policies, which are available at the Engineering Front Desk, and on the University's website. • Safe Working and Learning Environment • Students with Disabilities • Academic Dishonesty • Institutional Review Board (use of human subjects) • Accommodation of Religious Observance and Practice • Classroom Management Statement Building Evacuation Policy Revised 06/22/2011