University of Saskatchewan Department of Computer Science

Welcome to the Department of Computer Science

Courses >
Printer

Computer Science 117 (Detailed Information)

Note that the information presented here does not necessarily reflect the most up to date syllabus or course information. Rather this information is intended to provide a general overview of course content from previous offerings.

Purpose of the Course

CMPT 117 is a second course in Computer Science for students in Engineering. Its purpose is to build on the concepts introduced in CMPT 116 and to introduce elementary data structures that are of fundamental importance to software engineering. These structures will be implemented using the object-oriented features of the C++ programming language, notably the class construct. The emphasis is on problem solving, designing data structures and appropriate algorithms particularly suited to the problem at hand. The course will involve significant practical work.

At the completion of the course, students will be able to use a computer to assist them in solving problems and produce associated documentation.

C++ is the language used throughout the course since it is particularly relevant to engineering applications. However, CMPT 117 is not a course for learning the C++ programming language per se; rather, it is meant to introduce intermediate programming concepts that form the foundation for more general problem solving and computation skills (using almost any programming language).

Microsoft Visual C++ is the programming platform used for this course.

Lectures

Lectures are intended to explain, elaborate, and expand upon topics relating to the fundamentals of computer programming and Computer Science. Students are expected to have read the relevant sections in the textbook prior to attending the class in which they are discussed, and to be responsible for learning all of the material presented in lectures (including the material unique to lectures which are not directly addressed in the textbook).

Section Weekday Starts Ends Location
02 M W F 11:30 PM 12:20 PM 1B79 Engineering

Labs/Tutorials

Scheduled labs will take place every week. During these periods, there will be a CMPT 117 lab advisor in the lab. Lab advisors will guide you in your use of Visual C++. They will assist with student programming and problem-solving as it relates to textbook exercises, lab problems, and assignments. Students registered in the lab will have priority for lab seats during scheduled lab periods.

In these labs, students will be given problems to solve and may receive some relevant instruction from a lab advisor. As with lectures, students are expected to read the relevant material in the textbook prior to scheduled lab times.

Section Week Day Starts Ends Location Lab
L02 Monday 14:30 PM 16:00 PM 2B04 Engineering Delta
L04 Tuesday 14:30 PM 16:00 PM 2B04 Engineering Delta

A tutorial session will be held weekly. The purpose of this session is to provide students with the opportunity to obtain direct assistance from the instructor, the TA and from each other. This session is not optional, as group collaboration tasks will be undertaken. Participation in these group collaboration activities will contribute towards the "Class Participation" portion of the final mark.

Section Weekday Starts Ends Location
T02 M 16:00 PM 17:30 PM 2B53 Engineering

Instructor

David Bocking bocking@cs.usask.ca
Office hours: after class or by appointment.

Textbook

Michael Main and Walter Savitch, Data Structures and Other Objects Using C++, Fourth Edition, Addison-Wesley, 2010, ISBN 978-0-13-212948-0 (pbk.)

Exams

Midterm Examination
Friday, 11 February, 2011 (This exam will be written in class)

Final Exam Date
TBD

Hands-on Learning Experience

Computer Science is a “participation sport”, just like swimming! Just as you cannot reasonably expect to learn to swim without getting in the pool, neither can you reasonably expect to succeed in Computer Science without writing programs.

The more you practice, the better you can swim; the more you practice, the better you can program.

Indeed, in this course, you are encouraged to program, to program a lot and to use a variety of tools and software in doing that.

Assignments

Assignments and Lab Problems to be Submitted for Marking

Throughout the term students will be required to complete a set of assignments and a set of lab problems for evaluation purposes. Students must complete lab problems and assignments in order to pass the course.

Assignments and lab problems are to be completed on an individual basis (rather than working together with a group of other students). It is expected that all student work presented for grading in this course will be the original work of the submitting student -- The College of Engineering and College of Arts and Science have strong policies to encourage an academically honest environment and this course expects students to be familiar with and to adhere to these policies.

Late submissions of assignments and lab problems will not be accepted for credit.

This is due to the size of the class and the number of assignments. We cannot accommodate all situations. As well, we cannot allow late submissions, as solutions to assignments will be posted shortly after due dates. Assignments may be waived for legitimate medical reasons with accompanying documentation according to University policy.

If you are not able to finish a required assignment by the time it is due, submit what you have done and hope for the best - you most likely will receive partial marks for the work you have completed. If you have a serious problem, please talk to your instructor.

Textbook Laboratory Exercises

Scattered throughout each chapter in the textbook are hands-on lab exercises that provide additional opportunities for students to practice the concepts being introduced. It is advised that you keep current with these exercises and attempt to solve as many as you can on the computer. Note that the term will progress quickly and many of the concepts covered in earlier chapters will be the building blocks for material covered later in the term, so it is very important that you do not fall behind with your work.

Course Facilities

The Engineering undergraduate computer labs are the designated facilities for your CMPT 117 programming laboratories; these are the labs in which laboratory assistants familiar with the course material will be working. However, students may use any computer that has the suitable software installed on it.

Students in CMPT 117 do have access to the Computer Science laboratories located on the third floor of the Spinks Addition to the Thorvaldson Building. These provide a wide variety of software platforms for software development.

Students are encouraged to explore software development in other laboratories to which they may have access, especially if doing so allows them to try out other computer platforms like Linux and Mac OSX. As well, other laboratories may support different C++ programming toolsets such as Eclipse, Xcode and Netbeans. Exposure to these other programming tools and computer platforms is very beneficial to students as it prepares them for the wide variety of toolsets they can expect to encounter during their careers.

On-Line Course Material

The course will make use of a web-based instructional support system, called Moodle, to provide on-line web access to course material. Login with your NSID and password at the Computer Science Moodle server

Course Home Page

The course home page may be found here on the Computer Science Moodle server.

Learning Community

Connected with the course are discussion forums which students can use to share with others their discoveries and approaches to problem solution. Active and constructive contribution to discussion forums will count towards class participation marks.

Electronic Assignment Submission

Lab work and course assignments will be required to be handed in electronically through "Assignment" activities on the Computer Science Moodle system. Each assignment will appear as an activity in one of the weeks of the course. Assignments can be handed in there.

Other Information

Student Use of Departmental Software Subscriptions

Note: the Department of Computer Science has an agreement with Microsoft, the MSDN Academic Alliance, and by taking any CMPT or BINFO course, you are entitled to download and freely use Visual Studio on your home computer (see the MSDN Academic Alliance webpage for more information).

Students interested in Linux may take advantage of the Computer Science Department's subscription to Mandriva Linux. For more details on both of these programs, see Resources and Facilities on the Department web site.

Backups

Backing up your work- Please be advised that it is critical for you to maintain regular back-ups of your work on a remote server or alternate storage device.