WAYLAND BAPTIST UNIVERSITY SAN ANTONIO CAMPUS SCHOOL OF MATHEMATICS AND SCIENCES Wayland Mission Statement: Wayland Baptist University exists to educate students in an academically challenging, learning-focused, and distinctively Christian environment for professional success and service to God and humankind. Course Title and Number: CSCI 1305-SA01 Introduction to Computer Science Term: Name of Instructor: Office Phone Number and WBU Email Address: Office Hours, Building, and Location: Class Meeting Time and Location: Catalog Description: Overview of the field of computer science, including concepts of computer programming with an emphasis on problem solving, critical thinking, logical reasoning, design and implementation techniques, and testing; background material if needed such as GUI operating system use and file and directory manipulation; and ethics issues facing computer science professionals. Programming will be done with a modern language such as Python. Suitable for nonmajors with significant computer experience and for majors with no prior programming experience. Other students should take COSC 2311. Prerequisites: None Required Textbook and Resources: *Choose from the official booklist Optional Materials: Course Outcome Competencies: Upon completion of this course the student should be able to: Demonstrate grasp of basics of computer use and operation Demonstrate comprehension of programming and basic skill Understand and describe core areas of the computer science field Demonstrate ability to perform problem solving, critical thinking, and logical reasoning Understand ethics of computer use for ordinary users and professionals Explain the organization and use of networks, including the Internet and the World Wide Web. Attendance Requirements: All students are expected to attend all class sessions and are responsible for knowing the material covered. No quizzes or exams can be made up unless arrangements prior to the absence have been made. Any student missing more than 25% of the class will fail the class. Statement on Plagiarism and Academic Dishonesty: Wayland Baptist University observes a zero tolerance policy regarding academic dishonesty. Per university policy as described in the academic catalog, all cases of academic dishonesty will be reported and second offenses will result in suspension from the university. Disability Statement: In compliance with the Americans with Disabilities Act of 1990 (ADA), it is the policy of Wayland Baptist University that no otherwise qualified person with a disability be excluded from participation in, be denied the benefits of, or be subject to discrimination under any educational program or activity in the university. The Coordinator of Counseling Services serves as the coordinator of students with a disability and should be contacted concerning accommodation requests at (806) 291-3765. Documentation of a disability must accompany any request for accommodations. Course Requirements and Grading Criteria: suggested Homework: There are 10 formal homework assignments to be accomplished on line (with due dates as specified in schedule above), and associated paper assignments to hand the next class period after they are assigned. Homework is an important part of your learning, and is worth 20% of your grade. You may work in groups on homework assignments for the purpose of discussing problems, however you can be certain that since you cannot confer for tests and quizzes, you will have better success if you do your own work. Tests and Quizzes: There are 3 tests & 5 quizzes, worth 45% of your grade. Each quiz/test shall be taken on the assigned date unless other arrangements are made with me in advance of the test. Test questions may be taken from the chapter exercises, so it may be profitable to use these questions as your pool of study/test preparation questions. Note: Once I review the results of an exam in class, there will be no make-up for it. Midterm and Final Examinations: The mid-term and final examinations are cumulative and worth 35% of your grade. The final exam will be administered on Tuesday, February 17, 2015, from 5:30-8:30 pm. This examination is a three-hour, in-class, closed book, and comprehensive examination. For these tests, I will primarily focus on whether you understand the processes and concepts taught in the course. Always make your logic and reasoning clear and show all work for partial credit. For these two exams, I allow students one 8.5 x 11” piece of paper (not for quizzes and tests). You may use anything written on this piece of paper, but NO copies/reductions, and it must be your own work—you may not create a “cheat sheet” for other students. The idea is to allow you a short list of notes as memory joggers to help you if you get stuck. This paper will be turned in with your midterm or final exam. Grading: 30% 20% 15% 15% 20% A: 90 – 100 Chapter Tests Homework Quizzes Midterm Final B: 80 – 89 C: 70 – 79 D: 60 – 69 F: Below 60 Students shall have protection through orderly procedures against prejudices or capricious academic evaluation. A student who believes that he or she has not been held to realistic academic standards, just evaluation procedures, or appropriate grading, may appeal the final grade given in the course by using the student grade appeal process described in the Academic Catalog. Appeals may not be made for advanced placement examinations or course bypass examinations. Appeals are limited to the final course grade, which may be upheld, raised, or lowered at any stage of the appeal process. Any recommendation to lower a course grade must be submitted through the Executive Vice President/Provost to the Faculty Assembly Grade Appeals Committee for review and approval. The Faculty Assembly Grade Appeals Committee may instruct that the course grade be upheld, raised, or lowered to a more proper evaluation. Tentative Schedule: Week Chapter 1 1 2 2 Topics 1. What is computer science? 2. What is an algorithm, program, software, hardware… 3. Introducing algorithms 4. History of computing from gears to PDAs 5. Founding of the Internet; Google 6. Seven Big Ideas of Computer Science (algorithms, abstraction, creativity, data, programming, internet, and impact.) 7. Some social issues about the Internet 8. Bits and bytes – main memory 9. Boolean Logic 10. Gates and flip-flops 11. Hexadecimal notation 12. Measuring memory 13. Mass storage (history and design) 14. Optical storage systems and CD storage formatting 15. Flash Memory 16. Representing TEXT 17. Storing and manipulating IMAGES 18. Representing SOUND 19. Binary Notation 20. Analog or digital (which is best?) 21. Storing and manipulating numbers (two’s complement) 22. Fractions and Floating Point Notation 1. Programming languages – programming with Python. 2. Currency conversion 3. Programming errors – syntax errors 4. Data compression 5. Compressing IMAGES 6. Compressing AUDIO and VIDEO 7. Communications errors – PARITY and HAMMING 8. TRANSITION TO MODULE 3 9. Architecture overview and the basics of a CPU 10. Program storage 11. Cache memory 12. Machine language 3 3-4 4 5 5 6-7 13. Arithmetic and Logic 14. Addressing memory 15. The machine cycle – fetch, decode, execute. 16. Program versus data 17. Logic Operations 18. Peripheral Devices and Controllers 19. Direct Memory Access, USB, Firewire 20. Communications 21. Input and Output coding with Python 22. Pipelining and multiprocessors 1. A short history 2. Smartphones 3. Software classification 4. Components of an OS 5. Firmware 6. Processing Information and Interrupts 7. Handling Competition and Semaphores 8. Deadlock – death of a process 9. OS Security – Internal and external threats. 10. TRANSITION TO MODULE 5. 11. Network classifications and topologies 12. Protocols and the “Hidden Terminal” 13. Bridges, switches, and routers 14. Cloud Computing 15. The Internet 16. Internet Applications 17. Multimedia Streaming and Wireless Telephones 18. World Wide Web and Hypertext (HTML) 19. Servers and Clients 20. Internet Protocols and Software 21. TCP/IP, UDP and OSI Layers 22. Computer Security, Hacking, Viruses, Encryption and CERT 23. Legal Approaches to Network Security 1. Algorithm Definition 2. Primitives and Programming Language 3. Pseudocode 4. More practice with Python 5. Discovery and Representation of Algorithms 6. Problem Solving and Program Development 7. Iterative Structures (searches, loops, sorts, recursion) 8. Efficiency 1. Early years – a history of programming languages 2. Beyond the machine and the evolution of 6 8 7 9 8 10 9 11 programming languages 3. Variables and data types 4. Data structures and arrays 5. Control statements (GOTO) 6. Functions 7. Converting language from one to another 8. Development Packages 9. Object-Oriented Programming (OOP) 10. Logic-based Programming 11. TRANSITION TO MODULE 8 12. What is Software Engineering? 13. The Software Lifecycle – Design, Implementation – Testing – Maintenance 14. Development 15. Modularity and its Particulars (coupling, binding, etc.) 16. Design Patterns 17. Quality Assurance 18. Documentation 19. A Good Interface 20. Ownership and Liability 1. Data Structures – What are they? 2. Arrays, Lists, Queues 3. Trees, Branches, and Nodes 4. Static versus Dynamic Structures 5. Pointers 6. Storing Arrays, Aggregates, and Lists 7. Storing Stacks and Queues 8. Storing Binary Trees 9. Manipulating Data Structures 10. Customized Data Types 11. Classes and Objects 12. Pointers in Machine Language MIDTERM EXAM 1. The Significance of Database Systems 2. Schemas 3. Database Management Systems 4. Models 5. Relational Models and SQL 6. Object-Oriented Databases 7. Database Integrity 8. Sequential, Indexed, and Hash Files 9. Data Mining 10. Social Impact of Database Technology 1. Scope of Computer Graphics 2. Modeling Objects and Scenes 3. Rendering, Clipping, Shading 4. Global Lighting 5. Animation 6. Dynamics and Kinematics 1. Intelligence and Machines 10 12 11 2. Turing Test 3. Understanding Images 4. Language Processing 5. Reasoning 6. Representing and Manipulating Knowledge 7. Learning 8. Genetic Algorithms 9. Artificial Neural Networks 10. Robotics 11. The Consequences of Artificial Intelligence 1. Functions and their Computations 2. Turing Machines 3. Universal Programming Languages 4. Noncomputable Functions 5. A problem’s “Complexity” 6. Polynomial versus Nonpolynomial Problems 7. Cryptography and PKI Extended Computer Science Applications; Discussion of Social Media and Review for Final Examination. During this period, students will present their PROJECT on social media systems. Academic Honesty: Disciplinary action for academic misconduct is the responsibility of the faculty member assigned to this course. The faculty member is charged with assessing the gravity of any case of academic dishonesty, and with giving sanctions to any student involved. Important Dates: Last day to drop without record Last day to withdraw with “W” Last day to withdraw with a “WP/WF” Last Class This syllabus is only a plan. The teacher may modify the plan during the course. The requirements and grading criteria may be changed during the course if necessary. rev. 04/22/15