Skip to content

Files

Latest commit

 

History

History
5 lines (5 loc) · 17.3 KB

events copy.csv

File metadata and controls

5 lines (5 loc) · 17.3 KB
1
class_idsummarystart_timeend_timecreateddescriptioncategorystatusdueuidalarmtriggeractionimpactrecurrencevRecur
2
0CSCI 4287 - Embedded Systems Programming2024-01-15 21:00:00-07:002024-01-15 22:15:00-07:002024-01-01T08:00:00-07:00<br>CSCI 4287 - Embedded Systems Programming:<br><br><p>Embedded systems programming involves the development of software for embedded systems, which are specialized computing systems designed for specific tasks rather than general-purpose computing. These systems are embedded as part of a larger device, system, or installation and typically have stringent requirements for size, power consumption, and reliability. The key characteristics and components of embedded systems programming include:</p><ol><li><p><strong>Microcontrollers and Microprocessors</strong>: The core of most embedded systems, these integrated circuits execute the software programmed into them. Microcontrollers include memory and peripherals on the same chip, making them ideal for direct control tasks.</p></li><li><p><strong>Real-Time Operating Systems (RTOS)</strong>: Many embedded systems require real-time performance, where tasks must be completed within strict time constraints. An RTOS manages the hardware resources and scheduling to meet these time requirements.</p></li><li><p><strong>Programming Languages</strong>: C and C++ are the most commonly used programming languages for embedded systems due to their efficiency and control over system resources. Assembly language is also used for very low-level programming, and newer languages like Rust are gaining traction for their safety features.</p></li><li><p><strong>Input/Output Interfaces</strong>: Embedded systems often interact with the external world through sensors and actuators. Programming these interfaces involves managing digital and analog inputs/outputs, communication protocols (e.g., SPI, I2C, UART), and sometimes complex signal processing.</p></li><li><p><strong>Power Management</strong>: Many embedded systems are battery-powered and require careful management of power consumption. Programming for power efficiency involves techniques such as sleep modes, dynamic power scaling, and efficient use of peripherals.</p></li><li><p><strong>Development Environments and Tools</strong>: Integrated Development Environments (IDEs) and tools specific to the target hardware are used for coding, debugging, and testing. These tools often include simulators, emulators, and real-time debugging features.</p></li><li><p><strong>Security</strong>: With the rise of connected devices, security has become a critical aspect of embedded systems programming. This includes implementing secure boot, encryption, secure communication protocols, and regular security updates.</p></li><li><p><strong>Testing and Debugging</strong>: Due to the hardware-software integration and the specific applications of embedded systems, testing and debugging can be complex. This often involves hardware-in-the-loop simulations, unit testing, and extensive field testing.</p></li></ol><br><table><thead><tr><th><strong><b>Item</b></strong></th><th><strong><b>Weight</b></strong></th></tr></thead><tbody><tr><td>Midterm Exam</td><td>20%</td></tr><tr><td>Final Exam</td><td>20%</td></tr><tr><td>HW / Lab Assignments</td><td>20%</td></tr><tr><td>Class Project</td><td>40%<br></td></tr></tbody></table>    <br><span>Letter Grade Distribution</span><br><table><thead><tr><th><strong><b>Range</b></strong></th><th><strong><b>Letter Grade</b></strong></th></tr></thead><tbody><tr><td>Total Score ≥ 90%</td><td>    A</td></tr><tr><td>90% &gt; Total Score ≥ 85%</td><td>    B+</td></tr><tr><td>85% &gt; Total Score ≥ 80%</td><td>    B</td></tr><tr><td>80% &gt; Total Score ≥ 75%</td><td>    C+</td></tr><tr><td>75% &gt; Total Score ≥ 70%</td><td>    C</td></tr><tr><td>70% &gt; Total Score ≥ 65%</td><td>    D+</td></tr><tr><td>65% &gt; Total Score ≥ 60%</td><td>    D</td></tr><tr><td>60% &gt; Total Score</td><td>    F</td></tr></tbody></table>No category providedCONFIRMED1hjt21vpaq149h4djgmcheidre@google.comDISPLAY00vRecur({'FREQ': ['WEEKLY'], 'WKST': ['SU'], 'UNTIL': [datetime.datetime(2024, 5, 10, 5, 59, 59, tzinfo=<UTC>)], 'BYDAY': ['MO', 'WE']})
3
1CSCI 3762 - NETWORK2024-01-16 17:30:00-07:002024-01-16 18:45:00-07:002024-01-01T08:00:00-07:00Network Programming<br><br><p>A course in Network Programming is designed to equip students with the skills and knowledge needed to develop software that communicates over computer networks. This field blends concepts from computer networking, programming, and systems engineering to enable the creation of applications that operate within distributed environments. Here’s a breakdown of the key components and topics a Network Programming course might cover:</p><ol><li><p><strong>Networking Fundamentals</strong>: Understanding the basic principles of computer networks, including the OSI and TCP/IP models, network topologies, and key protocols such as TCP, UDP, IP, and HTTP. This foundation is crucial for understanding how data moves across the network.</p></li><li><p><strong>Socket Programming</strong>: At the heart of network programming, socket programming involves creating endpoints (sockets) for communication between devices. The course will likely cover how to use sockets in various programming languages, such as C/C++, Python, or Java, and the differences between TCP sockets (stream-based) and UDP sockets (datagram-based).</p></li><li><p><strong>Client-Server Model</strong>: Learning how to design and implement the client-server architecture, where servers provide resources or services and clients access them. This includes understanding stateful vs. stateless design, multi-threaded servers, and handling multiple clients.</p></li><li><p><strong>Concurrent Programming</strong>: Since network applications often handle multiple connections simultaneously, an understanding of concurrency is essential. This might involve threads, processes, asynchronous I/O, or event-driven programming, depending on the technology stack used.</p></li><li><p><strong>Network Security</strong>: An overview of the principles of network security, including encryption, authentication, and secure communication protocols (e.g., SSL/TLS). Security practices are vital for protecting data in transit and preventing unauthorized access.</p></li><li><p><strong>Web Services and APIs</strong>: Introduction to web services and Application Programming Interfaces (APIs), including RESTful services and SOAP. This section covers how to design, implement, and consume web services, which are critical for modern web applications.</p></li><li><p><strong>Network Application Protocols</strong>: Detailed exploration of application layer protocols such as HTTP, FTP, SMTP, and DNS. Understanding these protocols is essential for developing applications that perform web browsing, file transfer, email, and domain name resolution.</p></li><li><p><strong>Advanced Topics</strong>: Depending on the course’s depth, it might cover more advanced topics like network programming with frameworks (e.g., .NET or Node.js), peer-to-peer systems, network simulation tools, or specific protocols for IoT devices.</p></li><li><p><strong>Project Work</strong>: Practical, hands-on projects are a key component, allowing students to apply theoretical knowledge to real-world scenarios. Projects might involve developing a chat application, a web server, a file transfer application, or integrating with third-party web services.</p></li></ol><br>10 labs worth 10% each<br><br><table><caption><br></caption><caption><br></caption><caption>Letter Grade Distribution</caption><thead><tr><th><strong><b>Range</b></strong></th><th><strong><b>Letter Grade</b></strong></th></tr></thead><tbody><tr><td>Total Score ≥ 90%</td><td>A</td></tr><tr><td>90% &gt; Total Score ≥ 85%</td><td>B+</td></tr><tr><td>85% &gt; Total Score ≥ 80%</td><td>B</td></tr><tr><td>80% &gt; Total Score ≥ 75%</td><td>C+</td></tr><tr><td>75% &gt; Total Score ≥ 70%</td><td>C</td></tr><tr><td>70% &gt; Total Score ≥ 65%</td><td>D+</td></tr><tr><td>65% &gt; Total Score ≥ 60%</td><td>D</td></tr><tr><td>60% &gt; Total Score</td><td>F</td></tr></tbody></table>No category providedCONFIRMED03u4osgcd8uj9benaejtaieafl@google.comDISPLAY00vRecur({'FREQ': ['WEEKLY'], 'WKST': ['SU'], 'UNTIL': [datetime.datetime(2024, 5, 17, 5, 59, 59, tzinfo=<UTC>)], 'BYDAY': ['TU', 'TH']})
4
2CSCI 4743 - Cyber/Infrastructure Defense2024-01-16 20:00:00-07:002024-01-16 21:15:00-07:002024-01-01T08:00:00-07:00<p>Cybersecurity and Infrastructure Defense focuses on equipping students with the knowledge and skills necessary to protect computer systems, networks, and data from cyber threats and vulnerabilities. It encompasses a broad range of topics that combine principles from information security, network security, system administration, and risk management. The course aims to prepare students for roles in cybersecurity, where they can design, implement, and manage security measures to safeguard information technology (IT) infrastructure. Here’s an overview of the core components and topics typically covered in such a course:</p><ol><li><p><strong>Fundamentals of Information Security</strong>: Introduction to the foundational concepts of cybersecurity, including the CIA triad (confidentiality, integrity, availability), types of security threats, vulnerabilities, and the principles of secure design.</p></li><li><p><strong>Network Security</strong>: Detailed examination of network architectures, protocols, and security measures. Topics might include firewalls, intrusion detection systems (IDS), intrusion prevention systems (IPS), virtual private networks (VPNs), and secure routing protocols.</p></li><li><p><strong>Cryptography</strong>: Understanding the role of cryptography in securing data. This includes symmetric and asymmetric encryption, hashing algorithms, digital signatures, and cryptographic protocols like SSL/TLS for secure communication.</p></li><li><p><strong>Security Policies and Laws</strong>: Overview of the legal, ethical, and professional issues in cybersecurity. Discussion of privacy laws, regulatory requirements (e.g., GDPR, HIPAA), and the development and implementation of security policies and incident response plans.</p></li><li><p><strong>Operating System and Application Security</strong>: Techniques and tools for securing operating systems (Windows, Linux, etc.) and applications. This may cover topics such as access controls, secure coding practices, application vulnerabilities, and patch management.</p></li><li><p><strong>Threat Analysis and Mitigation</strong>: Techniques for identifying, analyzing, and mitigating cyber threats. This could include malware analysis, penetration testing, risk assessment methodologies, and the use of various security frameworks (e.g., NIST, ISO/IEC 27001).</p></li><li><p><strong>Cyber Physical Systems Security</strong>: Addressing the security considerations for cyber-physical systems (CPS) such as industrial control systems (ICS), Supervisory Control and Data Acquisition (SCADA) systems, and Internet of Things (IoT) devices.</p></li><li><p><strong>Cloud Security</strong>: Security challenges and strategies related to cloud computing. Topics may include cloud architecture, secure data storage, identity and access management (IAM), and compliance issues in cloud environments.</p></li><li><p><strong>Incident Response and Disaster Recovery</strong>: Preparing for, responding to, and recovering from cybersecurity incidents. This includes the creation of incident response teams, forensic analysis, and disaster recovery planning.</p></li><li><p><strong>Emerging Trends in Cybersecurity</strong>: Exploration of emerging technologies and trends in cybersecurity, such as artificial intelligence (AI) and machine learning in security, blockchain for security, and the evolving landscape of cyber warfare and cyber terrorism.</p></li><li><p><strong>Hands-on Labs and Projects</strong>: Practical, hands-on labs and projects are critical to applying theoretical concepts. These might involve setting up secure networks, performing penetration tests, conducting forensic analysis, or developing secure applications.</p></li></ol><br><span><br></span><br><span><br></span><br><span>Item                                      Weight </span><br><span>HW Assignments (5 total)    30%</span><br><span>Quizzes  (3 total)                    30% </span><br><span>Final Exam                               35%</span><br><span>Attendance                              5%   </span><table><caption><br></caption><caption>Letter Grade Distribution</caption><thead><tr><th><strong><b>Range</b></strong></th><th><strong><b>Letter Grade</b></strong></th></tr></thead><tbody><tr><td>Total Score ≥ 90%</td><td>A</td></tr><tr><td>90% &gt; Total Score ≥ 85%</td><td>B+</td></tr><tr><td>85% &gt; Total Score ≥ 80%</td><td>B</td></tr><tr><td>80% &gt; Total Score ≥ 75%</td><td>C+</td></tr><tr><td>75% &gt; Total Score ≥ 70%</td><td>C</td></tr><tr><td>70% &gt; Total Score ≥ 65%</td><td>D+</td></tr><tr><td>65% &gt; Total Score ≥ 60%</td><td>D</td></tr><tr><td>60% &gt; Total Score</td><td>F</td></tr></tbody></table>No category providedCONFIRMED4tr53n0phm1ofmv9overtv0vcc@google.comDISPLAY00vRecur({'FREQ': ['WEEKLY'], 'WKST': ['SU'], 'UNTIL': [datetime.datetime(2024, 5, 11, 5, 59, 59, tzinfo=<UTC>)], 'BYDAY': ['TU', 'TH']})
5
3CSCI 4034 - Theory of Computation2024-01-15 16:30:00-07:002024-01-15 17:45:00-07:002024-01-01T08:00:00-07:00<p>Theory of Computation delves into the fundamental questions about what can be computed and how efficiently computations can be performed. It is a core area of computer science that intersects with mathematics, logic, and algorithms, providing a theoretical framework for understanding the capabilities and limitations of computing machines. The course is essential for students interested in the deeper theoretical aspects of computer science, including algorithms, complexity theory, and the nature of computation itself. Here's an overview of the key topics and components typically covered:</p><ol><li><p><strong>Automata Theory</strong>: This area introduces the concept of automata as abstract models of computing machines. Students learn about finite automata, pushdown automata, and Turing machines, which correspond to different classes of computational problems. The study of automata is foundational for understanding how problems can be mechanistically solved.</p></li><li><p><strong>Formal Languages and Grammars</strong>: This topic explores the formalisms used to describe and classify languages (sets of strings) that automata can recognize. It covers the Chomsky hierarchy, which classifies languages into types based on their generative grammars, from regular and context-free languages to context-sensitive and recursively enumerable languages.</p></li><li><p><strong>Computability Theory</strong>: Also known as recursion theory, computability theory addresses the question of what problems can be solved by algorithms, hence what is computable. It includes the study of recursive functions, the Church-Turing thesis, and the concept of undecidability, illustrated by famous problems like the Halting Problem.</p></li><li><p><strong>Complexity Theory</strong>: This area examines the resources (such as time and space) required to solve computational problems and classifies problems based on their inherent difficulty. Key concepts include P vs. NP, NP-completeness, and various complexity classes like P, NP, EXP, and space complexity classes like PSPACE.</p></li><li><p><strong>Algorithmic Complexity and Efficiency</strong>: Related to complexity theory, this topic focuses on analyzing algorithms to determine their efficiency and scalability. It involves understanding big O notation, time-space trade-offs, and the limits of algorithmic optimization.</p></li><li><p><strong>Reduction and Completeness</strong>: The course may cover reductions, a method for proving that problems are at least as hard as others, thereby establishing hardness and completeness within various complexity classes, particularly NP-completeness.</p></li><li><p><strong>Decidability and Recursion</strong>: An exploration of which problems can be algorithmically decided, the limits of algorithmic solutions, and how recursive functions play into the theory of computation.</p></li><li><p><strong>Quantum Computation (Optional)</strong>: Some courses might introduce elements of quantum computation, discussing how quantum bits and quantum algorithms could potentially solve problems more efficiently than classical algorithms.</p></li></ol><p>The course typically involves a mix of lectures, problem sets, theoretical exercises, and sometimes programming assignments to implement concepts algorithmically. It's rigorous and abstract, requiring a solid foundation in discrete mathematics, particularly in areas like set theory, logic, and graph theory.</p><br><br>3 homework assignments 11% of total grade each ( all three are worth 33.3% )<br><br>midterm is worth 33.3%<br><br>final is worth 33.3%<br><br>HW1 - due 02.22 worth 100pts<br>HW2 - due 04.15 worth 100pts<br>HW3 - due 05.01 worth 100pts<br><br>MIDTERM - 02.26 worth 33%<br>FINAL        - 05.06 worth 33%No category providedCONFIRMED6kl813t5p1487pti68hl2ed5t2@google.comDISPLAY00vRecur({'FREQ': ['WEEKLY'], 'WKST': ['SU'], 'UNTIL': [datetime.datetime(2024, 5, 10, 5, 59, 59, tzinfo=<UTC>)], 'BYDAY': ['MO', 'WE']})