Vous êtes sur la page 1sur 12

Semester-level

BS Computer Science Curriculum


&
Transition Plan of BSc (Hons) in
Computer Science

(Draft: 25th March 2009)

1
BS Computer Science Degree Requirements for
2012 class and onwards
Total Credit Hours: 132*
University Core: 28
SSE Core: 40
Major Requirements: 64
Major Core Courses: 45
Major Elective Courses: 12
Free Electives: 7

2
* For the classes upto the class of 2011 this requirement is 130 credit hours.
Please see details in the document.

3
Computer Science Major Required Courses
CS 1xx Computational Problem Solving (University Core)
This course introduces students to the use of computers in modeling and solving real-world scientific
problems. The course will be practical in nature, containing several lab assignments and a project,
involving mechanics simulations, optimization problems and monte-carlo simulations. Concepts of time
and space complexity of algorithms, error propagation and estimation will be introduced.

CS 2xx Introduction to Programming (4)


Introduction to the principles of computation, problem solving methods, and algorithm development on
a computer using a high-level language such as C++. Development of good programming style and basic
skills of designing, coding, debugging, and documenting programs. Topics include functions, arrays,
strings, structures, recursion, file I/O, pointers, introduction to linked lists, object-oriented programming
and generics.

CS 2xx Discrete Mathematics (4)


Covers foundational material for computer science that is often assumed in advanced courses. Topics
include set theory, Boolean algebra, functions and relations, graphs, propositional and predicate
calculus, proofs, mathematical induction, recurrence relations, combinatorics, discrete probability,
number theory. Focuses on examples based on diverse applications of computer science.

CS 2xx Data Structures (4)


Provides a rigorous analysis of the design, implementation, and properties of data structures. Topics
include order notation and time-space analysis and tradeoffs in a list, tree and graph algorithms, and
hashing. Surveys library implementations of basic data structures in a high-level language. Advanced
data structure implementations are studied in detail. Illustrates the importance of choosing appropriate
data structures when solving a problem by programming projects in a high-level language

EE 2xx Digital Logic Circuits (4)


MOSFET as a switch, MOSFET logic gates, Propagation delay models, Number systems, Boolean algebra,
combinational logic, sequential logic, counters and shift registers, buses, memory and storage, adders,
multiplexers, ALUs, ROM, microcode based control, hardwired control. Integrated laboratory exercises.

CS 3xx Algorithms (4)


Algorithm design techniques (divide and conquer, dynamic programming, greedy) and analysis
techniques (big O notation, recurrence), sorting (merge sort, heapsort, and quicksort), searching
(B-trees, AVL trees or red black trees, hashing), basic graph algorithms (depth-first and breadth-first
search, minimum spanning trees, shortest paths), NP-completeness.

CS 3xx Operating Systems (4)


Fundamental overview of operating systems. Operating systems structures, processes, process
synchronization, deadlocks, CPU scheduling, and memory management.

EE 3xx Computer Organization (4)


Basic operations of computer hardware; high level instruction break down; arithmetic and logic
operations; procedures; instructions for making decisions; understanding performance; basic processor
design; data path and control; pipelining; memory hierarchy; cache and virtual memory; storage,
networks and other peripherals. Integrated laboratory exercises.

4
CS 3xx Theory of Automata (3)
The course introduces some fundamental concepts in automata theory and formal languages including
grammar, finite automaton, regular expression, formal language, pushdown automaton, and Turing
machine. Not only do they form basic models of computation, they are also the foundation of many
branches of computer science, e.g. compilers, software engineering, concurrent systems, etc. The
properties of these models will be studied and various rigorous techniques for analyzing and comparing
them will be discussed, by using both formalism and examples.

CS 3xx Software Engineering (4)


Examines in detail the software development process: topics include software life-cycle models;
architectural and design approaches; various techniques for systematic software testing; coding and
documentation strategies; project management; customer relations; the social, ethical, and legal
aspects of computing; and the impact of economic, environmental, safety, manufacturability, and
sustainability factors on design. Students in this course participate in a real-world project from
conception to implementation.

CS 3xx Databases (4)


Design and use of database management systems. Basic data models, logical and physical data
structures, comparisons of models, logical data design, and database issues. Issues such as data
independence, integrity, privacy, security, and role of database administrator.

5
Computer Science Elective Courses
Computer Science Elective courses will be offered under three streams:

Software and Systems


Theory
AI, Vision and Multimedia

6
Sample Curriculum: BS Computer Science

Credits Fall Credits Spring


Freshman

3 Chem Chemistry – 1 3 Bio Bio – 1


3 Math Calculus 1 3 Math Calculus 2
3 Phys Mechanics 3 Phys Electricity & Magnetism
2 Phys Lab 2 Bio / Chem Lab
3 CS Problem Solving using computers
4 Writing and Communication 2 Pakistan Studies

