WINONA STATE UNIVERSITY REQUIRED CHECKLIST FOR ALL CURRICULAR PROPOSALS Course or Program___________CS150_________________ This checklist enables A2C2 representatives to endorse that their departments have accurately followed the Process for Accomplishing Curricular Change. For each course or program proposal submitted to A2C2, this checklist must be completed, signed by the submitting department's A2C2 representative, and included with the proposal when forwarded for approval. Peer review of proposals is also strongly advised, e.g., departments should discuss and vote on the proposals as submitted to A2C2, rather than on just the ideas proposed or drafts of proposals. If a proposal fails to follow or complete any aspect of the process, the Course and Program Proposal Subcommittee will postpone consideration of the proposal and return it to the department's A2C2 representative for completion and resubmission. Resubmitted proposals have the same status as newly submitted proposals. Note: This form need not be completed for notifications. 1. The appropriate forms and the “Approval Form" have been completed in full for this proposal. All necessary or relevant descriptions, rationales, and notifications have been provided. ___x_____ Completed 2a. The “Financial and Staffing Data Sheet" has been completed and is enclosed in this proposal, if applicable. ____x____ Completed ________ NA 2b. For departments that have claimed that “existing staff" would be teaching the course proposed, an explanation has been enclosed in this proposal as to how existing staff will do this, e.g., what enrollment limits can be accommodated by existing staff. If no such explanation is enclosed, the department's representative is prepared to address A2C2's questions on this matter. ___x_____ Completed ________ NA 3. Arrangements have been made so that a department representative knowledgeable of this proposal will be attending both the Course and Program Proposal Subcommittee meeting and the full A2C2 meeting at which this proposal is considered. ____x____ Completed Name and office phone number of proposal's representative: _Gary Bunce 457-5377______ 4. Reasonable attempts have been made to notify and reach agreements with all university units affected by this proposal. Units still opposing a proposal must submit their objections in writing before or during the Course and Program Proposal Subcommittee meeting at which this proposal is considered. ________ Completed ___x_____ NA 5. The course name and number is listed for each prerequisite involved in this proposal. ____x____ Completed ________NA 6. In this proposal for a new or revised program (major, minor, concentration, etc.), the list of prerequisites provided includes all the prerequisites of any proposed prerequisites. All such prerequisites of prerequisites are included in the total credit hour calculations. ________ Completed __x______ NA 7. In this proposal for a new or revised program, the following information for each required or elective course is provided: a. The course name and number. b. A brief course description. c. A brief statement explaining why the program should include the course. ________ Completed __x______ NA 8. This course or program revision proposal: a. Clearly identifies each proposed change. b. Displays the current requirements next to the proposed new requirements, for clear, easy comparison. ________ Completed __x______ NA 9. This course proposal provides publication dates for all works listed as course textbooks or references using a standard form of citation. Accessibility of the cited publications for use in this proposed course has been confirmed. ___x_____ Completed ________ NA __________________________________________________ Department's A2C2 Representative or Alternate ______________________ Date [Revised 9-05] WINONA STATE UNIVERSITY PROPOSAL FOR GENERAL EDUCATION PROGRAM COURSES Department _______Computer Science__________________ Date ______02/15/2012________ ___CS150______________ ______Overview of Computer Science___________________ Course No. Course Name __3___ Credits Prerequisites____qualifying score on math placement exam or Math 050_________________ GEP Goal Area(s):* CORE GOAL AREAS _____Goal 1: Communication _____Goal 3: Natural Science _ X__Goal 4: Mathematics/Logical Reasoning _____Goal 5: History and the Social and Behavioral Sciences _____Goal 6: The Humanities and Fine Arts THEME GOAL AREAS _____Goal 7: Human Diversity _____Goal 8: Global Perspective _____Goal 9: Ethical and Civic Responsibility _____Goal 10: People and the Environment * Courses may be submitted for up to two Goal Areas. Additional Requirement Categories: _ __Intensive: _____ 1. Writing _____ 2. Oral Communication __ __ 3. a. Mathematics/Statistics __ __ b. Critical Analysis _____ Physical Development and Wellness Provide information as specified in the previous directions. Attach a General Education Program Approval Form. Department Contact Person for this Proposal: __Gary Bunce__________________ Name (please print) ____507-457-5377___ ____gbunce@winona.edu_________ Phone e-mail address [Revised 9-6-11] WINONA STATE UNIVERSITY GENERAL EDUCATION PROGRAM APPROVAL FORM Routing form for General Education Program Course approval. Course____CS150_____________ Department Approval _________________________________ Department Chair ________________ Date Dean’s Recommendation _____ Yes _____ No* _________________________________ Dean of College ________________ Date ______ ndebnath@winona.edu________________ e-mail address *If the dean does not approve the proposal, a written rationale shall be provided to the General Education Program Subcommittee. GEPS Recommendation _____ Approved _________________________________ General Education Program Director _____ Disapproved ________________ Date A2C2 Recommendation _____ Approved _________________________________ Chair of A2C2 _____ Disapproved ________________ Date Faculty Senate Recommendation _____ Approved _________________________________ President of Faculty Senate ________________ Date Academic Vice President Recommendation _________________________________ Academic Vice President Decision of President _____ Approved _________________________________ President _____ Disapproved _____ Approved _____ Disapproved ________________ Date _____ Disapproved ________________ Date Please forward to Registrar. Registrar recorded. _________________ Please notify department chair via e-mail that curricular change has been Date entered [Revised 7-13-11] GEP Course Approval Department or Program: Course Number: Course Title: Semester Hours: Frequency of Offering: Course Description: Computer Science CS 150 Overview of Computer Science 3 every semester; 60 students/year Course is designed for non-majors who desire a survey of the field of computing/computer science. It includes studies of the mathematical/logical formulations of algorithms for problem solving. After a brief history of the development of computers, students are introduced to such fundamental issues as problem-solving, algorithm design, representation and analysis, logic design, computer organization, machine and assembly language, software design and analysis, various number representations and conversions, and mathematical models of computation. Prerequisite: GEP Goal Area: qualifying score on the mathematics placement exam or MATH 050. 4: Mathematical/Logical Reasoning Student Learning Outcomes: Upon entering CS 150, students should be able to Do basic arithmetic. Use a personal computer. Open, edit and save files. Upon completing CS 150, O1 – To illustrate historical and contemporary applications of mathematical/logical systems, students will: Be able to do number representations and conversions among the number systems used with computers; decimal, binary and hexadecimal. Have and understanding of how basic data, text, sound, and colored images are stored on a computer. Have a basic understanding of Boolean logic, truth tables and how they apply to designing computer circuits. Have an appreciation for and understanding of the evolution of modern computing systems. Have an appreciation for and understanding of the evolution of how computers are programmed O2 – To clearly express mathematical/logical ideas in writing, students will Develop and document algorithms. Analyze algorithms and express their complexity using order of magnitude notation. O3 – To explain what constitutes a valid mathematical/logical argument, students will Analyze a variety of classical and modern algorithms. Know the basic components of a computer system and understand how these components interact to logically construct a computer. O4 – To apply higher-order problem solving and/or modeling strategies, students will Explore and understand what it takes to solve a problem, and to discover, develop, document and analyze an algorithm. Explore how the computer is used to implement algorithms using machine language, assembly language and a higher level language, Java. Course Outline: 1) An Introduction to Computer Science(Supporting outcome O1) a. Definition of Computer Science b. Definition of an algorithm c. Importance of algorithmic problem solving 2) Algorithm Discovery and Design(Supporting outcomes O2, O4) a. Designing and representing algorithms b. Pseudocode; sequential, conditional and iterative operations c. Examples of common algorithms 3) The Efficiency of Algorithms(Supporting outcome O3) a. Attributes of an algorithm b. Measuring efficiency of an algorithm, order of magnitude c. Understanding of and efficiency of searching, sorting, data compression and pattern matching algorithms 4) The Building Blocks: Binary Numbers, Boolean Logic, and Gates(Supporting outcome O1) a. Representing and converting numbers among the decimal, binary and hexadecimal number systems. b. Boolean logic, the basic operations, truth tables and expressions. c. Logic gates and basic computer circuits d. A Circuit Construction Algorithm e.. Examples of Circuit Design and Construction f. Control Circuits 5) Computer Systems Organization(Supporting outcomes O1, O3, O4) a. The Components of a Computer System i. Memory and Cache ii. Input/Output and Mass Storage iii. The Arithmetic/Logic Unit iv. The Control Unit b. Putting All the Pieces Together—the Von Neumann Architecture c. Programming the raw machine – machine language d. The Future: Non—Von Neumann Architectures 6) An Introduction to System Software and Virtual Machines(Supporting outcomes O1, O4) a. The Virtual Machine b. Types of System Software c. Assemblers and Assembly Language d. Functions of an Operating System e. Historical Overview of Operating Systems Development 7) Introduction to High-level Programming(Supporting outcome O4) a.. Introduction to Java b. A Simple Java Program c. Statement Types d. Managing Complexity e. Object-oriented Programming Learning Objective Illustrate historical and contemporary applications of mathematical/logical systems. Clearly express mathematical/logical ideas in writing Explain what constitutes a valid mathematical/logical argument. Apply higher-order problem solving and/or modeling strategies Learning Opportunity Assessment & Evaluation Be able to do number representations and conversions among the number systems used with computers; decimal, binary and hexadecimal. Have and understanding of how basic data, text, sound, and colored images are stored on a computer. Have a basic understanding of Boolean logic, truth tables and how they apply to designing computer circuits. Have an appreciation for and understanding of the evolution of modern computing systems. Have an appreciation for and understanding of the evolution of how computers are programmed Lab exercises on constructing Boolean expressions and using them to design simple circuits. Also on using truth tables to construct and evaluate Boolean expressions. Several lab exercises on programming in machine language, assembly language and Java. Homework. Exams. Develop and document algorithms. Analyze algorithms and express their complexity using order of magnitude notation. Lab exercises to explore algorithms, learning how to write algorithms and to discover and document their complexity using order of magnitude notation. Homework. Exams Analyze a variety of classical and modern algorithms. Know the basic components of a computer system and understand how these components interact to logically construct a computer. Explore and understand what it takes to solve a problem, and to discover, develop, document and analyze an algorithm. Explore how the computer is used to implement algorithms using machine language, assembly language and a higher level language, Java. Lab exercises on analyzing algorithms and their complexity. Homework. Exams Lab exercises exploring algorithmic solutions and lab exercises on machine language, assembly language and Java programming. Homework. Exams Course Syllabus Course: CS 150: Overview of Computer Science Texts: Schneider and Gersting, “Invitation to Computer Science, Java Version”, 2 nd edition, Thompson, 2004. Lambert and Whaley, “Invitation to Computer Science Laboratory Manual, Java Version”, 2nd edition, Thompson, 2004. Prerequisites: Qualifying score on the mathematics placement exam or Math 050. Credits: 3 S.H. Instructor: Gary Bunce Office phone: 457-5377 Office: Watkins 103E Office hours: 10:00 am- 10:50am MTWThF e-mail:gbunce@winona.edu 11:00am- 11:50pm MWF Course web site:http://cs.winona.edu/gbunce/cs15001/ 2:00pm - 2:50pm MW Topics we will attempt to cover include, but are not limited to: I. An Introduction to Computer Science V. Computer Systems Organization A. Introduction A. Introduction B. The Definition of Computer Science B. The Components of a Computer System C. Algorithms 1. Memory and Cache 1. The Formal Definition of an Algorithm 2. Input/Output and Mass Storage 2. The Importance of Algorithmic Problem 3. The Arithmetic/Logic Unit Solving 4. The Control Unit C. Putting All the Pieces Together—the Von II. Algorithm Discovery and Design Neumann Architecture A. Introduction D. The Future: Non—Von Neumann Architectures B. Representing Algorithms 1. Pseudocode IX. An Introduction to System Software and Virtual 2. Sequential Operations Machines 3. Conditional and Iterative Operations A. Introduction C. Examples of Algorithmic Problem Solving B. System Software III. The Efficiency of Algorithms 1. The Virtual Machine A. Introduction 2. Types of System Software B. Attributes of Algorithms C. Assemblers and Assembly Language C. Measuring Efficiency 1. Assembly Language 1. Sequential Search 2. Examples of Assembly Language Code 2. Order of Magnitude—Order n 3. Translation and Loading 3. Selection Sort D. Operating Systems 4. Order of Magnitude—Order n2 1. Functions of an Operating System D. Analysis of Algorithms 2. Historical Overview of Operating Systems 1. Data Cleanup Algorithms Development 2. Binary Search 3. The Future 3. Pattern Matching VII. Introduction to High-level Programming E. When Things Get Out of Hand A. Where Do We Stand? IV. The Building Blocks: Binary Numbers, Boolean B. High-level Languages Logic, and Gates C. Introduction to Java A. Introduction 1. A Simple Java Program B. The Binary Numbering System 2. Running a Java Program 1. Binary Representation of Numeric and D. Virtual Data Storage Textual Information E. Statement Types 2. Binary Representation of Sound and Images 1. Input Statements 3. The Reliability of Binary Representation 2. Output Statements 4. Binary Storage Devices 3. The Assignment Statement C. Boolean Logic and Gates 4. Control Statements 1. Boolean Logic and operations F. Meeting Expectations 2. Gates G. Managing Complexity E. Building Computer Circuits 1. Divide and Conquer 1. Introduction 2. Using Methods 2. A Circuit Construction Algorithm 3. Writing Methods 3. Examples of Circuit Design and H. Object-oriented Programming Construction 1. What Is It? F. Control Circuits 2. Java and OOP 3. What Have We Gained? GRADING: a. 2 or 3 hour exams (75-100 points each) plus a final exam (150-200 points) b. Homework, quizzes and laboratory assignments as needed c. Attendance counts. You will start with 100 points, 2 point will be deducted for each day you are absent. d. Each student's points will be totaled and course grades will be based on a curve defined by these totals. You are responsible for all material covered in class. Class assignments are due at the beginning of the class period on the due day. No questions will be answered about a project prior to class on the same day the project is due. Make-up exams and late assignments will not be accepted except in cases of extreme emergency or when you have had prior approval from me. There will be no makeup for quizzes. Any type of unethical behavior (e.g., cheating, lying, plagiarism, abuse of the computer systems, etc.) will result in failure in this course. ACADEMIC DISHONESTY POLICY: Cheating is a deplorable act and it will not be tolerated in CS 150 or any other class that I teach. Anyone caught cheating in class will receive a grade of F for the class. Note that if you are caught cheating you will not be permitted to withdraw from the class (i.e., the F will go on your permanent transcript). All projects and homework assignments are individual assignments unless explicitly stated otherwise. That means that you must do the work entirely by yourself. To ensure that you adhere to this policy, for each assignment, you are required to sign it, this is your indication that you alone were responsible for the work. It is considered cheating to copy any portion of the assignment from anyone else or to knowingly permit someone else to copy your assignment. All exams in CS 150 are closed book/closed notes. It is considered cheating to view your book or notes or to communicate with or copy from a classmate during an exam. Note that any student who fails a CS major course because of cheating is no longer eligible to enroll in CS 491, Practicum in Computer Science. Also, note that students are allowed to attempt a specific computer science class at most three times. A student wishing to appeal this policy must follow the process defined in the Course Repetition Limit Appeal document. Sample Assignments Week 1 Lab - Learning the animator software - A computer science glossary - Web Navigation Weeks 2 - 5 Exercise - Pseudocode, designing and representing algorithms Lab - Searching for a value, sequential search - Searching for the largest value - Complexity analysis of linear search Exercise - Sorting, Selection sort, Bubble sort Lab - Sorting, Complexity of sorts Lab - Data cleanup algorithms, comparison and complexity Exercise - Binary Search Lab - Binary search, discovering its complexity Exam #1 Weeks 6 - 7 Exercises - Number conversions. Representing text, sound and image data Weeks 8 - 9 Exercise - Evaluating Boolean expressions Lab - Logic Circuits, part A Lab - Logic Circuits, part B Exam #2 Weeks 10 - 12 Lab - Von Neumann machines - The fetch – execute cycle - Representing algorithms in machine language Lab - The assembly process - Representing algorithms in assembly language Exercise - Representing algorithms in assembly language Weeks 13 - 14 Exercise - Understanding basic Java syntax and statements Lab - Java Programming, input, output and control structures Lab - Java Programming, methods and arrays Exam #3 Week 15 Lab - Programming Language Translation