Introduction to Programming

JMU Computer Science, Fall 2017

Learn the fundamentals.

This is a course in algorithmic thinking and problem solving. In this course you will learn to express solutions to computational problems by giving clear, complete, and exact descriptions of each step of your solution. This is the fundamental skill of programming, which is one of most important tools for a computer scientist. A computer is a very dumb machine–it does precisely what you tell it to do! If you want to code something interesting, you have to (A) know how to solve computational problems and (B) know how to describe your solution to a computer. This course is about both A and B, but the most important skill you learn in this course is problem solving (expressing your solution in a particular formal language, like Java is the easy part).

In this course we focus on the foundational tools for problem solving: logic, conditionals, loops, functions, modularity, and recursion (to name a few of the most important topics). In order to apply these problem solving tools, you will also learn the Java programming language, a computer language that allows you to specify a solution to a problem in a precise way that the computer can follow. Do not be fooled–the hard part is to learn problem solving; the easy part is the Java language.

Learning to program is a real challenge, but rewarding for those who persevere. Students successful in this class will have a good foundation in the basics of problem-solving and programming and will be well prepared for CS 159, Advanced Programming and on their way to a major in computer science.

 



Quick Links


Canvas | Piazza |Web-CAT



 

Fall 2017 Instructional Team

Prof. Alvin Chao

Prof. Alvin Chao

Section 1

TTh 8-9:15a
ISAT/CS 143

Schedule | Syllabus | chaoaj AT jmu.edu

Prof. David Bernstein

Prof. David Bernstein

Sections 2, 3

MWF 1:25-2:15p, MWF 2:30-3:20p
ISAT/CS 140

Syllabus | Contact

Prof. Michael Stewart

Prof. Michael Stewart

Sections 4, 5

MWF 9:05-9:55a, MWF 10:10-11a
ISAT/CS 143 and EnGeo 2203

Schedule | Syllabus | Office Hours | Contact

Prof. Chris Mayfield

Prof. Chris Mayfield

Section 6

MWF 11:15a-12:05p
ISAT/CS 143

Website | Syllabus | Schedule | Contact

Prof. John Bowers

Prof. John Bowers

Section 7

MWF 1:25-2:15p
ISAT/CS 143 (Lab) and 243 (Classroom)

Schedule | Syllabus | Office Hours | Contact

Prof. Dee Weikle

Prof. Dee Weikle

Sections 8, 9

TTh 11a-12:15p, TTh 12:30-1:45p
ENGEO 2204 (Classroom) and ISAT/CS 250 (Lab)

Schedule | Syllabus | Contact

Prof. Michael Norton

Prof. Michael Norton

Section 10

MWF 3:35-4:25p
ISAT/CS 250

Contact

Prof. Jingwei Yang

Prof. Jingwei Yang

Section 11

MWF 3:35-4:25p
ISAT/CS 143 (Lab) and 243 (Classroom)

Schedule | Syllabus | Contact

 


 

Fall 2017 Teaching Assistants

Megan Gilbert

Megan Gilbert

Section 4

Virginia Olchevsky

Virginia Olchevsky

Section 5

Kylie Davidson

Kylie Davidson

Section 7

Lab Hours:

Cynthia Zastudil

Cynthia Zastudil

Section 8

Lab Hours:

SuMW 5-7p, Th 9-11p

Cullen O'Hara

Cullen O'Hara

Section 9

Lab Hours:

Su 1-3:30p, M 7-9p WTh 9-11p

Becky Wild

Becky Wild

Lab Hours:

Su 3-5p, M 7-9p, Th 9-11p

William Krzyzkowski

William Krzyzkowski

Lab Hours:

SuT 9-11p, WTh 7-9p

Teaching Assistant Wizard

More coming soon...



Teaching Assistant Lab Hours


The ISAT/CS 248 and 250 labs are staffed by teaching assistants on Sunday from 1 to 11 pm and Monday-Thursday from 5 to 11pm.