Master ST Home
Center ST Home
FAQ
Contact
Brochure
Introduction
Area
Center
Curriculum
Pre-master
Supervision
Thesis Projects
Career
International Exchange
People
Students
Staff
Coordinators
Courses
FPLC
|
SWE
DOS
|
SWS
CCO
|
SWA
APA
|
AFP
|
DBA
PV
|
GP
Seminars
DTP
|
TBPA
ACC
|
NO
DBA
Other Activities
Literature Study
Colloquium
Experimentation Project
Thesis project
How To
Electronic Library
?
Research Talk
Use TeX
Formulate Effectively
CommonMistakes
(constr)
Center
Home
Courses
People
Projects
Page
Edit Page
Rename Page
Attach File
Printable
Wiki Source
More ...
Web
Recent Changes
Notify Service
News
Page Index
Search
More ...
Wiki
About TWiki
Text Formatting
Registration
Change Password
Reset Password
Users
Groups
Log In
or
Register
Curriculum Software Technology 2009
Master
%TOC% -------++ Introduction %STARTINCLUDE% The master program Software Technology takes two years of study and has a total size of 120 European study points (ECTS). The academic year is structured into four periods. In each period a students usually takes takes two courses of 7.5 ECTS each. The structure of a typical program is summarized by the table below. If you need a full overview and schedules over all CS courses see also here: [[http://www.cs.uu.nl/education/]]. | *Period* | *Year 1* | | 1 | %RED% [[SoftwareEngineering][SWE]]%ENDCOLOR%, [[SoftwareSpecification][SWS]], [[Functional Programming Languages and Compilers][FPLC]] | | 2 | %RED% [[Compiler Construction][CCO]]%ENDCOLOR%, [[ProgramVerification][PV]], [[#ElectivesAnchor][elective]] | | 3 | [[AdvancedFunctionalProgramming][AFP]], [[#ElectivesAnchor][elective]], [[Master.Intern.ExperimentationProject][experimentation project]] | | 4 | [[SoftwareArchitecture][SWA]], [[AutomaticProgramAnalysis][APA]], [[DataBaseArchitectures][DBA]] | | *Period* | *Year 2* | | 1 | [[GenericProgramming][GP]], [[#SeminarAnchor][seminar]] | | 2 | Thesis Proposal | | 3 | Research | | 4 | Thesis Writing | It is important to realize that the following explanation of the master curriculum is a general one, and every study plan that follows it is allowed by default. Depending on requirements and knowledge of the student, he and the [[CoordinatorOverview][student advisor]] can agree to divert from the standard. It is possible to start the program in February (period 3), but if you must do the _Deficiency course_ (this is often the case for foreigners and people coming from HIO/HBO), then it makes no sense, because that course is only offered in September. If you have no deficiencies in functional programming, grammars and parsing, then starting in February is no problem. If you are unsure whether you have deficiencies, contact the [[CoordinatorOverview][student advisor]]. Seminars are not restricted to period 1: other periods also offers a number of seminars. Consult the list of seminars below to see what is offered this year. -------++ Courses (75 ECTCS = 10 courses) ----+++ Mandatory Courses (15 ECTS = 2 courses) The following courses are required for all ST students: * [[Software Engineering]] * [[Compiler Construction]] <!-- (formerly known as Implementation of Programming Languages) --> <!-- * [[Software Architecture]] --> If one or more of these courses have already been taken as part of the bachelor program, or equivalent courses have been taken elsewhere, courses from the list of _Advanced Courses_ must be chosen. -----+++ Advanced ST Courses (30 ECTS = 4 courses) At least four of the following courses should be taken from the following list:. * [[Advanced functional programming]] * [[Automatic program analysis]] * [[Data base architectures]] * [[Generic programming]] * [[Program verification]] * [[Software Architecture]] * [[Software specification]] ----+++ Profiling (22.5 ECTS = 3 courses) This gives you the space to tailor the master program to fit your academic interest. A small part of this space is also used to compensate for missing background should that be the case. Using this space is bound to the following constraints: * *If* you are deficient (see below), you *must* take the deficiency course (1 course) * You can fill your Profiling space with any Advanced ST courses * You can take at most one [[Master.Intern.ExperimentationProject][Experimentation Project]] (count as 1 course) * You can take at most one *extra* ST seminar * You can take at most 2 courses from other master programmes in Computer Science Note: * Courses used to substitute for mandatory courses do not count towards filling the credits for this part of the curriculum. * In the previous version of the curriculum, we have Free Choice and Elective as separate categories. They are now merged into this "Profiling space". Nothing change in terms of content; we just change the way they are explained. ----++++!! Deficiencies (7.5 ECTS = 1 course) Students without a computer science bachelor from Utrecht University, typically lack bachelor courses on functional programming, formal languages, and compilers. You will need these background to do the ST master programme. We offer a special 'deficiency course' (7.5 ECTS) to remedy those deficiencies. It is called the course [[Functional Programming Languages and Compilers][FPLC]] which is given in the 1st period. If you have no deficiencies then you obviously don't need to do the deficiency course. <!-- #ElectivesAnchor ----+++!! Electives (upto 15 ECTS = 2 courses) This gives you some space to tailor the master program to fit your interest. You can do 2 elective courses, which you can choose from any CS master programs. If you want to specialize in ST then you choose ST courses, or if you want to have a broader base then you choose from other master programs. Students that had to take the deficiency course are counted to have used one of their elective slots. So they can only take one more elective. --> <!-- Students without deficiencies (which includes all students with a computer science bachelor from Utrecht University) can use this space in the curriculum for elective courses to be filled in with courses from the ST program or from other CS master programs. Courses from this list can also be used to fill in the electives. --> <!-- Since the course year 2007/2008 the course Complex Data has merged with the course Database Architectures. --> #SeminarAnchor -----+++ Seminar (7.5 ECTS, count as 1 course) Seminars usually take the form of small study groups in which a subject is studied in depth and may also have a practical component. The subjects are usually closely linked to the research conducted in the CST and follow up on earlier courses in the program. In 2009-2010 (usually for students arrived in 2008) the following seminars will be given: * Software Technology for Teaching and Learning (period 1) * [[Advanced Compiler Construction]] (period 2) * [[Data Base Architectures]] (period 4) <!-- * [[Type Based Program Analysis]] (period 1) * [[Networked Objects]] (period 2) --> Note that Data Base Architecures can be used either as a seminar or as an advanced ST course, but not both at the same time. The student is free to choose how he uses it, though. <!-- ----+++!! Free Choice (7.5 ECTS) In order to allow for sufficient flexibility in your planning you can choose between the following options: * an extra seminar * an [[Master.Intern.ExperimentationProject][Experimentation Project]] * an additional ST course --> -----++ Thesis Project (45 ECTS) In the final thesis project a student performs research under the supervision of one of the staff members of the center. The project can be conducted in the ST-Lab of the center, in a company, or (partly) in a related (foreign) research group. Thesis projects are structured in three phases: colloquium, proposal, and research. See further below for additional information about this part of the curriculum if you are a doctoral student. -------+++ Software Technology Colloquium (5 ECTS) In order to prepare for the thesis project and get a broad overview of ongoing research in the Center and beyond, students attend the weekly [[Stc.WebHome][Software Technology Colloquium]]. This colloquium provides a broad overview of interesting results in the ST area by means of research talks and paper presentations by internal and external speakers. Each student should attend at least 30 colloquium sessions, give one colloquium presentation about a topic of choice, and write a literature study about this topic. [[Stc.LiteratureList][Here]] you can find a list of possible papers/programs/libraries to discuss. It is important that you first find a staff member or !PhD student to judge your work, and start off on your own. -------+++ Thesis Proposal (10 ECTS) After the colloquium obligations have been fulfilled, and with at most 7.5 ECTS op course obligations left, a topic for a thesis project can be chosen. Before actually starting the research, a student writes a _thesis proposal_ containing a problem statement for the proposed research, positioning of the research with respect to other research, an overview of the literature in the field, and a planning for the project. The proposal should be accepted by the thesis committee before the project can start. -------+++ Research and Thesis (30 ECTS) The final part of the project consists of performing the research according to the plan in the thesis proposal and writing a thesis about the result. Relevant parts of the proposal will typically find their way into the thesis. The project is finished with a defense of the thesis before the thesis committee. Courses or seminars taught inside the department and not mentioned below may be approved upon explicit request, especially in relation with the choice of a specific thesis area. %STOPINCLUDE% -------++ Advise for Specific Groups -------+++ Bachelor degree in Computer Science from Utrecht University If you have such a bachelor degree you can enter the program without explicit permission. Please register by sending an email to the [[CoordinatorOverview][student advisor]] including a letter of motivation for your choice and a plan with the courses you will take in the first year of the program. If you have not yet finished your bachelor program at the start of the fourth year of study, please include a plan for finishing the last courses. In case you have already taken one or more of the mandatory courses as part of your Bachelors degree you should substitute courses from the list of advanced ST courses. -------+++ HIO Students (Students from Dutch Polytechnic Schools, Technische informatica) Students from the HIO in general have taken a good amount of project-oriented courses. These students are advised to follow the technical courses to best complement their prior education. Usually deficiencies exist in functional programming and grammars and parsing, which can be remedied by taking the [[Functional Programming Languages and Compilers][FPLC course]] in the first period. -------+++ Technische Bedrijfskunde / Business Informatics Students with a background in business informatics who show to have affinity and experience in programming in addition to their formal education may be admitted to the program. For these students it might be advisable to take some additional courses from the bachelor program. -- Main.WishnuPrasetya - 12 Jun 2009