CSc 150
Data Structures

Syllabus

Course Instructor: Prof. Chris Fernandes
Email: cfernand@union.edu
Office Hours: Mondays 10-11:30 and 1-2:30, Thursdays 10-11 or anytime my door's open!
Office: 229 Steinmetz Hall
Phone: 388-6401
Course Webpage: http://cs.union.edu/csc150

Text (1 required). Available at the Bookstore:

Thomas Standish, Data Structures in Java. Addison-Wesley, 1998.

Course Summary

CSc 150 is the second introductory course in the CS major curriculum. Its purpose is to refine your programming and problem-solving skills to gain a sense of "programming maturity". You've gained a lot of powerful tools in your first programming course. Now we focus on using those tools in a logical, efficient way so as to create modular, reusable programs instead of cumbersome, haphazard ones.

We'll be using the Java programming language in this course, and while we'll be learning many of the features of that language, the concepts and skills taught are more important than the specific programming language. Most of you used a different language in your first programming course, so we'll spend some time in the beginning learning how to transfer your skills from one language to another. This skill of learning new languages is an important one, since real-world programmers are asked to do this all the time, and you'll be asked to do it on your own if you take more advanced CS courses too.

By the end of the course, you should be proficient in the following:

I hope to at least cover the following topics:

Prerequisites

You should have already taken an introductory programming course in some language (not necessarily Java). In addition, you need to have already taken or be currently enrolled in MTH 197: Discrete Math for Computer Scientists or an equivalent discrete math course. See your instructor immediately if you do not meet these prerequisites.

Evaluation

Grading

Academic Dishonesty

Students often have some confusion about what might or might not be considered "cheating" in a computer science class. In general, you should take advantage of your instructors and fellow students in working out solutions to assignments. However, I also need to make sure that you are actually learning, and not simply using all of these resources as a crutch. As with writing a paper for an English class, there is a point at which working together becomes plagiarism. As a rule of thumb, feel free to discuss general solutions to problems, but the writing down of an actual solution must be done solo by you. For example, talking about how one should use a for loop to solve a particular problem is fine. Looking at someone else's code and copying what's written there is not. Two people should never write code together on a computer or on paper. Similarly, looking at someone's code for "inspiration" and then changing all of the variable names and comments is still blatant plagiarism.

You're going to write and see a lot of code in this class. A good question is: what sources can you legally take code from for your projects?

It is ok to reuse code...

It is NOT ok to reuse code...

Here's the bottom line: if you find yourself turning in work that looks substantially like the work of someone else, you should seriously examine whether you have crossed the line. If you have any doubts, talk to me before turning in the assignment.

In all cases, you must give credit to any source (like a written work or help from some individual) that you use to help complete an assignment. Again, this is similar to writing an English paper; if you use a quote or material from someone else, you have to give credit where credit is due. Otherwise you are inappropriately plagiarizing or borrowing ideas.

What you need to do

To prepare for class, you are required to do the following:

The Bottom Line

Ask questions and seek help. This is the most important point of all. I live to answer questions. Don't be afraid to come to my office every single day if you want. It's better for everybody (you AND me) if you understand things sooner rather than later. More often than not, there's a line of people waiting to see me on the day before a project is due. You'll get the help you need faster by starting on projects sooner rather than waiting until the last minute.

Any student with a documented learning disorder is welcome to come talk to me privately about options for completion of exams and homework assignments.


CSc 150 homepage