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 of Basics of Programming II.
Synopsis and Objectives
This course is a basic BSc course based on the previous terms. The main goal is providing 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 bacome able to detect, analyze and manage the 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.
- Entity, relational descriptions, binary and many-valued relations. Data storages, 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 lab dates in 2018):
- Feb. 14: Database design: entity-relationship diagrams
- Feb. 28: SQL language: DDL and DML
- Mar 21: SQL language: advanced queries to multiple tables
- Apr. 11: Transaction management, problems of concurrent access
- Apr 25: Introduction to Wireshark and network monitoring
- May 2: Web server, HTTP
- May 9: Practical approach to formal languages
Place: IL208, time: 10:15-12:00 a.m.
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 at the course webpage. The student must always follow the directions of Laboratory Instructor (if any), or else his/her 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 in 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 6 laboratory exersises out of 7, 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 a laboratory instructor with +/-0.5. An 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 a 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.
- Attendance register is circulated regularly at classes, and it is your responsibility to ensure that you sign it. You can sign a register in first 5 minutes after the start of classes. It is an offence 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 offence, or who needs help in learning how to avoid offences (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 BUTE 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 Laboratory Exercises; one of them can be retaken at the end of the semester. Please write an email to the lab instructor indicating your desire to repeat the lab (say which one) in at least one week before the end of the tuition period. The unsatisfactory Midterm Test can be retaken once. The unsatisfactory Final Exam can be retaken once.
Textbooks and Weblinks
- Andrew S. Tanenbaum "Computer Networks", 2002 (4thedition), 2010 (5thedition).
- Jeff D. Ullman, Jennifer Widom "A first course in Database Systems", 2007 (3rdedition).
- Hector Garcia-Molina, Jeff Ullman, Jennifer Widom "Database Systems: The Complete Book", 2008 (2ndedition).
- Web: SQL for Nerds by Philip Greenspun, link.
- Alfred V. Aho, Ravi Sethi, et. al. "Compilers: principles, techniques, and tools", 2006 (2ndedition), 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.
- Michael Sipser "Introduction to the theory of computation", 2012 (3rdedition). This textbook covers automata theory, computability theory, and complexity theory. It also contains exercises, problems and solutions.
Régebbi hírek »
A tárgyhoz nincs feltöltve jegyzet.