Foundations of software engineering

Master

In Maynard (USA)

Price on request

Description

  • Type

    Master

  • Location

    Maynard (USA)

  • Start date

    Different dates available

This is a foundation subject in modern software development techniques for engineering and information technology. The design and development of component-based software (using C# and .NET) is covered; data structures and algorithms for modeling, analysis, and visualization; basic problem-solving techniques; web services; and the management and maintenance of software. Includes a treatment of topics such as sorting and searching algorithms; and numerical simulation techniques. Foundation for in-depth exploration of image processing, computational geometry, finite element methods, network methods and e-business applications. This course is a core requirement for the Information Technology M. Eng. program.

Facilities

Location

Start date

Maynard (USA)
See map
02139

Start date

Different dates availableEnrolment now open

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • Engineering
  • Technology
  • Project
  • Image
  • Simulation
  • Algorithms
  • Java
  • Software Engineering

Course programme

This class was also offered in Course 13 (Department of Ocean Engineering) as 13.470J. In 2005, ocean engineering subjects became part of Course 2 (Department of Mechanical Engineering), and the 13.470J designation was dropped in lieu of 2.159J.


Lectures: 2 sessions / week, 1.5 hours / session


Recitations: 1 session / week, 1 hour / session


1.00 or knowledge of an object-oriented language.


The course is broken into four phases, each of which lasts approximately one month. Phase I will give you a grounding in the basics of Object Oriented Programming and the C++ language. Phase II will introduce Java® and some of the basic algorithms and data structures, such as arrays, trees, searching, sorting, geometric reasoning etc. Phase III will introduce the Java® programming language, which will be used for your term projects. Phase IV will be a final project to give you a chance to put your new knowledge into practice on a challenging project. The project this year will focus on building a simulation to demonstrate a physical principle of your choice.


In summary:


Phase I: C++ and OOP
Covers classes and objects, inheritance, virtual functions, abstract classes, polymorphism


Phase II: Algorithms
Searching and sorting methods


Phase III: Java®
Java applications and applets, Abstract Windowing Toolkit, Graphics, Image Processing, Threads. Integrating Java ®and C++.

Phase IV: Project
Selected advanced topics in Java® and C++. Simulation (term project) using Java® and/or C++.


This course has the following assignments:


7 Problem Sets (1-7): 40%
2 Quizzes: 30%
1 Project: 25%
1 Class Presentation: 5%


Lippman, S. and J. Lajoie. C++ Primer. 3rd ed. Reading, MA: Addison Wesley Professional. April 1998. ISBN: 9780201824704.


Sedgewick, R. Algorithms in C++. Reading, MA: Addison-Wesley Longman, Incorporated. June 2001. ISBN: 0201849380.


Campione, M., K. Walrath, and A. Huml. The Java® Tutorial. 2nd ed. Upper Saddle River, NJ: Prentice Hall PTR, December 1999. ISBN: 9780201485585.


The computer intensive nature of 1.124 changes some of the traditional ways in which homework sets are turned in and graded. But the fundamental principles of academic honesty remain the same as always. All students are expected to adhere to the highest possible ethical standards in all aspects of their work. In particular, each student should be completely responsible for his or her own work. Wherever there is any doubt students should err on the side of conservatism and keep their thoughts and solutions to themselves. 1.124 problem sets are not intended to be team projects or group endeavors (unless clearly stated on the problem set). You should conceptualize, solve, and write up each problem yourself to gain maximum benefit from the homework assignment. If you have any doubt about what is unacceptable collaboration speak to your TA or to the Instructor.


Remember that your conduct in 1.124 and, more generally, at MIT is establishing habits of professional honesty that are likely to remain with you throughout your career. Keep your long term interests in mind if you are tempted to step beyond the bounds of propriety. Reality cannot be faked. Do not be tempted to claim knowledge that you have not gained.


Specific rules are as follows:


While you may discuss general approaches to solving problems with your fellow students, you may not copy parts of other student's work or do the problem sets jointly. This particularly applies to computer programs.


You may seek other student's advice in debugging your programs. However, their assistance should be limited to determining what is wrong with your program rather than rewriting large sections of it for you.


You may copy and modify programs given in the lecture notes or in class by any of the instructors.


THESE RULES WILL BE STRICTLY ENFORCED.
(Adapted from Course 1.00 Guidelines)


Don't show me this again


This is one of over 2,200 courses on OCW. Find materials for this course in the pages linked along the left.


MIT OpenCourseWare is a free & open publication of material from thousands of MIT courses, covering the entire MIT curriculum.


No enrollment or registration. Freely browse and use OCW materials at your own pace. There's no signup, and no start or end dates.


Knowledge is your reward. Use OCW to guide your own life-long learning, or to teach others. We don't offer credit or certification for using OCW.


Made for sharing. Download files for later. Send to friends and colleagues. Modify, remix, and reuse (just remember to cite OCW as the source.)


Learn more at Get Started with MIT OpenCourseWare


Foundations of software engineering

Price on request