Tárgy hivatalos adatlapja:
Good knowledge of the C / C ++ programming language.
Required / suggested previous courses
The course can be attended by students who have completed the course in Basics of Programming II.
Synopsis and Objectives
This course is a basic BSc course based on previous terms. The main goal is to provide a comprehensive approach to the following areas: computer networking, database management, data processing, programming theory, and formal languages. Both theoretical and practical approaches are presented in order to help students in their research activities as electrical engineers. As a result, students become able to detect, analyze and manage problems that arise in network systems, database engines, and simple human-computer and computer-to-computer interfaces.
The curriculum of laboratories continuously follows the lectures.
Detailed Syllabus of the Course
1. Database Management
- General concepts and components of a database system. Data independence, architectural layers.
- An entity, relational descriptions, binary and many-valued relationships. Data storage, representation.
- Database operations (insert, delete, update). Relation, domain, attribute, key concepts. Integrity rules, operations on relations. Relational database.
- The concept of functional dependency. 0, 1, 2, 3, Boyce-Codd normal forms, many-valued dependencies.
- Introduction to SQL. Creating a table, and inserting, modifying, deleting data. Database search. Static and dynamic SQL. Data types, null. Queries in SQL; filters, expressions, operators. Grouping, sorting. Complex queries, embedded queries (join). DML and DDL statements.
- Transactions and basics of transaction management. Data consistency.
2. Computer Networks
- Classification of computer networks; network topologies, structures, architectures.
- Basic concepts. The OSI model and TCP/IP model layers.
- Communication channel. Ideal and real transmission line.
- Error detection and correction. Error detecting and error-correcting code. The CRC code.
- Wired and wireless communication. Point-to-point connections.
- Channel coding. Some well-known codes (e.g., Manchester). Fundamental digital modulation methods.
- Addressing modes. Connection lifecycle. Connection-oriented and connectionless communication.
- Virtual networks (VPN). Forwarding nodes, routing, congestion problem.
- Media protocols. CSMA/CD, IEEE 802.3 Ethernet, Token Bus, Token Ring, etc.
- Analog and digital communications. Modems.
- TCP/IP protocols stack. Addressing. Basic concepts of routing. Static and dynamic routing algorithms.
3. Formal Languages and State Machines
- Basic concepts of formal languages. BNF. Languages generated by the grammar. Classes, Chomsky-classes.
- Finite state machine (FSM) and linear language acceptor. FSM and regular languages. FSM transformations.
- Context-free grammars. Derivation. The concept of LL(k) languages, LL(k) parser.
- General concepts and functions of a compiler. Lexical and syntactic parsers. High-level language elements (case study).
Laboratories and dates in 2021:
- Mar. 03: Database design: entity-relationship diagrams
- Mar. 17: SQL language: DDL and DML
- Mar. 31: SQL language: advanced queries to multiple tables
- Apr. 14: Transaction management, problems of concurrent access
- Apr. 21: Introduction to Wireshark and network monitoring
- May 12: Practical approach to formal languages. Regular expressions
Place and time: MS Teams (Informatics2 channel, Lab group), 10:15-12:00 a.m. Wednesday
Education methods of the course
Lectures, laboratory exercises.
In lecture term:
- The continuity of learning is checked by Placement Tests at laboratories, which is a pass/fail check. If a student fails the Placement Test, he cannot take part in the computer laboratory (in other words his attendance is null).
- In one week after each laboratory exercise, the student should submit a Laboratory Report that requires the documentation of tasks and exercises, including system and algorithm designs, test cases, and theoretical background if needed. It should be submitted electronically on the course webpage. The student must always follow the directions of the Laboratory Instructor (if any), or their Report will not be accepted. Please note that Laboratory Reports may not be submitted by e-mail and/or after the deadline for any reason!
- The quality of learning is checked by a Midterm Test that will take place during the semester.
- The Final Exam takes place at the end of the semester.
The course is finished successfully, if
- The student is a regular attendant at the lectures and laboratories; the absence cannot exceed 30% as it is defined in the Code of Studies and Exams (CSE), Article 14, Point 3. Absence at lectures and laboratories is taken separately.
- The student has completed 5 laboratory exercises out of 6, and all corresponding Laboratory Reports are accepted by the laboratory instructor.
- The Midterm Test grade is at least "pass".
- The Final Exam grade is at least "pass".
All of the above conditions must be fulfilled; otherwise, the term grade is unsatisfactory.
If all these conditions are fulfilled, the grade is calculated as follows:
- The final grade is a weighted average of a Midterm Test grade (30%), and a Final Exam grade (70%).
The grade can be modified by the instructor with +/-0.5. The instructor can make this decision based on a student's performance at the lectures and the quality of the submitted Laboratory Reports. Rounding grade to the nearest integer number will be done using usual algebraic rules.
- It is the responsibility of each student to complete all assignments according to the requirements set by the Instructor and to submit only work that is his or her own. Submitting others' assignments is a big academic sin; doing that you are committing fraud. All assignments will be automatically and manually compared against each other.
- All parties involved in plagiarism and cheating will be prosecuted no matter who copied from whom. It is your duty to keep your code secure. The incident of this kind will be reported to the respective academic authority for measures to be taken.
- The attendance register is circulated regularly at classes, and it is your responsibility to ensure that you sign it. You can sign a register in the first 5 minutes after the start of classes. It is an offense to sign a register on behalf of someone else, and anyone found doing so may be investigated for fraud.
- A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about rules for group work/collaboration should seek guidance from the course instructor or academic advisor.
- Code of Studies and Exams of BME can be found here.
In this course, we want to encourage collaboration and the free interchange of ideas among students, and in particular the discussion of laboratory exercises, assignments, etc. However, we do not allow plagiarism, which, as commonly defined, consists of passing off as one's own ideas, words, writings, etc., which belong to another. In accordance with this definition, you are committing plagiarism if you copy the work of another person and turn it in as your own, even if you should have the permission of that person.
Missed Assignments Information
Throughout the semester there are 6 Laboratory Exercises, but only 5 of them are required for getting the signature. Therefore, the Labs cannot be retaken, because not all of them are required. The unsatisfactory Midterm Test can be retaken once. The unsatisfactory Final Exam can be also retaken once.
Textbooks and Weblinks
- Andrew S. Tanenbaum "Computer Networks".
- Jeff D. Ullman, Jennifer Widom "A first course in Database Systems".
- Hector Garcia-Molina, Jeff Ullman, Jennifer Widom "Database Systems: The Complete Book".
- Web: SQL for Nerds by Philip Greenspun, link.
- Alfred V. Aho, Ravi Sethi, et. al. "Compilers: principles, techniques, and tools", Chapters 1-4.
- The Visual Automata Simulator is a tool for simulating various automata. It also makes nice drawings of them. The JFLAP applet is a similar kind of tool with more sophisticated capabilities.
- Introduction to Theory of Computation by Michael Sipser. This textbook covers automata theory, computability theory, and complexity theory. It also contains exercises, problems, and solutions.
Nincsenek aktuális hírek a tárgyhoz. Ha a később megjelenő hírekről azonnal értesülni szeretne, iratkozzon fel az
Régebbi hírek »
A tárgyhoz nincs feltöltve jegyzet.