Sophomore

4 CS2xx Discrete Mathematics 4 CS 2xx Data Structures


4 CS2xx Intro to Programming 4 EE2xx Digital Logic Circuits
3 Math Differential Equations 3 Math Linear Algebra
3 Phys Modern Physics 3 Phys Heat and Thermodynamics
2 Islamic Studies 4 Univ core

Junior

4 CS 3xx Computer Organization 4 CS 3xx Theory of Automata


4 CS 3xx Algorithms 4 CS 3xx Software Engineering
4 CS 3xx Operating Systems 3 CS 3xx Databases
3 Math Probability 4 CS 3xx Stream Elective
4 Univ core 4 Univ core

Senior

3 CS 4xx Senior Project 1 3 CS 4xx Senior Project 2


4 CS 4xx (Stream Elective) 4 CS 4xx (Stream Elective)
4 CS 4xx (Stream Elective) 4 CS 4xx (Stream Elective)
3 Free Elective 3 Free Elective
4 Univ core 4 Univ core

University core
SSE core
CS major requirement

7
Transition of Current BSc (Hons) Classes

The following transition guidelines are only for the classes’ upto the class of 2011.
Starting from the class of 2012 the students must use the new semester–based
curriculum to plan their courses for fulfilling computer science major
requirements.

University Core Requirements:

The registrar office will issue separate guidelines to fulfill the university core
requirements in the semester system. All CS majors must follow those
requirements to fulfill their university core requirements.

Mathematics Requirement:

At minimum the students must have take the following two courses either in the
quarter system or the semester system:

• Linear Algebra
• Probability

CS Major Requirements:

In semester credit hours a CS major must have taken at least 54 credit hours of
computer science courses including all core and elective courses but excluding
CS101. However, if a student has taken another course instead of CS101 please do
not count that course towards your major requirement.

Please see the succeeding pages to see the CS major requirements for the
respective classes of 2010 and 2011.

Free Electives:

The CS degree requirement is 130 credit hours for the classes upto 2011 class. The
remaining credit hours after fulfilling your university requirements, mathematics
requirements, CS major requirements are free electives. Please use these

8
electives to take courses from anywhere in the university so that the total sum of
your degree requirement is 130 credit hours at the end.

Class of 2010

The class of 2010 will follow the requirement of their original


curriculum. Since, except the senior year project, the class of 2010
should have completed all the core courses of their relevant curriculum
before the 2009-2010 academic years. These include the following
courses:

Computing Structures
Data Structures
Logic Design
Computer Organization
Discrete Mathematics 1
Discrete Mathematics 2
Principles of Programming Languages
Operating Systems 1
Operating Systems 2
Software Engineering 1
Software Engineering 2
Software Engineering 3
Theory of Automata
Analysis Algorithms
Databases

However, if a student has not taken a course or has not been able to
pass a course from the aforementioned list, the relevant course
mappings are given in appendix 1 for retake of the course to fulfill the
requirements.

9
In the academic year 2009-2010 this class is expected to take the senior
year design project. Moreover, four elective computer science courses
are expected from this class during its final year.

10
Class of 2011

The class of 2011 will follow the requirement of their curriculum for the
first two years. According to these requirements the class should have
completed the following courses:

Computing Structures
Data Structures
Logic Design
Computer Organization
Discrete Mathematics 1
Discrete Mathematics 2
Principles of Programming Languages

If a student has missed a course or has not been able to pass one of the
aforementioned courses, please see appendix 1 for a course mapping.

In the year 2009-2010 the students are expected to complete the


following courses:

Fall 2009-2010
Algorithms
Operating Systems

Spring 2009-2010
Software Engineering
Theory of Automata
Databases

In the year 2010-2011 the students are expected to take the senior year
design project. Moreover, during the next two years the students are
also expected to take five elective courses in computer science.

11
Appendix 1
If a student has not been able to complete a course requirement in the
quarter system, the following mapping should be used for a course
retake:

Old Course (Quarter System) New Course (Semester System)


Discrete Mathematics 1 Discrete Mathematics
Discrete Mathematics 2 Discrete Mathematics
Software Engineering 1 Software Engineering
Software Engineering 2 and 3 DSSD (graduate–level course)
Operating Systems 1 Operating Systems
Operating Systems 2 Operating Systems
Theory of Automata Theory of Automata
Analysis of Algorithms Algorithms
Digital Logic Digital Logic Circuits
Computer Organization Computer Organization
Databases Databases
Data Structures Data Structures
Principles of Programming Please consult the CS department
Languages*
Computing Structures Please consult the CS department

* Principles of Programming Languages is being offered in the Spring


2008-2009 quarter. If you have not taken this course please make every
effort to take this course during this quarter.

12

Vous aimerez peut-être aussi