Unit 2 - The Computing Discipline.pptx
Document Details
Uploaded by PatriDragon
West Visayas State University
Full Transcript
CHAPTER 2: THE COMPUTING DISCIPLINE Prepared by: John Cairo Minerva, WVSU Faculty Learning Objectives: 1. Described the ACM Body of Knowledge as a framework for computing education. 2. Identified the core knowledge areas within computer science. 3. Explained the relationships b...
CHAPTER 2: THE COMPUTING DISCIPLINE Prepared by: John Cairo Minerva, WVSU Faculty Learning Objectives: 1. Described the ACM Body of Knowledge as a framework for computing education. 2. Identified the core knowledge areas within computer science. 3. Explained the relationships between different knowledge areas. 4. Recognized the importance of lifelong learning and staying updated with emerging technologies. The ACM CS Body of Knowledge The ACM Computer Science Body of Knowledge is a comprehensive framework developed by the Association for Computing Machinery (ACM) to outline the fundamental concepts, skills, and areas of knowledge that are essential for the field of computer science. It is used as a guideline for curriculum development in academic institutions and helps to standardize computer science education. Core and Elective Units In updating the body of knowledge from the framework established in Computing Curricula 1991, the CC2001 Task Force must take account of the fact that the computing discipline has expanded to such an extent that it is impossible for undergraduates to learn every topic that has at one time been considered fundamental to the discipline. The task force has therefore sought to define a minimal core consisting of that material that essentially everyone teaching computer science agrees is essential to anyone obtaining an undergraduate degree in this field. Material offered as part of an undergraduate program that falls outside the core is elective. CS Body of Knowledge (ACM) Programmin Social & Algorithms & Architecture g Prof. Issues Complexity & Fundamental Organization s Operating Computational Sc. Discrete Systems & Numerical Structures Methods Source: Steelman Draft 2001, CS Body of Knowledge (ACM) Programmin Social & Algorithms & Architecture g CS Prof. Fundamentals Issues Complexity & Fundamental Mostly Technology independent Organization s Operating Computational Sc. Discrete Systems & Numerical Structures Methods Source: Steelman Draft 2001, ACM CS Body of Knowledge (ACM) Programmin Social & Algorithms & Architecture g CS Prof. Fundamentals Issues Complexity & Fundamental Mostly Technology independent Organization s Operating Computational Sc. Discrete Systems & Numerical Structures Methods Programmin Information Net-Centric Graphics & g Languages Managemen Computing Visual t Programming Source: Steelman Draft 2001, ACM CS Body of Knowledge (ACM) Programmin Social & Algorithms & Architecture g CS Prof. Fundamentals Issues Complexity & Fundamental Mostly Technology independent Organization s Operating Computational Sc. Discrete Systems & Numerical Structures Methods Core Conceptual Courses Programmin Information Net-Centric Graphics & Best g Languages exemplified by Managemen a set of related Computing technologies; Visual May or may not t be influenced by UniversityProgramming infrastructure Source: Steelman Draft 2001, ACM CS Body of Knowledge (ACM) Programmin Social & Algorithms & Architecture g CS Prof. Fundamentals Issues Complexity & Fundamental Mostly Technology independent Organization s Operating Computational Sc. Discrete Systems & Numerical Structures Methods Core Conceptual Courses Programmin Information Net-Centric Graphics & Best g Languages exemplified by Managemen a set of related Computing technologies; Visual May or may not t be influenced by UniversityProgramming infrastructure Intelligent Software Human Systems (AI) Engineering Comp. Interaction Source: Steelman Draft 2001, ACM CS Body of Knowledge (ACM) Programmin Social & Algorithms & Architecture g CS Prof. Fundamentals Issues Complexity & Fundamental Mostly Technology independent Organization s Operating Computational Sc. Discrete Systems & Numerical Structures Methods Core Conceptual Courses Programmin Information Net-Centric Graphics & Best g Languages exemplified by Managemen a set of related Computing technologies; Visual May or may not t be influenced by UniversityProgramming infrastructure Intelligent Software Human CanSystems be taught (AI)independent of Engineering the above Comp.two categories Interaction Source: Steelman Draft 2001, ACM CS Body of Knowledge Programming Information Net-centric Graphics & Visual Languages Management Computing Programming OO Languages Programming the Data Storage, Web, Wireless, Graphics, Modeling, Transaction Mobile Computing, Animation,.NET Framework Mgmt Network Security, Visualization and C#/VB/J#/C++/ Virtual Runtimes Component Pascal/Scheme/ SQL Server Fortran/… XML Web WinForms, DataSets/XML Services,.NET WebForms, ADO.NET Framework &.NET GDI+ Libraries, Compact Direct X Visio and UML Framework, MIT, SQL CE, ASP.NET CS Body of Knowledge Operating Software Human Computer Senior/Capstone Systems Engineering Interaction Projects File I/O, System Analysis Resource Mgmt, and Design, Using a GUI Professional Practice Security, Component Toolkit, Cross- Memory Mgmt, Programming, platform UI design, Multi- Build compiler Threading, Distributed extensions to any.NET media applications Virtual Systems language, Extend Runtimes VS.NET AE.NET Framework Assignment Manager.NET Framework, (desktop) on (Shared Source) XML Web Services Windows,.NET using Soap Toolkit, Pocket PC 2002 SDK,.NET Framework Compact Framework WSDK, UDDI SDK Smartphone SDK, on any OS on devices , VS.NET, Visio Tablet PC SDK DirectX, Speech SDK CORE TOPICS DS. Discrete Structures (43 core hours) Discrete mathematics describes processes that consist of a sequence of individual steps, as compared to forms of mathematics that describe processes that change in a continuous manner. The major topics we cover in this course are single-membership sets, mathematical logic, induction, and proofs. We will also discuss counting theory, probability, recursion, graphs, trees, and finite-state machines. DS. Discrete Structures (43 core hours) DS1. Functions, relations, and sets (6) DS2. Basic logic (10) DS3. Proof techniques (12) DS4. Basics of counting (5) DS5. Graphs and trees (4) DS6. Discrete probability (6) DS. Discrete Structures (43 core hours) Truth Table https://homework.study.com/cimages/multimages/16/truth4322686323395458537.png PF. Programming Fundamentals (38 core hours) The course will explore basic programming constructs, data types, control structures, functions, and introductory object-oriented programming (OOP). Through hands-on coding exercises, students will develop problem-solving skills and learn to design, implement, and test programs using a high-level programming language. The course emphasizes good programming practices, such as code readability, documentation, and debugging, ensuring students build a strong foundation for advanced studies in computer science. PF. Programming Fundamentals (38 core hours) PF. Programming Fundamentals (38 core hours) PF1. Fundamental programming constructs (9) PF2. Algorithms and problem-solving (6) PF3. Fundamental data structures (14) PF4. Recursion (5) PF5. Event-driven programming (4) PF. Programming Fundamentals (38 core hours) https://code.visualstudio.com/assets/docs/languages/cpp/msg-intellisense.png AL. Algorithms and Complexity (31 core hours) In this course you will learn to develop and implement algorithms and analyze them with respect to correctness and efficiency; define the concepts P, NP, NP-completeness, undecidability, etc, to be able to identify and attack problems that are unrealistically resource demanding or not possible to solve, and to construct computer programs that use time and memory efficiently. AL. Algorithms and Complexity (31 core hours) AL1. Basic algorithmic analysis (4) AL2. Algorithmic strategies (6) AL3. Fundamental computing algorithms (12) AL4. Distributed algorithms (3) AL5. Basic computability (6) AL6. The complexity classes P and NP AL7. Automata theory AL8. Advanced algorithmic analysis AL9. Cryptographic algorithms AL10. Geometric algorithms AL11. Parallel algorithms AL. Algorithms and Complexity (31 core hours) https://i.ytimg.com/vi/47GRtdHOKMg/maxresdefault.jpg AR. Architecture and Organization (36 core hours) The course explores topics such as digital logic design, processor architecture, memory hierarchy, input/output systems, and performance optimization. Students will gain hands-on experience with assembly language programming and understand the interaction between hardware and software. By the end of the course, students will be equipped to analyze and evaluate computer systems, laying the groundwork for more advanced studies in systems and hardware design. AR. Architecture and Organization (36 core hours) AR1. Digital logic and digital systems (6) AR2. Machine level representation of data (3) AR3. Assembly level machine organization (9) AR4. Memory system organization and architecture (5) AR5. Interfacing and communication (3) AR6. Functional organization (7) AR7. Multiprocessing and alternative architectures (3) AR8. Performance enhancements AR9. Architecture for networks and distributed systems AR. Architecture and Organization (36 core hours) Learn Computer Science. (2024, May 3). Computer Organization and Architecture | Beginners COA Tutorial. https://www.learncomputerscienceonline.com/computer- organization-and-architecture/ OS. Operating Systems (18 core hours) The course covers essential topics such as process management, memory management, file systems, and I/O systems. Students will learn how operating systems manage hardware resources, provide services to users, and ensure system security and efficiency. Through hands-on projects and simulations, students will gain practical experience in system programming and the internal workings of modern operating systems. OS. Operating Systems (18 core hours) OS1. Overview of operating systems (2) OS2. Operating system principles (2) OS3. Concurrency (6) OS4. Scheduling and dispatch (3) OS5. Memory management (5) OS6. Device management OS7. Security and protection OS8. File systems OS9. Real-time and embedded systems OS10. Fault tolerance OS11. System performance evaluation OS12. Scripting HC. Human-Computer Interaction (8 core hours) This course explores the principles and practices of Human-Computer Interaction (HCI), focusing on the design and evaluation of user interfaces that enhance the user experience. The course covers key topics such as user-centered design, usability principles, interface design, interaction styles, and user experience (UX) evaluation methods. Students will learn to design intuitive and accessible interfaces, understand user needs, and apply usability testing techniques. Through projects and hands-on activities, students will develop the skills needed to create and evaluate effective interactive systems. HC. Human-Computer Interaction (8 core hours) HC1. Foundations of human-computer interaction (6) HC2. Building a simple graphical user interface (2) HC3. Human-centered software evaluation HC4. Human-centered software development HC5. Graphical user-interface design HC6. Graphical user-interface programming HC7. HCI aspects of multimedia systems HC8. HCI aspects of collaboration and communication HC. Human-Computer Interaction (8 core hours) https://online.keele.ac.uk/wp-content/uploads/2023/11/Human-Computer-interaction.jpg GV. Graphics and Visual Computing (3 core hours) This course introduces the fundamental concepts and techniques of computer graphics and visual computing, focusing on the creation, manipulation, and representation of visual content. The course covers topics such as geometric modeling, rendering, animation, and visualization. Students will learn how to generate 2D and 3D graphics, explore the mathematical foundations of graphics algorithms, and develop an understanding of the principles behind modern visual computing applications. Through hands-on projects, students will gain practical experience in creating visually compelling graphics and understanding the technical challenges involved. GV. Graphics and Visual Computing (3 core hours) GV1. Fundamental techniques in graphics (2) GV2. Graphic systems (1) GV3. Graphic communication GV4. Geometric modeling GV5. Basic rendering GV6. Advanced rendering GV7. Advanced techniques GV8. Computer animation GV9. Visualization GV10. Virtual reality GV11. Computer vision GV. Graphics and Visual Computing (3 core hours) GeeksforGeeks. (2024, March 21). Turtle Programming in Python. GeeksforGeeks. https://www.geeksforgeeks.org/turtle-programming-python/ SP. Social and Professional Issues (16 core hours) This course examines the ethical, social, and professional issues related to the field of computing. The course explores topics such as professional ethics, legal and social responsibilities, privacy, intellectual property, and the impact of technology on society. Students will engage in critical discussions about the role of computing professionals in a global society and will develop the skills necessary to navigate ethical dilemmas and professional challenges in the workplace. The course emphasizes the importance of responsible and ethical behavior in the practice of computing. SP. Social and Professional Issues (16 core hours) SP1. History of computing (1) SP2. Social context of computing (3) SP3. Methods and tools of analysis (2) SP4. Professional and ethical responsibilities (3) SP5. Risks and liabilities of computer-based systems (2) SP6. Intellectual property (3) SP7. Privacy and civil liberties (2) SP8. Computer crime SP9. Economic issues in computing SP10. Philosophical frameworks SP. Social and Professional Issues (16 core hours) The Trolley Problem SE. Software Engineering (31 core hours) This course introduces the fundamental principles and practices of software engineering, focusing on the systematic approach to the development, operation, and maintenance of software. The course covers essential topics such as software development life cycle models, requirements engineering, software design, testing, and maintenance. Students will learn best practices for building high- quality software systems, with an emphasis on teamwork, project management, and the use of modern software engineering tools and methodologies. The course also explores the ethical and professional responsibilities of software engineers. SP. Social and Professional Issues (16 core hours) SE1. Software design (8) SE2. Using APIs (5) SE3. Software tools and environments (3) SE4. Software processes (2) SE5. Software requirements and specifications (4) SE6. Software validation (3) SE7. Software evolution (3) SE8. Software project management (3) SE9. Component-based computing SE10. Formal methods SE11. Software reliability SE12. Specialized systems development SP. Social and Professional Issues (16 core hours) Mayhew, J. (2020, March 19). What Do Software Engineers Do? Woz U. https://woz-u.com/blog/what-do-software-engineers-do/ WVSU-CICT REVISED PROSPECTUS FOR BSCS End of Chapter