Tuesday, December 4, 2007

Syllabus: Spring '08

Hello, my name is Stephen Gilbert. Welcome to the Orange Coast College CS 140 information page.

In Spring 2008, we'll be offering two sections of CS 140, our introductory C# programming class. I'll be teaching one section and Professor Gabriela Ernsberger will be teaching the other. This syllabus only applies to the section of CS 140 that I'm teaching (# 32622). C# is one of the new programming languages developed in conjunction with Microsoft's .NET ("Dot-Net") platform.

This is an introductory programming class, for those who want to learn the C# language and it provides background material for those who want to prepare for the Microsoft Certified Application Developer (MCAD), Microsoft Microsoft Certified Technology Specialist (MCTS) or the Microsoft Certified Professional Developer (MCPD) certification.

Who, Where and When?

  • Instructor: Stephen Gilbert
  • Office : Clark Computing Center F
  • Office hours : TTH 3:30-5, W 5-6
  • Email : StephenGilbert@gmail.com
  • Office phone : (714) 432-0202 ext 21173
  • Home page : http://csjava.occ.cccd.edu/~gilberts/

CS 140 section 32662 will meet in the Clark Computing Center, Room 105 on Wednesday nights from 5:00-10:35 pm. The on-campus portion of the class will consists of lecture and quizzes. In addition top the on-campus class, you'll also complete weekly online lecture and lab exercises. You can do these in the Computing Center or at home, as long as you complete them sometime during the week.

What is CS 140 all about?

Here's the official course description from the OCC catalog:
This course is designed to provide the students with a background in computer programming using the object-oriented approach of the C#.NET language. Emphasis is on C# fundamentals: variables, expressions, methods, control structures, arrays, objects, classes, file I/O, database, Windows and Web forms. Provides a foundation for those seeking MCAD certification.

We originally introduced C# at OCC in 2002, as a course for students who already had experience with other programming languages and wanted to learn about Microsoft's new .NET (Dot-Net) platform. When Microsoft began phasing out its older programming languages, (such as Visual Basic 6), we reorganized the course as one of the two entry-level courses for students seeking Microsoft Certified Application Developers (MCAD) status.

