[ESD] Mohamed Samy - Subjects in FCIS and Why They Matter

Category: Education

Presentation Description

No description available.


Presentation Transcript

FCIS: Subjects and the reasoning behind them:

FCIS: Subjects and the reasoning behind them Mohamed Samy Experience sharing day April 2011

The goals of a graduate:

The goals of a graduate Computer science “Solving hard problems” e.g machine translation, searching terabytes of data, computer vision... Software engineering “Creating large projects” Concerns about modularity, testing, software components, reliability... You should be learning principles in addition to techniques . Principles (e.g composition, big-O notation) will influence how you think, how you learn additional topics, or how to invent new techniques. Techniques (e.g recursive-descent parsing, integration by parts, OOP) are existing methods for solving given problems. You also learn tools , like UML or SQL.

The specialties and what they mean (FCIS- wise):

The specialties and what they mean (FCIS- wise) Computer science The knowledge behind making computers themselves better. Information systems The knowledge for managing & making use of large quantities of information. Scientific Computing Using computers for scientific research Computer systems Using computers as part of a larger system

First year subjects:

First year subjects Calculus (Math I and Math II) Requisite for: Differential equations (used for e.g modeling), understanding certain algorithms, physics. Physics (Physics I and II) Physical modeling, Game physics, Understanding hardware (e.g heat dissipation, quantum computers). The computational model follows the physical model. Business administration, psychology Business skills, soft skills. What else do you want? :) Leading teams, dealing with customers, management When opening your own company, negociating with customers, automating existing business.

First year subjects - continued:

First year subjects - continued English, Introduction to computers Requisite for: studying FCIS subjects, further research and work. Electronics FCIS attempts to enable the student to understand the full technology tower of the modern computer (Program → Compiler → Assembly code/OS → HW architecture → Digital electronics → Electronics). Also useful for computer systems.

Second year subjects:

Second year subjects Ethics and legal practices Signing software contracts, understanding copyrights and patents (both for traditional and Open source projects). Report writing Writing is pervasive in our work, both research and industrial Documentation, technical writing, writing papers and thesis, writing proposals & business plans It's one more human factor in software...

Second year subjects - II:

Second year subjects - II Probability and statistical analysis Modern AI is based on statistical methods (machine learning, Bayesian filters, computer vision...) Also statistics is one of the basis of modern scientific research (experiments, simulations...) Discrete maths and linear algebra DM is necessary for almost all of computer science! Teaches you to abstract recurring concepts (fields, groups, algebras...) You'll find it's benefit in e.g type systems and logical proofs; and how they relate to software reliability e.g Microsoft Research's “Programming principles and tools” group. http://research.microsoft.com/en-us/groups/ppt

Second year subjects - III:

Second year subjects - III Discrete maths and linear algebra – continued Linear algebra is used in many, many fields... Matlab applications: Speech processing, image processing, signal processing, neural networks, ...etc ...etc Google pagerank! Operations research Industrial uses, uses in Scientific computing. An SC researcher might probably work in improving the performance of optimization problem algorithms, inventing new algorithms, ...etc

Third year subjects:

Third year subjects Logic programming Applications outside the Prolog language; e.g the JESS rule engine or Semantic web techniques like RDF, SparQL Opens your mind to alternative models for programming languages; declarative programming. Quicksort in Haskell: qsort [ ] = [ ] qstort x : r = qsort [a | a ← r, a<x] ++ [x] ++ qsort [a | a ← r, a>x] AI AI has a lot of applications in many domains... e.g Remote agent planner, used in NASA's Deep Space One aircraft: http://nmp.nasa.gov/ds1/tech/autora.html

Third year subjects - II:

Third year subjects - II Assembly language, architecture Understand the full 'technology tower' Useful for understanding things like cache locality, RISC architecture (e.g ARM processors used in mobile devices), 64-bit computing, the JVM or .net CLR, parallel architecture... Useful when writing your own compilers and language runtimes Operating systems Understanding the environment in which your applications run, and its tradeoffs. Understand resource management, scheduling, synchronization, paging...and how it affects performance, scalability ... In the age of Linux, Android, embedded systems, there is a real opportunity for OS development

Third year subjects - III:

Third year subjects - III Automata & Theory of computation (from 4 th year) One of the most important subjects in computer science: A model for computation. A machine-based model (Turing machines), a language-based model (lambda calculus), other models A model : Simple enough to reason about, powerful enough to encompass all computation. In the TM, all input and output is strings in an alphabet. In λ calculus, all computation is expressed as either λ-expressions or application. They creep into the industry too: Lambda expressions appear in many programming languages (e.g C#, C++, JavaScript...), regular expressions and grammars have many practical uses And the concept of a 'model of computation' is useful to understand more recent models (e.g the actor model).

Third year subjects - IV:

Third year subjects - IV Other principles and techniques: Algorithms analysis & Design, Graphics, DBMS, Numerical computing, software engineering... All useful in their domains Don't need much for me to explain their importance!

Selected 4th year subjects:

Selected 4 th year subjects Parallel & Distributed computing Compilers Data mining Visualization Signal processing Security Networking

authorStream Live Help