Intro to Engineering
EGN 1002
Intro to Engineering is a multi-departmental course that gives a broad overview of the College of Engineering. Intended for incoming freshmen as a way to introduce them to the different fields of engineering, it was first suggested as a way to retain students after administrators noticed the high drop-out rate of introductory "weeder" courses. Each week, the students visit a different department. What follows below is a guide aimed primarily at the instructor of the Computer Engineering section.
Introduction
Twice a week, you will get 20 to 36 new students. They will invariably be lost in the building, and you will have to sheperd them towards the classroom. Currently the classroom is located in room 305 on Wednesdays, and room 404 on Thursday. The third floor classroom is not easy to find, as it requires the students to ask directions. Worse yet, the students on Thursday have been told to look for room 305, not 404, and you should expect more confused faces. It is a good idea to leave a sign outside room 301 with directions to room 305. Additionally, it is recommended that you develop a rapport with the secretaries in room 301, as they will make your life much easier in many ways, as well as point your students upstairs on Thursdays.
The class is broken down into three parts. First is the short lecture on the CISE Department, then you introduce and teach the students how to use Karel, the robot simulator, and finally wrap up with letting the students play with Karel.
The Lecture
Always start by introducing yourself and the name of the class you're teaching. Then begin to pass out the attendance sheet, the blue booklets, and the white packets to the students. More correctly, give all the materials to the first student and ask him to pass it down. You should then mention the following points:
- We offer three degree programs. The Decision and Information Services (DIS) degree is offered through the Business School, the Computer Information Systems (CIS) degree is offered through the Liberal Arts program, and finally the Computer Engineering (CE) degree offered through the College of Engineering.
- The distinction between taking the Computer Engineering degree through our program instead of the one offered through ECE. It should be mentioned that it is the same degree (you can't dual degree), through the electives are different. As implied, all the required courses are the same. If students opt to take the degree through us, their electives will be mostly software related. It they choose to take through Engineering, their electives will be hardware related.
- Our ranking. The Computer Engineering degree is ranked 10th or 11th in the nation, and the CISE Department is ranked 25th. This is out of roughly 300 or so universities in the United States. The Computer Engineering degree at FSU is not even ranked, which means that it places worse than 150th :-).
- The average income of recent bachelor graduates is around forty thousand dollars. It's a little bit more if you go to the West Coast, but then again the cost of living is more expensive. If you stay in Gainesville, which lets face it is in the boonies, then you should expect to make less.
- We don't expect prior programming experience. Instead, the introductory classes will handle that quite well. CSE 3020 is the semi-official "weeder" course that will teach them how to program in Java (currently). If they're intrested in CE but not serious about it yet, suggest that they talk to the two academic coordinators, Janet King and Denise Attebery, who can suggest other courses than CSE 3020.
- The dual-degree option. This is actually not related at all to our department. However, it just so happens that the Electrical Engineering (EE) degree and the Computer Engineering (CE) degree overlap so much that only one or two additional courses are needed to complete both degrees. You should highly encourage the students to get both degrees if they decide to take CE through Engineering (and not the CISE Department). Obviously, if they choose to complete their CE degree through us, then their electives will not overlap with those of EE.
- The 3-2 program. Offered only to engineering students, the 3-2 program offers the student the opportunity to graduate earlier if they plan on pursuing a Master's degree. Their Junior year, they can declare that they wish to enter the 3-2 program. They will then immediately be entered into the Master's program, and they will then have an additional two years before they receive their Master's degree. The advantage is that it will take them 5 years instead of 6 to earn a Master's.
After you've finished lecturing the students about the CISE Department, be sure to ask for any questions. Typically, the students will be too shy to ask any questions, so it's not a bad idea to ask them some. I usually ask them what "C.I.S.E." stands for, as well as what fields of study they should look into if they wish to do game programming.
Teaching Karel
Karel is a robot simulator that runs on Unix. It uses a simple programming language to direct and move a robot across the screen. The commands are self-explanatory (ex.: "move", "turnoff"), and it uses a syntax similar to C (ex.: "If/Else"). It is strongly encouraged that you do all the exercises in the white packet so that you get an idea of what is allowed (for example using new instructions before you've defined them). Setting up Karel and running it is covered under Class Notes.
You're free to introduce Karel in whatever manner you choose, and in fact it's probably better that you don't memorize a long list of points to make. However, it is recommended that you at least follow this outline:
- Describe the simulator. For example show how it is functionally divided into three parts. This is also a good time to load the sample world and introduce Karel.
- Tell them what Karel can do. Go over all the actions that Karel can do, as well as what it can sense.
- Write a program that fails. I usually code the following: "move putbeeper move". With the sample world, this will cause Karel to bump into the "neutronium" wall.
- Correct the problem but forget to load the problem. Karel will again bump into the wall. Now ask the students what you did wrong. Finish up by saying that you've coded so far is an example of Sequential Execution.
- Ask the students how to make Karel turn right. Then take their answer and make it into a new instruction ("turnright") and show them how Procedural Abstraction works. Bring attention to the fact that the new instruction occurs before "Begin-of-Execution".
- Write some code that illustrates Iteration. For example, instead of turning left three times they could have turned left 19 times in order to end up turning right. Write that code using the "iterate" command. Don't bother actually running it.
- Introduce Conditional Statements. This is a rather key concept, and you want to make sure that the students understand it. Don't forget to mention that the "Else" statement is optional.
- Mention the "while" statement. I usually describe it as a combination of an "iterate" loop and an "if" statement. Illustrate how this can cause an infinite loop.
You want to finish by asking for any questions.
Lab Work
Inform the class that you're now going to let them play with Karel. Pick up the blue booklet. On the back cover is a sample program, which they should refer to as a guide. Additionally, everything that you've just covered in class is also inside the blue booklet.
Now pick up the white packet and show how it is divided into three groups. The students are required to do three programs in all, one from each group. Emphasize that they only need to do three total, as there is almost always one student that attempts to do all nine and then wonders why everyone finishes before they do.
Go back to Karel and show the students how to save programs, as well as how to load worlds. Tell the students that after they have finished all three programs and saved them, they should call you over and show them to you, after which you will check them off on the attendance sheet and they are free to go.
Now lead the students to the computer lab. Ask the last student leaving the room to close the door. If you have not already done so, then login to the Unix machines once you get to the computer lab. Have the students sit down. Finally, stick around until the last students leaves so that you can answer questions and check students off as they finish.