Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Introduction to CSCI 1320Dr. Mark Lewis1-12-2011Opening DiscussionI will start off every class with a little discussion. Typically this discussion includes questions about the previous class.Today I want to use this time to get to know a bit about you.I'd also like to give you a brief introduction to me so you can know some of the things that motivate me.Course BasicsCourse web site: http://www.cs.trinity.edu/~mlewis/CSCI1320-S11/Office: HAS 201KOffice hours: 1:30-4:30am MW. 11:00-3:00 T.Phone: 7022E-mail: [email protected] (This is the best way to reach me most of the time.)There is a schedule on the web site listing all topics and when things are due. There are also links to my lecture notes.TextWe will use “An Introduction to Programming with Scala”.This is a book that I am in the process of writing. You can get to the PDF under the Links page.You will be expected to do readings from this book and we will be following it closely.Course DescriptionThis course provides an introduction to programming with a primary focus on problem solving and logic.The course will specifically teach you how to program in the Scala programming language. It will also teach you to work in Linux in a command-line environment and with basic text editors.My courses tend to be somewhat rigorous. My overriding objective is to make you think. Because of the nature of this course I want to go beyond just giving you new things to think about, but instead give you tools to think about things in new ways.Creativity of CSWriting great programs is more art than science.Computers are the ultimate creative medium and also the ultimate creative outlet. The way we interact with them seems formal to some, but there can be a lot of fun in just looking for ideal ways to express ideas in the formal systems of different computer languages.I will try to let you express creativity in the assignments for this class.CodingThe largest chunk of your grade in this class is determined by the 4 assignments that you will do over the course of the semester. You will also be expected to complete 10 interclass problems.These are mostly small problems that you will solve by writing code, but some will link together allowing you to produce a larger product.You can work with others on design and get help on specific problems, but what you turn in for assignments must be your own construction. Everything you turn in for a grade is pledged if you are under the honor code. IcPs can be done with others.GradingYour grade comes from five different components.Assignments (4) – 40%Tests (2) – 30%Quizzes (6 with lowest dropped) – 10%Interclass Problems – 10%Class Participation – 10%The midterm and final are both equally weighted.More on GradesThe quiz questions are modeled after test questions so you will have an idea of the style to expect on the test.Class participation includes attendance and your actual participation during class.Interclass ProblemsOn the “Show Your Code” days I will call on roughly half the class “randomly” to present their answers.Each of you will be called on a total of five times with each time being worth two points to your final average.You should do all the IcPs.EnvironmentWe will be using Linux for this class and programs will be written in Scala.I will teach you how to get around in Linux with the command line as well as how to compile and run programs. Your programs must compile and run on these machines with Scala 2.8.You should get an e-mail giving you your Linux password before next class. It will come from root and contain only a password. That way you can all follow along with what I'm doing.ComputersTerm used to be a position that humans could hold.They facilitate/dominate every facet of your life, even when you don't realize it.All modern computers use some derivative of the von Neumann architecture. This is a fetch, execture, store setup with a single bus.The languages we use to communicate with these machines have evolved over time.We are currently seeing a massive move from serial to parallel computation.Integers and BasesAt a certain level all that computers do is manipulate symbols. Typically these symbols are numbers stored in binary format.The advantage of the computer is that it can manipulate these numbers with blazing speed.Let's take a minute to review the concept of integers and different bases.Why Scala?This class is about basic programming. We have used C for many years for this, but it doesn't extend well into the second semester.We are looking at possible alternatives, Scala being one of them.Benefits of ScalaLow cost of entry. Supports programming in the small.Static type checking.Sits on Java -> cross platform and powerful.Minute EssayI will end every class by asking you to write a few sentences on one or more questions. I also use this to keep attendance so make sure your names are on what you give me.Do you have any questions about the material presented today?What do you want to get out of this course?Remember to read chapter
View Full Document