Catalog Description This course is an introduction to classical data structures and algorithms using programming languages, such as C++ and JAVA. Abstract data types, including lists, strings, stacks, queues, and trees, and the use of data encapsulation mechanisms for implementing seamless types are included. Storage, and the use of recursion, sorting, and searching algorithms are also examined. In lab, students work individually and as groups on C++ and JAVA programming assignments.
Texts and Materials Required:
Recommended:
Suggested:
Attendance Policy Each student is required to attend every lecture and laboratory in which he or she is enrolled. A swipe-card terminal in each classroom is used to record attendance electronically. Students are responsible for arriving before class begins, sliding their identification card through the wall-mounted reader, and remaining for the duration of the course meeting. Students who are absent for two or more days must contact their assigned Academic Coordinator for advisement. Students who miss more than five (5) consecutive days of school are in violation of the DeVry attendance policy and will be dismissed. Examination Make-Up Policy Since responsible behaviour -- including daily class attendance -- is expected of all DeVry students, absence from a scheduled examination is considered to be an extremely serious matter. It is school policy that no faculty member shall be required to schedule a make-up examination unless the student presents a statement from a licensed physician stating that he or she was physically unable to attend school on the day of the exam. The faculty member may schedule a make-up for other equally serious reasons, provided that arrangements are made prior to the date of the exam. An individual faculty member may also schedule a make-up exam if, in his or her opinion, a situation exists that does not fall under the provisions of this policy yet merits special consideration. Course Grading Standards A final letter grade is to be awarded to each enrolled student in accordance with the 4.00 grading system shown below.
Academic Integrity Policy Ideas and learning form the core of the academic community. In all centers of education, learning is valued and honoured. No learning community can thrive if its members counterfeit their achievement and seek to establish an unfair advantage over their fellow students. The academic standards at DeVry are based on a pursuit of knowledge and assume a high level of integrity in every one of its members. When this trust is violated, the academic community suffers injury and must act to ensure that its standards remain meaningful. The vehicle for this action is the Academic Integrity Policy outlined in the Student Handbook. The Academic Integrity Policy is designed to foster a fair and impartial set of standards upon which academic dishonesty will be judged. All students are required to read, understand, and adhere to these standards, which define and specify the following mandatory sanctions for such dishonest acts as copying, plagiarism, lying, unauthorized collaboration, alteration of records, bribery, and misrepresentation for the purpose of enhancing one's academic standing:
Strategy The goal of the CET program is to produce Computer Engineering Technology professionals to work on teams with other specialists to design, develop, produce, test, and maintain complex products and systems. This is accomplished by:
Library Research Project The purpose of the library project/oral presentation is to familiarize the students with resources available in the library, and learn how to use these resources to produce the needed information. Each student is provided with a course related approved topic to research and provide relevant information in regards to the topic, in form of a short report.
I usually get quite a few queries from people confused about what topic they should pick or unsure whether they've picked the right one or even if the topic they chose is comprehensive enough for 10 pages. All of these are legitimiate concerns, of course, but just about all of them can be alleviated by asking yourself a simple question (and answering it as honestly as you can): "What is it that I've always wanted to find out more about?" My view on the library research project is that it should be something that YOU want to learn about! I'd like for this to serve as an opportunity for everyone to force themselves to learn about something they're genuinely interested in. Don't just make this some requirement that you have to fulfill and so you can just copy some stuff and cobble it together into a 10-page report... instead, use this as a rare opportunity to find out about something that actually interests you. I'm very flexible about the range of topics and as long as we can draw a tangential relationship to the course, I'll probably approve the topic. But it has to truly interest you!
Chapter Reading Memos Subject matter is covered pretty much in the sequence presented in the required textbook. It is therefore recommended that you scan the chapters prior to the scheduled lectures to become familiar with new terms that will be introduced. In order to facilitate this, every reading assignment, will have a required reading memo due the meeting day following the meeting day it was assigned. The idea is to have you write down questions and other "instantaneous gut reactions" as you do each reading assignment in the text. It is very important that you create these memos as you read, and on the first pass through the material. They must not be edited or "cleaned up" afterward, and they should not be just outlines or notes. In other words, your reading memos should not simply be a summary/rehashing of the chapter; instead, they should reflect your questions, observations, and insights. What is the purpose of these reading memos? First, it shows me that you've done the reading. In addition, it encourages active reading (reading scientific tomes is a very different experience from reading a novel or other leisure book where you can passively scan the pages). And, even more importantly, it gives me insight into what you're learning, and, more significantly, what I might need to concentrate on more in lecture. Lastly, they give me a student's perspective on the material and often point out common misconceptions or exceptional insights. So why should you do them? Well, if all that insight and learning wasn't sufficient motivation, it might help to know that your reading memos will contribute significantly towards your participation grade (see grading policy below). In addition, I'll be using at least one question from your reading memos on the weekly quizzes. Format of the reading memo: nothing terribly elaborate. Just have a sheet of paper handy as you read the text and jot down your notes. As long as they're legible, I'll be happy. They don't have to be any specific length; I'm just looking for your first impressions and questions you might have. As far as the grading is concerned, I'll basically just be checking off if you're doing them or not. So if you hand one in, you'll get the credit for it. But I'll also be reading them so if you want to impress me, come up with some great memos/questions! Finally, if you're more comfortable jotting them on your computer, feel free to email them to me. Labs, Quizzes, and Groups, oh my! There will be weekly labs starting Week 1. In addition, we'll have weekly quizzes starting Week 2. The quizzes will be based on the reading and the laboratories. In fact, all exams will rely heavily on the labs and the reading. Starting Week 2, there will be a weekly (closed book) quiz in class based almost entirely on the reading and the labs. I'll only keep the 8 highest quizzes. In lieu of the homework, you'll be given the opportunity to instead do selected homework exercises from that chapter. You will thus have the option of either using the homework or the quiz to determine your weekly quiz grade up to three (3) times during the semester (note: you must hand the exercises in before the quiz starts and then only the higher of the two grades will count for that week). Keeping up with the reading and doing the programming exercises, projects, and labs is probably the best way to learn computer science. But the third, and final, ingredient necessary to truly master software development is group learning. Unlike classes in which doing homework together is discouraged, I would actually like to encourage you to collaborate with your colleagues on the programming exercises, projects, and labs. In fact, we'll be forming groups of about two starting in Week 1 and you'll even have the option of doing your projects together as a group (although everyone will have to turn in a separate report and part of your grade will be based on your group's anonymous evaluation of you (and your contribution) to ensure no one person does all the work for the group). All real science is a truly collaborative enterprise and I hope you'll take full advantage of your peers in this regard.
Weekly Project Presentations The weekly project reports/presentations constitute the biggest component of your final grade (please see the Grading Policy below). These consist of weekly programming exercises assigned to you (or your group) followed by a semi-formal presentation to the class the following week. Not everyone will present every week but everyone will be responsible for completing and handing in their assignment every week.
<Theoretical Rant Here> In this class, we'll also emphasize a professional, corporate approach in anticipation of your future employment with a big software development company. Instead of concentrating on the theoretical side (which, being a theoretician, is my natural inclination), we'll instead emphasize the practical problem-solving and actual coding. The BEST way to learn a subject is to actually DO it (insert your favourite quote to the effect here). And so, an important part of your learning experience will be the weekly presentation of your problem. This will be an informal, round-table gathering where you'll explain what you did and how you did it. Peer reviews/inspections are probably THE best way to ensure production of high-quality software (especially for big projects) and you're going to be engaged in just that as you evaluate your peers' work. Here's what they should include: Guidelines for the weekly presentations:
Expectations My general policy in terms of grading is to aim, as in most graduate classes, for an average of about a B. This does not, however, mean that you can earn a high grade simply by doing nothing. What it does mean, though, is that as long as you show up for all the classes, do all the homework/quizzes/exams, and complete your projects on time, you won't ever have to worry about failing the class. So as long as you show up for all the classes and do the basic required work, everyone should at least pass the course. Also, I do allow for some extra-credit throughout the semester which can be applied towards your midterm or final scores only (i.e., it is not applicable towards the project, hw/quiz, or participation scores). If anything strikes your fancy along the way, feel free to talk to me about doing some extra-credit on it.More on my specific expectations about the extra-credit, etc. later... The reason for the extra-credit is I want to see everyone get the grade they are willing to work for. Some suggestions for extra-credit: research a topic that interests you and write a report on it; solve a programming problem; do extra exercises in the book; etc. The Grading Policy Grades will be assigned on a 100% scale but given scores will be based on a curve taking into account the overall performance of your class.
The Tentative Schedule This list is intended to act as a planning guide for students. The timing of the Final Exam is definitely in Week 15 and Homework/Quizzes are planned weekly. Timing of all activities will be continuously communicated in classes and/or via email. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||