Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ****************************************************
- *** ***
- ** SEMESTER 7 - COURSES **
- *** ***
- ****************************************************
- In this semester, we are going to have totally new & interesting
- stuff. According to Omar Yousry, this semester is technically important
- as it contains topics that are considered as the core of our field,
- like operating systems, microprocessors and algorithm analysis.
- The courses:
- -------------
- 1. CS 311 - Analysis of Algorithms - 5 hours - Group 1 (MATH AND TCS)
- 2. CS 331 - Microprocessor Systems - 6 hours - Group 3 (HARDWARE)
- 3. CS 332 - Digital Signal Processing - 5 hours - Group 3 (HARDWARE)
- 4. CS 333 - Operating Systems - 5 hours - Group 3 (HARDWARE)
- 5. CS 341 - Discrete Control Systems - 6 hours - Group 4 (CONTROL)
- 6. HS 373 - Man-Machine Interface I - 3 hours - Group 7 (COMPUTER)
- As you can see, there is no any single course from CS.group2 :')
- -------------------------------------------------------------------------------
- 1. Analysis of Algorithms
- -------------------------------------------------------------------------------
- This course is actually two parts:
- Part 1 (usually Dr. Amr Elmasry):
- ----------------------------------
- This part is mainly concerned with "theory". It is well known
- that theory of computation is one of the fundamental topics
- in computer science. Theory of computation is divided into three
- major branches:
- a. Automata Theory: The study of abstract machines (like FSM & Turing)
- b. Computability Theory: To what extent this problem is solvable
- on a computer?
- c. Computational Complexity Theory: I think you know it well.
- This course is mainly about (c). We will study proof techniques,
- fundamental analysis of algorithms, complexity classes, and
- some other hot stuff that I have no idea what they are.
- Part 2 (usually Dr. Mohamed Elsayed):
- --------------------------------------
- Problem Solving Techniques: Direct methods, greedy methods,
- backtracking, etc..
- There will also be some lectures about graphs (again, but am
- not sure really), geometric algorithms, and asymptotic algorithms.
- -------------------------------------------------------------------------------
- 2. Microprocessor Systems
- -------------------------------------------------------------------------------
- In my point of view, this course is about "how to use microprocessors
- to build microcomputer systems", not "how to build microprocessors".
- However, we will have a lecture on control unit design.
- A microprocessor is a processor that is integrated in one chip.
- This allowed people to design single-board computers (SBC). And
- because single-board computers and microprocessors are everywhere nowadays,
- it is really worth it to study this course.
- The course consists of two parts:
- Part 1 (usually Dr. Leila):
- ----------------------------
- 8086: architecture, programming, and interfacing (8086 bus,
- I/O interfaces, memory interfaces, computer design
- and organization).
- Control unit design: hardwired control unit - microprogramming.
- Part 2 (usually Dr. Salah):
- ----------------------------
- Some various topics about computers, like the PCI bus, USB bus,
- and optical storage.
- If there is time and interest, we might also study more advanced topics
- like 80386 protected mode, paging, and virtual memory.
- -------------------------------------------------------------------------------
- 3. Digital Signal Processing and Transmission Algorithms
- -------------------------------------------------------------------------------
- Digital signal processing (DSP) is one of the substantial topics of electrical
- engineering and computer science. DSP is the manipulation of signals
- in discrete domain rather than continuous domain. So, what does that mean?
- High pass filters are used to pass high-frequency components of the
- signal and block low-frequency components. This has a lot of applications
- in audio and image manipulation software. This filter can be constructed
- using a simple RC circuit:
- C
- | |
- O-----| |---------*-------O
- | | |
- ---
- | |
- Vin R | | Vout
- | |
- ---
- |
- O-----------------*-------O
- If we take the output as the voltage across the resistor, we will
- have the same input signal but with low-frequency components removed.
- Why it works? Let's see what happens to sinusoidal signals:
- Simply, the reactance of C is much greater than R at low
- frequencies (Xc = 1/wc). Because Vout = R/(R+jXc) * Vin,
- we find that Vout = <a very small imaginary number> * Vin. Thus we
- can deduce that lower frequencies disappear in its way. We can
- also deduce that higher frequencies pass through the circuit smoothly.
- This circuit is actually an *analog* band-pass filter; it works on analog
- signals. Believe it or not, we can implement this thing using
- a digital microprocessor!
- As we can see:
- Vout = IR
- I = Cd(Vin-Vout)/dt
- thus: Vout/RC = dVin/dt - dVout/dt
- If we take samples of the input signals (Vin0, Vin1, Vin2, ...):
- Vout(i)*(dt)/RC = Vin(i)-Vin(i-1)-Vout(i)+Vout(i-1)
- Vout(i)(1+dt/RC) = Vin(i)-Vin(i-1)+Vout(i-1)
- Then:
- -------------------------------------------------
- - Vout = RC*(Vin(i)-Vin(i-1)+Vout(i-1))/(RC+dt) -
- -------------------------------------------------
- dt is the sampling interval. We can now write a program that
- takes Vin(0), Vin(1), .... Vin(n) as an input, and outputs
- Vout(0), Vout(1), ....
- This is what we call DSP. It is how you can process signals in digital
- rather than analog. Usually, a digital signal processor consists
- of the following:
- +----------+
- | |
- *-----<-------| Sampling |
- | | Clock |
- | | |
- | +----------+
- | |
- Y Y
- | |
- +------*-----+ +--*--+ +------------+
- | | | | | |
- Analog | Analog | Digital | | Digital | Digital | Analog
- (in)------>| Digital |--------->| CPU |-------->| Analog |------->(out)
- Signal | Controller | Signal | | Signal | Controller | Signal
- | | | | | |
- +------------+ +--*--+ +------------+
- |
- |
- |
- +---------+
- | |
- | Program |
- | Memory |
- | |
- +---------+
- Our course consists of two parts, the first part is mainly concerned
- with discrete-time signals, discrete-time systems and transforms
- (Fourier's transform and z-transform). No, we won't study sampling theory
- or digital filters. Math is enough, applications are not important.
- IT IS FULL OF MATH, SO TAKE CARE.
- The other part is "information theory". Information theory is mainly
- about quantification of information. Applications to information
- theory (which we are going to study isA) are:
- -> LOSSLESS DATA COMPRESSION (know .gz and .zip? :D)
- -> LOSSY DATA COMPRESSION (know mp3 and jpg? :D)
- -> SIGNAL AND CHANNEL DECODING (know ADSL? :D)
- The study of error detection and correction codes will also be covered
- in this course. As you can see, this course is really important and
- contains very tough topics which are 100% related to our study. I don't know
- why many people hate it.
- -------------------------------------------------------------------------------
- 4. Operating Systems
- -------------------------------------------------------------------------------
- Operating systems do two main jobs:
- - controls the hardware.
- - controls the software.
- This course shows (in abstract sense) how operating systems do the mentioned
- jobs, with case studies (like UNIX System V and Linux kernel). We
- will also learn how to write an operating system in JAVA, Because f**k C,
- f**k Rust, f**k C++, f**k everything but java. Accordingly,
- we won't see how the OS interacts with the hardware *IN REAL*.
- Sorry but don't make high hopes on this course. Too many sheets and too much
- theory. Labs are too little and they are mostly concerned with how you program
- concurrent threads on Linux. This is useful for application programmers but has
- nothing to do with the design of the operating system. This shows you what they
- actually want us to be.
- The lectures are interesting though:
- -------------------------------------
- - Introduction to operating systems
- - Basics & Principles
- - Processes and threads
- - Scheduling algorithms
- - Synchronization and mutual exclusion
- - Memory management (partitioning, segmentation, etc...)
- - Paging and Virtual memory.
- - Hardware and I/O.
- - Disk management
- - File systems
- -------------------------------------------------------------------------------
- 5. Discrete and Nonlinear Control Systems
- -------------------------------------------------------------------------------
- This time we are working with nonlinear systems instead of linear systems.
- Laplace transform is replaced with z-transform, and RLC circuits
- are replaced with *COMPUTERS* :D Just like DSP, ADCs and DACs are
- used. It is pretty interesting to see how computers can process
- this stuff.
- Digital controllers (like PLC) are usually used to control industrial
- processes. However, microcontrollers (like PIC and AVR) are sometimes used for
- digital control because they are cheap.
- The course will include these topics:
- - Introduction to the *DESIGN* of systems (instead of *ANALYSIS*)
- - Discrete-time systems (isn't this related to DSP?)
- - Sampling and reconstruction (isn't this related to DSP?)
- - Z transform
- - Analysis of discrete systems
- - Stability of discrete-time systems
- - Nonlinear control systems
- - Lyapunov stability
- -------------------------------------------------------------------------------
- 6. Man-Machine Interface
- -------------------------------------------------------------------------------
- This is a typical HCI course and is usually taught by Dr. Salah. HCI
- involves the study and design of the interaction between users and computers.
- Mouse is one of the most famous results of HCI.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement