Difference between revisions of "CSC231 Syllabus Fall 2017"
(→Schedule and Material Covered) |
(→Grading Policy) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 90: | Line 90: | ||
* Number format, 2's complement | * Number format, 2's complement | ||
* IEEE Floating Point format. | * IEEE Floating Point format. | ||
− | * Bash | + | * Bash command line, and scripting. |
− | * C | + | * The C language. |
<br /> | <br /> | ||
Line 137: | Line 137: | ||
<br /> | <br /> | ||
− | * Homework assignments 40%, Labs 10%, Midterm 15%, Final Exam 25%, and participation 10%. | + | * Homework assignments 40% (30% for programming, 10% for quizzes), Labs 10%, Midterm 15%, Final Exam 25%, and participation 10%. |
* Questions and answers given in class, posting questions or answers on Piazza, helping others in labs, all count toward participation. | * Questions and answers given in class, posting questions or answers on Piazza, helping others in labs, all count toward participation. | ||
Line 158: | Line 158: | ||
=Teaching Assistant= | =Teaching Assistant= | ||
<br /> | <br /> | ||
− | + | * Please check this [http://cs.smith.edu/classwiki/index.php/Computer_Science_TA_hours page] for current hours for the TAs. | |
− | |||
<br /> | <br /> | ||
<br /> | <br /> |
Latest revision as of 08:56, 4 October 2017
--D. Thiebaut (talk) 11:16, 11 July 2017 (EDT)
<meta name="keywords" content="computer science, assembly language, pentium, linux, programming" />
<meta name="description" content="Dominique Thiebaut's Web Page" />
<meta name="title" content="Dominique Thiebaut -- Computer Science" />
<meta name="abstract" content="Dominique Thiebaut's Computer Science Web pages" />
<meta name="author" content="thiebaut at cs.smith.edu" />
<meta name="distribution" content="Global" />
<meta name="revisit-after" content="10 days" />
<meta name="copyright" content="(c) D. Thiebaut 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,2008,2009,2010,2011,2014,2015,2016,2017" />
<meta name="robots" content="FOLLOW,INDEX" />
Microcomputers and Assembly Language
CSC 231, Fall 2017
(http://www.science.smith.edu/dftwiki/index.php/CSC231_Syllabus_Fall_2017)
|
Professor
Dominique Thiébaut |
Go to the class Class Homepage for exercises, demo programs, and misc. information.
Course Description
CSC231, Microcomputers and Assembly Language, is a 4-credit course required for the major. It is usually offered in the fall, and is the third computer course most CS majors will select, after having taken CSC111 and CSC112, both prerequisites for CSC231.
Similarly to CSC111 and CSC112, Micro and Assembly Language is a programming intensive class, where students learn how the high-level constructs of C, C++, or Python programs are executed by the computer: procedure calls and parameter passing, stack use and recursion. The class is also an introduction to the organization of the Intel 80X86/Pentium family of processors, and to the architecture of the IBM PC. Students write programs that directly control the microprocessor and the different hardware components inside the computer. The programming environment is Linux, and we use the NetWide Assembler (NASM) to assemble programs. Working on homework assignments can be done using computers in one of several ways:
- Using a Windows or Mac computer and connecting via ssh to the main Linux computers of the CS department (aurora.smith.edu).
- Using one of the PCs in the Science Center, restarting it and selecting Linux as the operating system, and using the NASM assembler directly.
- Installing Linux on your own PC, then installing NASM on it.
In short, any PC compatible in Ford Hall, or connected to one of the Novell networks on campus can be used to access our Unix environment and work on CSC231 assignments.
We will also use the DDD debugger, the emacs editor and various other unix utilities.
Prerequisites
The two prerequisites are CSC111, Introduction to computer science, and CSC212, Data structures. Students should also have a good understanding of the binary and hexadecimal systems, which will be reviewed briefly during class.
Schedule and Material Covered
The class meets three times week, MWF 11:00-12:10 p.m., and programming assignments are given regularly. There will be an in-class midterm exam and a final take-home exam.
The course covers the following topics:
- Emacs
- Working in the shell
- The 80X86/Pentium family of processors.
- Logic gates, binary logic.
- Data manipulation instructions.
- Binary arithmetic. Integer format.
- Introduction to system calls. Input/output operations.
- Function calls.
- Stack operations and parameter passing. Passing by value, by reference.
- Arrays.
- String operations.
- Number format, 2's complement
- IEEE Floating Point format.
- Bash command line, and scripting.
- The C language.
Class Time
Lectures: MWF, 11:00-12:10 p.m., FH 342
TextBook
There are no textbooks to buy for for the class. Instead we will rely on on-line documents:
- The NASM Manual (http://alien.dowling.edu/~rohit/nasmdoc0.html)
- Paul Carter's assembly language tutorial. Paul Carter's page can be found at http://www.drpaulcarter.com/.
- The Art of Assembly Language. It assumes a different assembler, and hence a different syntax, but has a lot of very good information. You may, however, prefer to read a book, in which case these additional titles of interest in the Young Science Library might be useful:
- Wyatt Allen, Advanced assembly language. QA76.73.A8 W88 1992
- Fohl, Mark, An assembly language course. QA76.73.A8 F63 1982
- Lemone, Karen, Assembly Language and System Programming for the IBM PC.
Other Sources
Check the Class Homepage for details.
Assignments and Lateness Policy
No extensions will be granted in this course. No late submission will be allowed. However, you can drop one assignment and one lab report without penalty.
Assignments will be submitted to Moodle. You need to verify that you can login to Moodle before being able to submit assignments.
The assignments will be due a week after they are posted, and it is your responsibility to know the due date and due time for the assignments. The tentative weekly due date is Monday night, midnight.
Missing 4 or more assignments during the semester will result in failing the course.
Grading Policy
- Homework assignments 40% (30% for programming, 10% for quizzes), Labs 10%, Midterm 15%, Final Exam 25%, and participation 10%.
- Questions and answers given in class, posting questions or answers on Piazza, helping others in labs, all count toward participation.
Piazza
- We'll use Piazza during the semester to share information about the course material, about homework assignments, labs, and other class-related questions.
- Students who pre-registered for the class are already signed-up for Piazza. If you registered after the first day of class, please sign-up here.
- Participation in Piazza will count toward the participation grade.
Teaching Assistant
- Please check this page for current hours for the TAs.