How to choose Computational Science courses? First public draft, August 27, 2005 Authors: Christian Kuehn (class of 2005), small changes by Marcel Oliver Overview: 1.) Introduction 2.) Basic Courses – The First Year 2.a) Choice between Regular, Advanced and Intermediate Variants 2.b) Calculus 2.c) Laboratory Courses 2.d) Engineering and Science Elective 3.) Curriculum Requirements 3.a) Rigorous Mathematics 3.b) Computational Methods 3.c) Modeling Courses 3.d) Overview 4.) Computer Science 5.) Guided Research 6.) A Note on Transdisciplinary Courses 1.) Introduction Computational Science (CPS) is designed as an interdisciplinary major and therefore when you have the choice between several courses you should remember the following statement from the description of the program as one guiding principle: “Our curriculum is designed to provide a solid foundation for each of the three central pillars of Computational Science: A good knowledge of mathematics and specifically of mathematical analysis, the study of algorithms and training in their practical implementation, and the exposure to at least one area of application in engineering or science.” Another principle to keep in mind in addition to choosing a balanced number of courses to gain expertise in the key areas of CPS is that your knowledge and abilities are challenged by the courses you take. Last but not least you should make sure that you fulfill the graduation requirements, which are briefly treated below and in detail in the Handbook for CPS (available through the Jacobs University website). 2.) Basic Courses – The First Year As an incoming student you have the following choices, which strongly depend on the previous mathematics, respectively computer science, education you had at high school or elsewhere. The first option is to start with the so-called 'regular track', which includes the following core courses in the first two semesters: 110101 & 110102 General Mathematics and Computational Science I / II 120101/120111 & 120112 Engineering and Science Mathematics (ESM) 1 & 2 320101 & 320102 General Computer Science I / II 110102 Symbolic Software Lab 110112 Numerical Software Lab 320111 & 320112 Computer Science Labs For a more detailed discussion of the ESM courses and laboratory units, see sections below. Alternatively, you can follow the 'honors' or 'advanced' version, which includes the following courses: 100211 & 100212 Analysis I & II 100221 & 100222 Linear Algebra I & II 320101 & 320102 General Computer Science I / II Lab Courses as above Intermediate combinations are always possible, e.g. General Mathematics and Computational Science I / II and Linear Algebra I / II in your first year. It is unlikely that you are already familiar with the material from General Computer Science and you should talk to the instructor if you think this course is not challenging enough and you want to take another class (i.e. at second year level) instead. Please note that it is recommended that you consult with CPS faculty for advice and details, especially if you intend to follow intermediate/non-standard variants of courses in your first year. The main challenge, being presented with the two variants above and all possible intermediate combinations, is to find the combination which suits you best. 2.a) Choice between Regular, Advanced and Intermediate Variants The main difference of the regular and the advanced version of CPS in the first year is the level of “mathematical sophistication” you bring to Jacobs from high school or elsewhere. If one or more of the following applies to you, you are likely ready for one of the advanced versions of the curriculum. 1) Have you taken special/advanced mathematics courses at high school level (e.g. for the German Abitur this would be “Leistungskurs Mathematik”)? 2) Have you participated in mathematics competitions for high school students or have you had special training classes for these competitions? 3) Have you attended a high school specialized in mathematics or the natural sciences? 4) Go to the Advanced Placement (AP) Exam (this is an exam offered at the beginning of the semester in Fall) for 'Engineering and Science Mathematics I' and see how you do and if you can pass it. If none of the above applies, you should consider the 'regular' track. If you are unsure, keep in mind that it is usually easier to switch from a course like 'Analysis' to 'General Mathematics and Computational Science' than the other way around if the level of difficulty does not suit you – the classes you are taking should be difficult and challenging, but you must be able to cope with the weekly workload and be able to understand the new concepts, which are introduced. You should use the first weeks before the drop/add deadline wisely to find out what is suitable for you; if in doubt, talk to the respective instructors and to your academic advisor. 2.b) Calculus If you are taking Engineering and Science Mathematics, two classes are offered in the first semester: 120101 ESM 1A – Single Variable Calculus 120111 ESM 1B – Multivariable Calculus and ODEs Very roughly speaking, ESM 1A covers similar topics as Analysis I, and ESM 1B similar topics as Analysis II. However, the point of view, the style of presentation, and the learning goals are completely different. Engineering and Science Mathematics will provide you with methods for solving problems, points out certain application domains and provides training to improve your speed and reliability in performing certain calculations. Analysis, on the other hand, builds the theory behind these methods, and provides training in formal and rigorous thinking. Both kind of skills are important. Experience has shown that people can learn the more technical aspects “on the job” provided their understanding of the fundamental principles is strong. Thus, it is safe to go soft on Engineering and Science Mathematics provided you treat the more advanced courses seriously and you are not afraid of filling in missing bits and pieces on your own. Nevertheless, as a CPS major you are likely to need many computational tools and methods from both courses quite soon. If you intend to take physics courses, Multivariable Calculus and Ordinary Differential Equations (ODE) will occur definitely already in first-year physics. The Advanced Placement (AP) exam for ESM 1A gives a good indication, about your “calculation/calculus skills”. If you pass AP easily and are very (!) confident to be able acquire “calculus skills”, while taking Analysis I/II, then you could think about skipping ESM 1B, otherwise you should also take ESM 1B. If you fail the AP, it is recommended that you take both: ESM 1A and ESM 1B. Although ESM 1A and ESM 1B can be simultaneously taken for credit, the second semester ESM courses come in two flavors that differ only in a small number of topics; only one of the two can be taken for credit. 120102 ESM 2A – Linear Algebra, Probability, Statistics 120112 ESM 2B – Linear Algebra, Fourier, Probability For CPS majors ESM 2B is the option to choose. Some statistics knowledge might be necessary for some life science courses and also can be acquired “on-the-fly” if you really come across some material in other courses, so don't be afraid of missing something. 2.c) Laboratory Courses As mentioned above, in addition to taking the two CPS Lab Units (Numerical Software and Symbolic Software), which are core components of your major, you should take the Computer Science Lab Units, which are introductions to programming in C and C++, respectively. If your are already familiar with C and/or C++, then the Computer Science Group usually offers AP examinations for these courses, but even if you might be able to barely pass such an AP, it is a good idea anyway to get some more programming practice during the first year as during the later years other courses require that you are able to implement algorithms without teaching you the mechanical aspect of programming. Usually you can only gain this expertise by practicing. 2.d) Engineering and Science Elective In addition to taking courses in Mathematics and Computer Science, it is recommended that you take another first-year level class in the School of Engineering and Science (SES) together with the associated lab courses. Exceptions from this rule are very rare and only if you are in the advanced track of the curriculum taking Analysis and/or Linear Algebra you might want to modify this recommendation. In this case you MUST consult with the CPS faculty well in advance before making this decision. The main goal of taking an elective together with its labs such as General Physics I/II, General Electrical Engineering I/II or some other SES first-year course, is to familiarize you with one area of application, which is one of the three central pillars of the curriculum as you might remember from the beginning of this document. Usually it is intended that you consistently take courses in this area during your three years, but it is no disaster if you realize after the first year that, e.g., Electrical Engineering is not your favorite area of application. You can always change focus later, but it pays to think ahead when choosing courses in the first year. 3. Curriculum Requirements Beyond the initial core of the curriculum you also have to think about the requirements for the Bachelor of Science in CPS. Each course you take carries a certain number of credits, which are accessible with the course catalog / course description. In general these include as minimum requirements: – – – 180 credits overall 144 credits in the School of Engineering and Science (SES) 36 credits from transdisciplinary courses including * 3-5 University Study Courses 3-5 courses in the School of Humanities and Social Sciences (SHSS) The 144 credits from the SES must include at least – – – – – 22.5 credits in CPS courses at first-year level or above 27 credits in CPS courses at second-year level CPS or above 36 credits in CPS courses at third-year level CPS or above 13.5 credits in Computer Science at any level The second and third-year level CPS courses musts contain the equivalent of at least one course per semester of Rigorous Mathematics courses, Computational Methods courses, and Modeling courses The first four requirement are clear and require no further explanation, whereas he fifth requirement of the list above is treated in detail below, Note that higher-level (or graduate-level) classes may be used to satisfy lower level credit requirements. The level of the courses is currently indicated also in the course number which has 6 digits, The first three for mathematics, mathematics service or computational science classes are 100, 110 or 120. The fourth (!) digit carries the information on the level: – – – – xyz1.. = first year level xyz2.. = second year level xyz3.. = third year level xyz4.. = graduate level course. 3.a) Rigorous Mathematics As mathematics courses at the second year level or above with a certain number of topic codes count as Rigorous Mathematics course. In particular the topic code is the second to last number 100.x. of the course number. The following topic codes are allowed: 1 (Analysis), 5 (Geometry), 6 (Dynamical Systems), 7 (Discrete Mathematics) In addition, Linear Algebra I and II and CPS courses 110.x. with topic code 3 (Applied Analysis) qualify as Rigorous Mathematics courses. The minimum requirement in this section is taking one class per semester starting from your third semester giving a minimum of four classes in total. You are encouraged to take more than those 4 classes. Especially the following courses might be interesting: 100211 Analysis I // 100212 Analysis II 100221 Linear Algebra I // 100222 Linear Algebra II 100361 ODE / Dynamical Systems // 100362 Partial Differential Equations (PDE) 110331 Asymptotic Analysis 100311 Integration and Manifolds // 100312 Introductory Complex Analysis Often there is more than one way to acquire the necessary basic skills. Two examples: Suppose you take ESM 3B, which provides computational methods and results for PDEs and Complex Analysis. In this case the mathematics PDE (100362) and the Introductory Complex Analysis (100312) courses become a little less important due to overlaps. Note that nevertheless if your are e.g. interested in PDE, there is no way around taking the mathematics PDE class as it provides you with the necessary theory, which is essential for research or project work. The second example is that if you do not take Linear Algebra in your first year, but instead ESM 2 (e.g. 120102) and afterwards the Numerical Methods class described below, these courses already provide a lot of Linear Algebra, so that other courses might have higher priority for you, e.g. Analysis I should then be preferred against Linear Algebra I. Also you should note that sometimes it makes sense to take a Rigorous Mathematics course to acquire additional background for a Computational Methods course or an area of application. You can find out easily by looking into some books in the library if a certain math class might be helpful if it is not immediately obvious, e.g. it is clear that it is helpful (although not necessary) to take PDE before taking Computational PDE, but it might not be so clear that Manifolds and Integration provides you with the knowledge about differential forms for studying Electrodynamics and some other areas of Physics. As a last general note: It is advisable to talk to the instructor of record for a Rigorous Mathematics course if you are not sure whether you have all the necessary prerequisites for a course before (!) the drop/add deadline. 3.b) Computational Methods The main important and mandatory (!) courses you have to take in this category are the Numerical Methods courses during your second year: 110211 Numerical Methods I 110212 Numerical Methods II Since again you have to take at least four courses in this area, there is a life beyond Numerical Methods, namely the following topic codes for CPS courses 110.x. qualify as Computational Methods course: 1 (Numerical Analysis) 2 (Numerical Linear Algebra) 4 (Discrete Algorithms) 5 (Optimization) 7 (Architecture) In addition, some courses from other fields within the School of Engineering and Science that can be taken: 200372 Computational Fluid Dynamics 200331 Computational Physics 400321 Computational Chemistry and Biochemistry 3.c) Modeling Courses Again you have to watch out for the topic code; CPS courses 110.x. with topic codes 6 (Modeling) and 8 (Visualization) count as Modeling courses. Furthermore a large number of other classes offered by the SES might qualify as well. The standard/recommended choice for Modeling Courses in the second year is: 120211 ESM 3B – Complex Variables and PDE 110262 Introduction to Mathematical Modeling Note that you should look into the CPS Handbook, which is available online for your enrollment year, which other courses qualify for Modeling. It is recommended that whenever you are not sure about a choice in this section that you contact CPS faculty on this issue. 3.d) Overview Now you know what belongs where, but you have been promised the two main strategies you might want to follow during your study of CPS. One option is to gain a broader view on different topics especially with respect to the areas of application and computational methods aspects. This means you would only carry your main application area by one course each year, just as an example suppose you are interested in physics with emphasis on fluid dynamics, one of the historically first areas of CPS. Then you might think about including the following courses: 120211 ESM 3B – Complex Variables and PDE 110262 Introduction to Mathematical Modeling 200371 Fundamentals of Hydrodynamics 200372 Computational Fluid Dynamics This is a small version and gives you a very good foundation for studying this area of application in graduate school or elsewhere. In addition you could take other courses to satisfy the graduation requirements, but of course you could also want to study this area even more, which will result in a specialized expertise, but a little less general knowledge of CPS in the end, namely you could choose the following courses: 110262 Introduction to Mathematical Modeling 200371 Fundamentals of Hydrodynamics 200372 Computational Fluid Dynamics 210331 Plasma Kinetic Theory and Fluid Description 200331 Computational Physics 110331 Computational PDE 100211 Analysis I 100212 Analysis II 100362 Partial Differential Equations 100312 Introductory Complex Analysis Although the second selection might be a bit exaggerated in terms of depth for an undergraduate course in certain areas (e.g. the computational treatment of PDEs) it shows you an option, how to strongly focus an area. Note that this is just an example. I am going to give you a few examples of areas, which you might want to focus on together with a small description, which type of courses might be useful for this area. Since the course numbers and course titles above might be outdated at some point of time or not every course is offered each year, the following will be just an overview and you should try to read the course catalog carefully, attend the first few lectures of a course, talk to the instructor and/or to CPS faculty if the course fits into your curriculum structure. Areas, which might be pursued at Jacobs University, together with the elements they could contain are: (Theoretical) Computer Science: Advanced and Fundamental CS (i.e. algorithms, tools of theoretical CS, networks, operating systems), parallel computing, architectures, visualization, computer graphics, machine learning, discrete mathematics, logic, architectures, programming, optimization, high performance computing Fluid Dynamics: solid knowledge of analysis including possibly complex analysis, PDEs, hydrodynamics, computational PDEs, physics - related areas (e.g. mechanics, statistical physics, thermodynamics, etc.), asymptotic analysis, visualization Computational Biology: bioinformatics courses, visualization, basic biology courses, algorithms - Fundamental CS I, statistics, probability, genetics, computational neuroscience, (mathematical networks, graph theory, mathematical biology etc...), machine learning, high performance computing, visualization, probability. Communication Engineering: physics – related areas (e.g. electrodynamics), electrical engineering courses (General, Fundamental, Advanced, etc.), numerical linear algebra, stochastic processes, signal processing courses / information theory, solid knowledge of mathematical analysis (very advanced = take Real and Functional Analysis), asymptotic analysis Mathematical Finance: economics (as SHSS electives), probability, stochastic processes, (ask also for specific Guided Research projects [see below]), game theory, large scale computation, optimization, probability, high performance computing, visualization Physics/Dynamics: very good knowledge of mathematical analysis (e.g. Manifolds, Differential Forms, Integration, Multivariable Calculus,...), physics – related areas, ODE, dynamical systems, computational methods for differential equations, asymptotic analysis, optimization Certainly these are not all possibilities to base your choice on, but trying to gather courses from a certain area has the advantage that you can link topics and methods, whereas independent courses provide you with a little more breadth and options. This should give you already an indication, how you could approach the choice of courses. Moreover here are some key skills, which you might be expected to be capable of, when you go somewhere with a CPS degree; they should not dictate your course choice too much, but if you are just looking for that “one-last-course”, which you have to choose from a choice of four or five options, you might want to cover one of the aspects, where you feel you have the most problems: – – – – – – – – – – – – – solid understanding of mathematical analysis knowledge of “standard” linear algebra basic knowledge of probability/statistics/stochastics ability to transfer real-world problems into computation basic knowledge of computer science programming skills (at least two main languages) ability to use the computer as a computation/simulation tool elementary knowledge of physics sound understanding of numerical analysis / algorithms basic knowledge about (discrete and continuous) modeling techniques problem solving skills (theoretical setup -> modeling -> simulation -> analysis) ability to begin independent research work [see Guided Research below] theoretical analysis of methods and modeling techniques 4. Computer Science The curriculum requirements state that you have to take at least 13.5 credits in the area of Computer Science. The most standard choice is the sequence of 320101 & 320102 General Computer Science I / II 320111 & 320112 Computer Science Labs which gives you already 13.5 credits, but it might be advisable to look at least into one of the second year computer science courses in your third semester. Usually there will be one course on algorithms (currently Fundamental CS I) and one course on more theoretical aspects of computation (currently Advanced CS I). In this case the recommendation is that you might at least want to attend the first few lectures and see if one of the courses is interesting for you or might be helpful for your preferred area of application or relate to some computational methods course, you think about taking. You could also think about taking the second year CS lab courses if you need or want to get more programming experience. Note that some more advanced third year CS courses require second year courses as prerequisites. 5. Guided Research During the last year of undergraduate studies students usually take two semesters of Guided Research. This project oriented work will ultimately lead to their Bachelor's thesis. The Guided Research courses count as usual third-year CPS classes towards your degree. The course is structured in such a way that you have a faculty adviser for the topic you are interested in and who plans with you all the details. 110391 Guided Research Computational Science I 110392 Guided Research Computational Science II Note that you are should take advantage of the fact that Jacobs University’s CPS/Mathematics faculty although not excessively large covers a very large number of research areas and you should simply talk to a faculty member if you are interested. Also, the choice of Guided Research adviser is not limited to CPS/Mathematics faculty only, but some associated Jacobs faculty e.g. from Physics, Computer Science, Electrical Engineering, etc. might supervise your Guided Research. In any case you MUST talk to the instructor of record of Guided Research for the choice of topics and/or advisers. 6. A Note on Transdisciplinary Courses You are strongly encouraged to broaden you horizon and simply take those University Study Courses and electives from the SHSS that you find interesting. Since you might not directly be able to judge from the course title or a topic list which transdisciplinary course might be suitable, it is advisable to attend the first lectures of several courses to decide on a course and drop the others before the Drop/Add deadline Although not many courses offered in the SHSS have relations to your major field of study, some should be mentioned as they might turn out to be useful. First, it is selfevident that if you are interested in mathematical finance then you should consider taking some of the economics courses offered by the SHSS. If you are interested in the application of mathematics in social sciences, the most prominent classes to attend would be Statistics I and Statistics II.