Advertisement
iocoder

semester_7

Aug 11th, 2014
402
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.34 KB | None | 0 0
  1. ****************************************************
  2. *** ***
  3. ** SEMESTER 7 - COURSES **
  4. *** ***
  5. ****************************************************
  6.  
  7. In this semester, we are going to have totally new & interesting
  8. stuff. According to Omar Yousry, this semester is technically important
  9. as it contains topics that are considered as the core of our field,
  10. like operating systems, microprocessors and algorithm analysis.
  11.  
  12. The courses:
  13. -------------
  14.  
  15. 1. CS 311 - Analysis of Algorithms - 5 hours - Group 1 (MATH AND TCS)
  16. 2. CS 331 - Microprocessor Systems - 6 hours - Group 3 (HARDWARE)
  17. 3. CS 332 - Digital Signal Processing - 5 hours - Group 3 (HARDWARE)
  18. 4. CS 333 - Operating Systems - 5 hours - Group 3 (HARDWARE)
  19. 5. CS 341 - Discrete Control Systems - 6 hours - Group 4 (CONTROL)
  20. 6. HS 373 - Man-Machine Interface I - 3 hours - Group 7 (COMPUTER)
  21.  
  22. As you can see, there is no any single course from CS.group2 :')
  23.  
  24. -------------------------------------------------------------------------------
  25. 1. Analysis of Algorithms
  26. -------------------------------------------------------------------------------
  27.  
  28. This course is actually two parts:
  29.  
  30. Part 1 (usually Dr. Amr Elmasry):
  31. ----------------------------------
  32. This part is mainly concerned with "theory". It is well known
  33. that theory of computation is one of the fundamental topics
  34. in computer science. Theory of computation is divided into three
  35. major branches:
  36. a. Automata Theory: The study of abstract machines (like FSM & Turing)
  37. b. Computability Theory: To what extent this problem is solvable
  38. on a computer?
  39. c. Computational Complexity Theory: I think you know it well.
  40. This course is mainly about (c). We will study proof techniques,
  41. fundamental analysis of algorithms, complexity classes, and
  42. some other hot stuff that I have no idea what they are.
  43.  
  44. Part 2 (usually Dr. Mohamed Elsayed):
  45. --------------------------------------
  46. Problem Solving Techniques: Direct methods, greedy methods,
  47. backtracking, etc..
  48. There will also be some lectures about graphs (again, but am
  49. not sure really), geometric algorithms, and asymptotic algorithms.
  50.  
  51. -------------------------------------------------------------------------------
  52. 2. Microprocessor Systems
  53. -------------------------------------------------------------------------------
  54.  
  55. In my point of view, this course is about "how to use microprocessors
  56. to build microcomputer systems", not "how to build microprocessors".
  57. However, we will have a lecture on control unit design.
  58.  
  59. A microprocessor is a processor that is integrated in one chip.
  60. This allowed people to design single-board computers (SBC). And
  61. because single-board computers and microprocessors are everywhere nowadays,
  62. it is really worth it to study this course.
  63.  
  64. The course consists of two parts:
  65.  
  66. Part 1 (usually Dr. Leila):
  67. ----------------------------
  68. 8086: architecture, programming, and interfacing (8086 bus,
  69. I/O interfaces, memory interfaces, computer design
  70. and organization).
  71. Control unit design: hardwired control unit - microprogramming.
  72.  
  73. Part 2 (usually Dr. Salah):
  74. ----------------------------
  75. Some various topics about computers, like the PCI bus, USB bus,
  76. and optical storage.
  77.  
  78. If there is time and interest, we might also study more advanced topics
  79. like 80386 protected mode, paging, and virtual memory.
  80.  
  81. -------------------------------------------------------------------------------
  82. 3. Digital Signal Processing and Transmission Algorithms
  83. -------------------------------------------------------------------------------
  84.  
  85. Digital signal processing (DSP) is one of the substantial topics of electrical
  86. engineering and computer science. DSP is the manipulation of signals
  87. in discrete domain rather than continuous domain. So, what does that mean?
  88.  
  89. High pass filters are used to pass high-frequency components of the
  90. signal and block low-frequency components. This has a lot of applications
  91. in audio and image manipulation software. This filter can be constructed
  92. using a simple RC circuit:
  93.  
  94. C
  95. | |
  96. O-----| |---------*-------O
  97. | | |
  98. ---
  99. | |
  100. Vin R | | Vout
  101. | |
  102. ---
  103. |
  104. O-----------------*-------O
  105.  
  106. If we take the output as the voltage across the resistor, we will
  107. have the same input signal but with low-frequency components removed.
  108. Why it works? Let's see what happens to sinusoidal signals:
  109. Simply, the reactance of C is much greater than R at low
  110. frequencies (Xc = 1/wc). Because Vout = R/(R+jXc) * Vin,
  111. we find that Vout = <a very small imaginary number> * Vin. Thus we
  112. can deduce that lower frequencies disappear in its way. We can
  113. also deduce that higher frequencies pass through the circuit smoothly.
  114.  
  115. This circuit is actually an *analog* band-pass filter; it works on analog
  116. signals. Believe it or not, we can implement this thing using
  117. a digital microprocessor!
  118.  
  119. As we can see:
  120.  
  121. Vout = IR
  122. I = Cd(Vin-Vout)/dt
  123. thus: Vout/RC = dVin/dt - dVout/dt
  124.  
  125. If we take samples of the input signals (Vin0, Vin1, Vin2, ...):
  126. Vout(i)*(dt)/RC = Vin(i)-Vin(i-1)-Vout(i)+Vout(i-1)
  127. Vout(i)(1+dt/RC) = Vin(i)-Vin(i-1)+Vout(i-1)
  128.  
  129. Then:
  130. -------------------------------------------------
  131. - Vout = RC*(Vin(i)-Vin(i-1)+Vout(i-1))/(RC+dt) -
  132. -------------------------------------------------
  133.  
  134. dt is the sampling interval. We can now write a program that
  135. takes Vin(0), Vin(1), .... Vin(n) as an input, and outputs
  136. Vout(0), Vout(1), ....
  137.  
  138. This is what we call DSP. It is how you can process signals in digital
  139. rather than analog. Usually, a digital signal processor consists
  140. of the following:
  141.  
  142. +----------+
  143. | |
  144. *-----<-------| Sampling |
  145. | | Clock |
  146. | | |
  147. | +----------+
  148. | |
  149. Y Y
  150. | |
  151. +------*-----+ +--*--+ +------------+
  152. | | | | | |
  153. Analog | Analog | Digital | | Digital | Digital | Analog
  154. (in)------>| Digital |--------->| CPU |-------->| Analog |------->(out)
  155. Signal | Controller | Signal | | Signal | Controller | Signal
  156. | | | | | |
  157. +------------+ +--*--+ +------------+
  158. |
  159. |
  160. |
  161. +---------+
  162. | |
  163. | Program |
  164. | Memory |
  165. | |
  166. +---------+
  167.  
  168. Our course consists of two parts, the first part is mainly concerned
  169. with discrete-time signals, discrete-time systems and transforms
  170. (Fourier's transform and z-transform). No, we won't study sampling theory
  171. or digital filters. Math is enough, applications are not important.
  172.  
  173. IT IS FULL OF MATH, SO TAKE CARE.
  174.  
  175. The other part is "information theory". Information theory is mainly
  176. about quantification of information. Applications to information
  177. theory (which we are going to study isA) are:
  178. -> LOSSLESS DATA COMPRESSION (know .gz and .zip? :D)
  179. -> LOSSY DATA COMPRESSION (know mp3 and jpg? :D)
  180. -> SIGNAL AND CHANNEL DECODING (know ADSL? :D)
  181. The study of error detection and correction codes will also be covered
  182. in this course. As you can see, this course is really important and
  183. contains very tough topics which are 100% related to our study. I don't know
  184. why many people hate it.
  185.  
  186. -------------------------------------------------------------------------------
  187. 4. Operating Systems
  188. -------------------------------------------------------------------------------
  189.  
  190. Operating systems do two main jobs:
  191. - controls the hardware.
  192. - controls the software.
  193.  
  194. This course shows (in abstract sense) how operating systems do the mentioned
  195. jobs, with case studies (like UNIX System V and Linux kernel). We
  196. will also learn how to write an operating system in JAVA, Because f**k C,
  197. f**k Rust, f**k C++, f**k everything but java. Accordingly,
  198. we won't see how the OS interacts with the hardware *IN REAL*.
  199.  
  200. Sorry but don't make high hopes on this course. Too many sheets and too much
  201. theory. Labs are too little and they are mostly concerned with how you program
  202. concurrent threads on Linux. This is useful for application programmers but has
  203. nothing to do with the design of the operating system. This shows you what they
  204. actually want us to be.
  205.  
  206. The lectures are interesting though:
  207. -------------------------------------
  208. - Introduction to operating systems
  209. - Basics & Principles
  210. - Processes and threads
  211. - Scheduling algorithms
  212. - Synchronization and mutual exclusion
  213. - Memory management (partitioning, segmentation, etc...)
  214. - Paging and Virtual memory.
  215. - Hardware and I/O.
  216. - Disk management
  217. - File systems
  218.  
  219. -------------------------------------------------------------------------------
  220. 5. Discrete and Nonlinear Control Systems
  221. -------------------------------------------------------------------------------
  222.  
  223. This time we are working with nonlinear systems instead of linear systems.
  224. Laplace transform is replaced with z-transform, and RLC circuits
  225. are replaced with *COMPUTERS* :D Just like DSP, ADCs and DACs are
  226. used. It is pretty interesting to see how computers can process
  227. this stuff.
  228.  
  229. Digital controllers (like PLC) are usually used to control industrial
  230. processes. However, microcontrollers (like PIC and AVR) are sometimes used for
  231. digital control because they are cheap.
  232.  
  233. The course will include these topics:
  234. - Introduction to the *DESIGN* of systems (instead of *ANALYSIS*)
  235. - Discrete-time systems (isn't this related to DSP?)
  236. - Sampling and reconstruction (isn't this related to DSP?)
  237. - Z transform
  238. - Analysis of discrete systems
  239. - Stability of discrete-time systems
  240. - Nonlinear control systems
  241. - Lyapunov stability
  242.  
  243. -------------------------------------------------------------------------------
  244. 6. Man-Machine Interface
  245. -------------------------------------------------------------------------------
  246.  
  247. This is a typical HCI course and is usually taught by Dr. Salah. HCI
  248. involves the study and design of the interaction between users and computers.
  249. Mouse is one of the most famous results of HCI.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement