CSC/CYEN 132 the Science of Computing III Living with Cyber
Total Page:16
File Type:pdf, Size:1020Kb
CSC/CYEN 132 The Science of Computing III Living with Cyber Student Edition CSC/CYEN 132: The Science of Computing III Living with Cyber (part 3 of 3) Course Description:Additional coverage of algorithm analysis and development, object- oriented programming, data structures, computer architecture, and problem solving; applications of computing. This is the third Living with Cyber course. Course Outcomes: Upon successful completion of this course, students should: 1.Be able to identify a problem's variables, constraints, and objectives; 2.Understand more advanced data structures and their applications (e.g., dictionaries, lists, sets); 3.Be able to write object-oriented programs in a general-purpose programming language (e.g., Python); 4.Understand more advanced concepts of the object-oriented paradigm (e.g., polymorphism, coupling, and cohesion); 5.Have a basic understanding of signed and loating point number, and character representation in computers; 6.Have a basic understanding of how a computer is made (e.g., ALU, CPU, memory, I/O); 7.Have exposure to various applications of computing (e.g., problem solving with computers, software engineering, artiicial intelligence); and 8.Work in groups on a signiicant computing project with a presentation. Prerequisite(s): A grade of C or better in CSC 131 or CYEN 131. Textbook: The Living with Cyber text (in PDF format) is available for free online at www.livingwithcyber.com. Grades: Your grade for this class will be determined by dividing your total earned points by the total points possible. In general, graded components will fall into the following categories: Attendance: ~2.5% Puzzles: ~2.5% Raspberry Pi activities/project: ~30% Programs: ~15% Major tests: ~50% The Raspberry Pi kit that will be used throughout the Living with Cyber curriculum in the 2017- 18 academic year will be provided to participating students at no cost. Students who drop the Living with Cyber curriculum before inishing it must return the kit. Students not majoring or minoring in Computer Science, or majoring Cyber Engineering, will be loaned the kit and must return it at the completion of the Living with Cyber curriculum. Please see www.livingwithcyber.com for more information about device requirements. Students needing testing or classroom accommodations based on a disability are encouraged to discuss those needs with me as soon as possible. For more information, please visit www.latech.edu/ods. If you are ill, you can get treatment at the Wellness Center in the Lambright Intramural Center building. The nurses there can treat minor illnesses and can give vouchers to see doctors in town for more serious illnesses. Since you have already paid for this service through your fees, there is usually no additional charge. Also, if you sign a HIPPA release form at the time of your visit, they can verify that you were ill and thus you will have an excused absence for missing class. In accordance with the Academic Honor Code, students pledge the following: “Being a student of higher standards, I pledge to embody the principles of academic integrity.” For the Academic Honor Code, please visit http://www.latech.edu/documents/honor-code.pdf. All Louisiana Tech students are strongly encouraged to enroll and update their contact information in the Emergency Notiication System. It takes just a few seconds to ensure you’re able to receive important text and voice alerts in the event of a campus emergency. For more information on the Emergency Notiication System, please visit http://ert.latech.edu. TOPICS COVERED: • More on Data Structures • More on Objects • Building a Computer • Application (Beam): Problem Solving with Computers • Application (Beam): Software Engineering • Algorithms...Reloaded • Application (Beam): Artiicial Intelligence The Science of Computing III Living with Cyber Lesson Summary # Title Pillar(s) Description/Topic(s) Periods 01 More on Data Data Structures 1. Useful list functions 2 Structures 2. List comprehensions 3. Sets 4. Dictionaries 5. Dictionary comprehensions 6. Room Adventure...Reloaded 7. Data structures summary 02 More on Objects Computer 1. Review of inheritance 4 Programming 2. Abstraction and modularization 3. Polymorphism and method lookup 4. Multiple inheritance 5. Abstract methods and abstract classes 6. Coupling and cohesion 03 Building a Computer 1. Signed numbers (signed magnitude, one's 5 Computer Architecture complement, two's complement) 2. Characters 3. Floating point numbers 4. Combinational circuits: decoders, encoders, multiplexers, and demultiplexers 5. Sequential circuits: R-S flip-flops and clocked R-S flip-flops 6. Building a simple computer 04 Problem Solving Beam 1. The changing role of computers 1 with Computers (Application #2) 2. Communication-oriented applications 3. Spreadsheets (including relative and absolute cell referencing, and replication and built-in functions) 4. Solving problems with spreadsheets 5. The Chaos Game spreadsheet 05 Software Beam 1. Introduction to software engineering 1 Engineering (Application #3) 2. Analysis and design 3. Documentation 4. Prototyping 5. Iterative software development 6. Errors, error handling, exceptions, exception handling, and error recovery 7. Testing and debugging 8. Software engineering in action: the game of life 06 Algorithms...Reload Algorithms, 1. Introduction to Java 3 ed Computer 2. A first Java program Gourd Last modified: 13 Mar 2018 Programming 3. Data types, constants, and variables 4. I/O, operators, and primary control constructs 5. Variable scope and program flow 6. Arrays 7. The foreach loop 8. The selection sort and binary search in Java 9. Laying out classes (Fraction...reloaded) 10. Inheritance, abstract classes and methods, and more (Shapes...reloaded) 07 Artificial Beam 1. Introduction to artificial intelligence (AI) 1 Intelligence (Application #4) 2. Can intelligent machines be constructed? 3. The Turing Test 4. A brief history of AI 5. Game playing and search techniques 6. Automated reasoning 7. Neural networks and machine learning Pi Activities 3 Final Pi Project 5 Exams 3 Housekeeping 1 Slack 1 TOTAL 30 Gourd Last modified: 13 Mar 2018 CSC/CYEN 132: The Science of Computing III Last updated: Lessons Raspberry Pi Activities Puzzles Videos Assessments 13 Mar 2018 1 Housekeeping W 2 Program 1 F 2D Points WEEK 1 More on Data Structures 3 Eight Queens -- Microsoft HoloLens M Knight's Tour 4 W 5 F WEEK 2 More on Objects 6 Program 2 M 2D Points...Plotted 7 W 8 Pi Activity 1 F Room Adventure...Revolutions WEEK 3 9 Final Pi Project Program 3 M (introduction) The Chaos Game 10 Building a Computer W 11 Exam 1 More on Data Structures More W on Objects WEEK 4 12 Nonogram -- The Backwards Brain Bicycle F Nonograms! 13 Program 4 Building a Computer M Shapes 14 W WEEK 5 15 F Pi Activity 2 Paper Piano CSC/CYEN 132: The Science of Computing III Last updated: Lessons Raspberry Pi Activities Puzzles Videos Assessments 13 Mar 2018 Paper Piano 16 M 17 Building a Computer W WEEK 6 18 Exam 2 F Building a Computer 19 Beam Program 5 Problem Solving with M The Chaos Game...Reloaded Computers 20 Beam W Software Engineering WEEK 7 21 Final Pi Project Einstein's Puzzle F 22 M Algorithms...Reloaded 23 W WEEK 8 24 Final Pi Project F 25 Algorithms...Reloaded The Expert M 26 MarI/O: Machine Learning for Beam Video Games W Artificial Intelligence -or- WEEK 9 How Machines Learn 27 Final Pi Project F 28 Exam 3 Algorithms...Reloaded M Beams 29 Final Pi Project W (presentations) WEEK 10 30 SLACK F Note: The beam on Software Engineering must be covered due to its material being required knowledge. Although the beam on Problem Solving with Computers is useful for students, the remaining beams can be replaced with others (based on instructor expertise and interest) as desired. The Science of Computing III Living with Cyber Lesson: More on Data Structures Pillar: Data Structures So far, you have been introduced to various elementary and high level data structures: arrays, linked lists, stacks, queues, and binary trees. Specific to Python, you have used lists (similar to arrays) in your programs. In this lesson, we will discuss some powerful functions that work with lists and introduce several new data structures. Useful list functions As you have seen, Python lists are extremely useful data structures. In the first Python lesson, you were introduced to several list functions that, for example, reverse a list, sort a list, etc. In this lesson, we will cover several more powerful built-in functions that are quite useful when used with lists. The filter function returns a new list consisting of only the items within an existing list for which some user-defined function is true. The user-defined function can be anything that evaluates an input in the existing list and returns true or false. The format for the filter function is as follows: filter(function, list) The parameter function represents the name of the function that will evaluate each item in the existing list. The parameter list is, of course, the existing list of items to evaluate. Suppose, for example, that you want to find all of the multiples of three or five that are less than or equal to 30 and make a list of them. Here's one way to do this: multiples = [] for i in range(3, 31): if (i % 3 == 0 or i % 5 == 0): multiples.append(i) However, here's how it could be done with the filter function: def f(x): return (x % 3 == 0 or x % 5 == 0) multiples = filter(f, range(3, 31)) Both of these methods generate the following list: [3, 5, 6, 9, 10, 12, 15, 18, 20, 21, 24, 25, 27, 30] The map function returns a new list consisting of the return values generated by a user-defined function on each item in an existing list.