Starting in Fall 2011, there are two introduction to computing courses offered, with different aims and for different students:
A Matlab-based introductory computer programming and problem-solving course
Required for: All engineering majors (except Computer Science and Computer Engineering) and required for some other majors (e.g., physics, math, and biology)
Assumes no previous programming experience
Course Description: Students will learn the fundamentals of computer programming and algorithmic problem solving. Concepts are illustrated using a wide range of examples from engineering, science, and other disciplines. Students learn how to create, debug, and test computer programs, and how to develop algorithmic solutions to problems and write programs that implement those solutions. Matlab is the primary programming language used in this course, but other languages may be introduced or used throughout.
A Java-based, accelerated, and advanced introduction to object-oriented programming
Required for: Computer Science (CS) major and minor--both BS and BA, Computer Engineering (CE) major and minor, and Systems Biology major -- all for students starting Fall 2011 or later.
Not intended as a general introduction; this is for CS, CE, and other majors that require in-depth programming and will take EECS 233 (Data Structures) and subsequent programming-oriented courses in the CS and CE curricula. Prior programming experience would be advantageous, but is not necessary. Class will proceed at a much accelerated pace versus both ENGR 131 as described above (and as that course was offered in Java before Fall 2011).
Course Description: Introduction to computer programming and problem solving with the Java language. Computers, operating systems, and Java applications; software development; conditional statements; loops; methods; arrays; classes and objects; object-oriented design; unit testing; strings and text I/O; inheritance and polymorphism; GUI components; application testing; abstract classes and interfaces; exception handling; files and streams; GUI event handling; generics; collections; threads; comparison of Java to C, C++, and C#.
Advanced Placement (AP): A score of 4 or 5 on the "Computer Science A" exam allows credit for a total of exactly 3 hours, which may be applied to either* ENGR 131 or EECS 132.
International Baccalaureate (IB): A score of 5, 6, or 7 for "Computer Science HL" allows credit for a total of exactly 3 hours, which may be applied to either* ENGR 131 or EECS 132.
* EECS 132 is required for EECS 233 and for CS (BS and BA), CE, and Systems Biology majors and for CS (BS and BA) and CE minors.
* Students receiving EECS 132 credit could consider EECS 233 or EECS 281; those receiving ENGR 131 credit could consider EECS 281.
Proficiency examinations will be given for ENGR 131 and EECS 132 before the Fall Semester (in August) and Spring Semester (in January). The ENGR 131 exam is recommended for students who are familiar with elementary computer programming (any language) and who have not received transfer, AP, or IB credit for ENGR 131 or EECS 132. The EECS 132 exam is recommended for students who are familiar with computer programming in Java and also familiar with object-oriented programming, including in Java and who have not received credit for ENGR 131.
The Case School of Engineering is offering a series of 6 prep sessions for the ENGR 131 proficiency exam. The first session will be held on Tuesday, November 29 at 5:30 p.m. in Strosacker Auditorium, and subsequent sessions will be held on December 1, December 6, December 8, December 12, and December 16. These sessions will be recorded and made available on-line; additional information about the proficiency exam will also be available on this web site.
This series of prep sessions is appropriate for students who already have some familiarity with MATLAB equivalent to chapters 1-8 of the textbook “MATLAB: A Practical Introduction to Programming and Problem Solving” by Attaway. The prep sessions will include practice exam questions for the purpose of self-assessment, but students will be expected to monitor their own performance and seek assistance as necessary. The sessions will also be the principal opportunity to ask questions before the proficiency exam.
The EECS 132 exam will be administered next as follows:
The ENGR 131 exam will be administered next as follows:
Students wishing to take either of the exams must register for them at least 72 hours in advance by emailing the exam coordinators as follows:
Starting Fall 2011, EECS 233 (Into to Data Structures) and EECS 290 (Intro. to Computer Game Design and Implementation) require EECS 132. However, students who have taken ENGR 131 before Fall 2011--inclusive of Summer 2011 (in Java) will be granted permission to take these courses. Students who have taken ENGR 131 in Matlab must pass a proficiency exam covering all EECS 132 material (see description above) before being allowed to take EECS 233 or 290. In most cases, this will require substantial self-study beyond ENGR 131, and it is recommended to take EECS 132 before proceeding to EECS 233 or 290.
The Case School of Engineering resolved that
Beginning in Fall 2011, ENGR 131 will be modified to have a distinct emphasis on Matlab. Fundamental concepts relating to Computer Science will continue to be part of the ENGR 131 curriculum.
The resolution also allowed the reduction of ENGR core courses by one (on a degree-by-degree basis) "if and only if said degree programs demonstrate exposure ... to the topic elsewhere ... [and that the[ ENGR Core and Undergraduate Studies Committees must both approve ..." This was done in the case of EECS 132 for the Computer Science and Computer Engineering degrees since it was determined those students needed in in-depth coverage of object-oriented programming to be successful in their required subsequent programming-intensive course work.