(The MCAD certification is aimed at the earlier version of the .NET platform. Our current classes use .NET 2.0 and .NET 3.5. The "next generation" Microsoft certifications are the Technology Specialist and Professional Developer. Here's a link to these "next generation" programs.)

That being said, CS 140 and CS 142 (VB.NET) are not intended as Certification Prep classes. These classes provides the language competency you'll need before you can take any of the Microsoft Certification prep classes, whether offered at OCC, or through another institution. At OCC, we have three classes designed to prepare you for the Microsoft certification exams:

  • CS 152 teaches you to write desktop Windows Formas programs using either C# or VB.NET.
  • CIS 224 focuses on Web applications using ASP.NET, again in either C# or VB.NET.
  • CS 252 teaches you how to write server-based systems programs, both services, (such as those running on a file server), and XML Web services.

In addition to preparing you to take the Microsoft Certification exams, taking these courses qualifies you for OCC's own .NET Application Development certificate. You can find out more about OCC's certificate programs at http://csjava.occ.cccd.edu/certificates/web.html.

Prerequisites

In this class, you will learn to write programs, but you won't learn how to use a computer. Before you enroll, read the following section, and make sure you feel you've mastered the skills I've listed here. There is no prerequisite for this course but I assume that you are "computer literate". In the context of this course, that means you know how to:

  • Install and run programs on your computer
  • Create and save plain text files using a text editor
  • Copy, move, delete and find files and folders
  • Browse the World Wide Web and use email.
If you don't feel comfortable doing these things, you should take either CIS 100 or CS 111, which are basic "computer literacy" courses.

You do not have to have any programming experience, but you might find the course easier if you've successfully completed a course in another programming language such as Visual Basic, Pascal, or C++. You'll also find the course easier if you know how to use a command-line interface, such as the MS-DOS Command Prompt, the Unix shell, or the Mac OS/X terminal application.

Goals and Objectives

In this course you'll learn how to write computer programs, using the C# programming language. On successful completion of the course, you will be able to:

  • Produce programs that create and manipulate primitive variables.
  • Produce programs using various forms of control flow.
  • Define and declare methods that pass and return data.
  • Apply various forms of arrays to solve problems.
  • Apply various forms of structures and object-based programming to solve problems.
  • Produce programs which use sequential and random access file I/O concepts.
  • Apply object-oriented programming techniques to solve various problems using the C# language.
  • Produce programs that make use of the concepts of inheritance.
  • Create C# programs that use Windows Forms and Web Forms.
  • Write programs that make correct use of C# structured exception handling.

How can I succeed in CS 140?

Here's the information you need to succeed in CS 140. Below you'll find information about the course workload, the exams, quizzes, exercises, discussion, and homework, as well as information on how you'll be graded. How much time will I have to spend on CS 140? Everybody learns in different ways and at different speeds; in general though, you should plan on spending about two hours each week outside of class, for each semester unit, if you're an average student and want to receive an average (C-B) grade. For CS 140, that translates to 8 hours a week, in addition to the five hours of "class" time - (2-1/2 hours on-campus and 2-1/2 hours online). If you're a good student or you're satisfied with a lower grade, you may get by with less. If you have difficulty with the material, or if you want to receive an A in the course, you'll probably have to spend more time. Rather than trying to get your eight (extra) hours in by staying up all night every Monday or Tuesday, try to budget your time. Spend a couple hours every day, one hour reading the material, and one hour in the computer lab, or on your computer at home, working on problems. What exams will I take? There are 2 exams in this class, a Midterm and a Final. Each exam will have two components: an objective written exam, and a programming exam where you'll be asked to create a program in the lab. You'll have the entire class period for each exam. Each exam will count for about 26% of your grade in the course, (52% total). What about programming exercises and homework? Learning to program is a lot like learning to play the tuba; you'll never be any good unless you practice. To help you do this, you'll spend most of your out of class time, and a portion of each class period, writing programs. In-Class Exercises Each week, I'll assign some in-class programming exercises, which you must complete by the end of class. You will be given 45 minutes during class to complete these exercises. There will be 14 sets of in-class exercises. You only have to turn in 12 of them, for 12% of your grade. If you do all 14 sets of exercises, the extra ones will count as extra credit. Homework Assignments Each week I'll assign several programming problems from the textbook, (and maybe some problems that I've made up). Some of these will be short problems that you can do in a few minutes; most will take between fifteen minutes to a half hour. At least one problem each week should take you a couple of hours to complete. You will only be required to complete 12 of the homework assignments for about 24% of your grade. (If you do all 14 sets, then the others will count as extra credit.) Each assignment will consist of several small programming projects, which each of you is to complete individually. You'll submit your assignments electronically. Each individual portion of the assignment will be graded based upon a simplified 2-point scale: * Completed on-time, but contains performance errors: 1 point. * Meets requirements, only minor problems: 2 points. * If you fail to submit a program you'll get no points for that portion. You must have your homework submitted by the beginning of lecture. Online Lectures The online portion of the class will consist of a set of weekly video lectures, and some exercises that I'll assign to go along with these lectures. There will be be 14 of these assignments, and, again, you only need to do 12 of them. The rest will be extra-credit. Class Participation One of the greatest learning resources at your disposal are the other students you'll meet in this class. Take advantage of them; ask the person next to you to help you with something you don't understand, or offer to help someone else who is struggling. To encourage you to help each other, I want you to use the online discussion area to ask all of your technical questions, instead of sending me an email message. Let's keep email for "personal" correspondence--things like "I'll be missing class this Tuesday", instead of questions like "Why do I get this error message when I compile?" If you ask these types of questions on the discussion board, you'll help all the other students who are having the same problem, but didn't think to ask. (I will answer questions posted on the WebCT discussion board, after I've given your fellow students an opportunity to respond. I also read all of the messages on the discussion board, even if I don't reply.) I will also post class announcements and general tips in the FAQs and Announcements section of the WebCT discussion area. You should make sure you check the board regularly, (that is, several times each week), for new announcements. How will I be graded? You may take this course for a grade, or on a CR/NCR basis. If you take the course for credit/no-credit, you must obtain a score equivalent to a "C" to get credit. (If you're transferring, though, make sure that the institution you're transferring to will accept CR/NCR; most institutions won't if it's a requirement for your major.) Grades will be assigned based on the following weights: Two Exams @ 104 ea. 208 In-Class Programming (12 of 14 @ 4 ea.) 48 Homework Assignments (12 of 14 @ 8 ea.) 96 Online Video and Exercises (12 of 14 @ 4 ea.) 48 As you can see, this adds up to 400 possible points you can earn. You can also earn up to 32 extra points by completing all 14 homework assignments, in-class exercises, and video-exercises (instead of just 12). Letter grades will be assigned using the following scale, based upon a maximum of 400: Grade Percent A 90 B 80 C 70 D 60 At my discretion, grades may be "curved". However, no student will receive a grade less than that prescribed by the above schedule.

What textbook and software will I need?

This semester the textbook we are using is C# Software Solutions: Foundations of Program Design By John Lewis. (Pearson/Addison-Wesley, 2007) ISBN : 0-321-26716-8. The text should be available in the OCC Bookstore, or from Amazon. It costs about $90 on Amazon. (I really wanted to use a lower-priced textbook, but I simply couldn't find one that a) used GUI programs in addition to console-mode applications, and b) used Visual Studio 2005.) Software All of the software you need to complete this course is installed on the computers in the OCC Clark Computing Center. However, many of you will want to work at home, especially if you are in the online section. Here is a short list of the software you'll need to install on your computer to complete the course. All of this software is free to you. Hardware The Microsoft .NET platform needs a "robust" computer system to run. That means you should have (at a miniumum), a 700 MHz or faster processor, at least 256MB of RAM, and at least 2GB of free space. You'll probably want more memory, and a faster processor. Operating System Version You will need Microsoft Windows 2000 or Windows XP with Service Pack 2. . You can use XP Home with Visual Studio 2005, (the version we'll be using for our class). If you want to install XP Pro, students registered for this class can get a free copy of XP Pro to install on your own machines. Note that you can't use Windows 95/98/ME to develop .NET programs. (You can run your programs on Windows 98/ME, but not W95, provided the machine has the .NET 2.0 framework installed.) Visual Studio 2005 Students registered for this class can check out a free copy of Visual Studio 2005 for installation on their home machines. This software cannot be used for commercial purposes, but you may keep it it after the class is over. You may also use Visual C# Express Edition instead. Your textbook comes with a CD containing the Express Edition of Visual C#, or you can download it from the Web for free. Command-Line Tools If you would prefer to work with command-line tools, rather than working with the Visual Studio IDE, you can download the free Microsoft .NET Framework 2.0 SDK, which includes command-line compilers for C# and VB .NET. You don't have to do this if you install Visual Studio 2005. (This is also the page where you can download the .NET 2.0 Redistributable package. This is the software that has to be installed on any machine where you want to run your .NET programs.)

No comments: