Computer science program

From Wikiversity
(Redirected from Computer science education)
Jump to: navigation, search

Unofficial master program listing for all learning projects that are used by Computer Science Topics.

This is a list of all the learning projects offered by the school of computer science. This list attempts to maintain a prerequisite tree between learning projects, as well as to identify some of the key goals and topics of each learning project so that these can be reused rather than reduplicated everywhere.

Recommended program[edit]

Introduction Courses I
1.1 Introduction to Computer Science

Prerequisites - high school or advanced H.S. student
Goals - to give understanding of computer science, both programming and hardware architecture.

1.2 Introduction to Calculus (from School of Mathematics)

Prerequisites - high school or advanced H.S. student
Goals - to teach basic calculus

1.3 Discrete Math I 25%

Prerequisites - high school or advanced H.S. student
Topics - Logic, Sets, Functions, Counting, Graphs

1.4 Introduction to Linear Algebra (from School of Mathematics)

Prerequisites - high school or advanced H.S. student
Goals - to teach basic linear algebra

Introduction Courses II
2.1 Discrete Math II

Prerequisites - Discrete Math I
Topics - Complexity, Proof, Collections, Information Theory

2.2 Introduction to Theory of Computation

Prerequisites - Discrete Math I
Goals - learn about what can be computed and how fast it can be done; the hierarchy of finite state machines, pushdown machines, context free grammars and Turing machines; decidability, complexity theory and NP-Completness

2.3 Programming in C

Prerequisites - Introduction to Computer Science, Discrete Math I
Goals - to develop a small program in C

2.4 Calculus II (from School of Mathematics)

Prerequisites - Introduction to Calculus

2.5 Data Structures (linked lists, stack, trees, hash tables, etc) 25%

Prerequisites - Programming in C

Intermediate Courses I
3.1 Object-Oriented Software Development

Prerequisites - Introduction to Computer Science
Goals - design and analysis of object-oriented programs.
Topics include: classes, interfaces, fundamental object-oriented data structures, debugging and testing.

3.2 Statistics (from School of Mathematics)
3.3 Operating Systems

Prerequisites - Introduction to Computer Science
Goals - understand the services offered by an operating system to the user and programmer, using Linux as a model environment.
Topics include: the shell, files, users, processes, threads & synchronization, pipes, sockets, security

3.4 Introduction to Networks

Prerequisites - Operating Systems
Goals - understand programming in a networked environment, including concerns about latency & bandwidth, trust, network topology
Topics include: basic protocols, network topology and routing, application-level protocols, principles of distributed applications

3.5 Analysis of Algorithms

Prerequisites - Introduction to Computer Science, Discrete Math I
Goals - learn the common characteristics and differentiating factors of algorithms
Topics include: counting, combinations and permutations, basic sorting and searching algorithms, notions of best-, worst-, and average-case performance, Big-O notation

3.6 Design and Analysis of Algorithms I 25%

Goals - become introduced to algorithms
Topics include: sorting and searching, divide-and-conquer, dynamic programming, greedy algorithms, NP-completeness

Intermediate Courses II
4.1 Calculus III(Differential eqs, vector calculus - (from School of Mathematics))
4.2 Numerical Algorithms
4.3 Introduction to Operating System design
4.4 Network Architectures

Advanced Courses I
5.1 Introduction to Databases
5.2 Artificial Intelligence
5.3 Compiler Design
5.4 Functional Programmming
5.5 Theory of Programming Languages
5.6 Complexity Theory and Computability
5.7 Open Source Enhancement Project

Advanced Courses II
6.1 Image and Signal Processing
6.2 Computer Vision
6.3 Distributed Computing
6.4 Advanced Analysis of Algorithms
6.5 Bioinformatics
6.6 Machine Learning and Data Mining
6.7 Quantum Computing
6.8 Open Source Major Enhancement Project

Special Topics
7.1 Some advanced learning project (micro-OS, design small CPU, new network protocol, etcx)
7.2 Launch New Open Source Software Project / Thesis
7.3 Open Source Theory/Publication Project / Thesis

Optional courses[edit]

list of all odds and ends, together with their difficulty rating (Introductory I, Advanced II)...
List of pre-needs for Introductory 1 esp math requirements and concepts list and self-assessment pre-tests
List of learning styles with suggestions for adapting material

Examples of Degree Programs at Universities[edit]

This Wikiversity main namespace page is frequently visited.
Please contribute to the improvement of this page by editing or
leave your suggestions/comments on the discussion page (talk page).

See also[edit]