Malware banner

Programming in a Second Language (C++)

Welcome to the class website of Programming in a Second Language (CSE 2050). This page links to all the slides for the current class, plus assignment information.

Syllabus

Students will learn to program in C++. Topics include the standard library, object-oriented programming (data abstraction, inheritance, polymorphism), implementing data structures, and the Windows development environment and portability considerations. This is not an introduction to programming course. Students are expected to be comfortable with Java or similar programming language, as well as have a basic understanding of the Intel/PC architecture.

Prerequisites

The class is rather intensive. To benefit from it fully, you need to be concentrating on the message, not the medium. As such, you need to be very comfortable with basic programming, and have a working knowledge of basic data structures. To this end, you will be completing approximately one assignment a week.

There are two books recommended for the class. Practical C++ Programming by Steve Oualline, and Accelerated C++ by Andrew Koenig and Barbara Moo. Oualline's book provides a fairly gentle introduction to the language. Koenig and Moo can be a little fierce for beginners, but is a very good book. My advice is to buy both.

This course is in part based on slides and notes from Dr's Ribiero and Mahoney - I am grateful to them for their prior work.

Submissions should be made via the course's Subversion (SVN) source code control system. Students should check in multiple versions of their assignments as they work through them. Some credit will be given for each check-in and associated comments. Please ensure that you have used relative path addressing on your solutions. Late submissions are better than no submission, but are subject to significant grading penalties. Instructions for using SVN can be found here.

The development environment used is Microsoft Visual Studio 2008. Visual Studio 2010 has some limitations in its C++ support, which we will discuss in class.

Plagiarism Policy

Plagiarism is defined as turning in work that is not your own as if it were yours - that is, taking credit for something which you did not do. It is acceptable to use ideas and code from others, but you MUST make this clear by citing where you got it from. Furthermore, your assignment should be mostly your own work. Anyone caught plagiarising or engaging in other forms of academic dishonesty will be given an F on the assignment in question or, potentially, the entire course. Anyone cheating on multiple assignments will be considered in violation of the University's policies, and may face severe penalties, up to dismissal from the University.

I would encourage my students to ask around - I have taken action on plagiarism before, and I am good at finding examples of it. Most upsetting is that there are some wonderful things to learn in this class, and if you cheat, you will prevent yourself from picking up these marketable skills.

Slides

This deck changes as a function to time. Please check back for additional materials covered in class.